服务器环境
威联通(QNAP)TS-432PXU-RP 2G四核CPU双电源机架4盘位NAS磁盘阵列网络存储器
镜像地址
https://hub.docker.com/r/ravermeister/gitlab
docker hub 上面找了好几个要么不能用,要么没有说明文档,docker hub 的质量真的不如 github。最后选择了这个 ravermeister/gitlab 镜像,作者很负责任,文档比较全面
拉取镜像
docker pull ravermeister/gitlab
运行容器
docker run -d \
--hostname 0.0.0.0 \
--name gitlab \
--privileged=true \
--link mysql:mysql \
--link redis:redisio \
--env 'DB_HOST=10.0.3.2' \
--env 'DB_NAME=gitlab_production' \
--env 'DB_USER=gitlab' \
--env 'DB_PASS=123456ddd' \
--env 'REDIS_HOST=10.0.3.3' \
--env 'REDIS_PORT=6379' \
--env 'GITLAB_TIMEZONE=Asia/Shanghai' \
-p 4431:443 -p 801:80 -p 221:22 \
-v /share/CACHEDEV1_DATA/github/config:/etc/gitlab \
-v /share/CACHEDEV1_DATA/github/logs:/var/log/gitlab \
-v /share/CACHEDEV1_DATA/github/data:/var/opt/gitlab \
ravermeister/gitlab
- d // 后台运行
-- hostname // 设置容器监听域名,我这里设置允许所有域名访问
-- name // 设置容器名称
--restart=always // 是允许容器自动重启,我这里没有打开。如果创建时未指定,容器运行后可通过 update 命令添加 docker update --restart=always some-postgres
--privileged=true // 是以获取系统权限的形式运行,这个要加上,不然启动时会出现
ShellOut::ShellCommandFailed: execute[load sysctl conf kernel.shmmax]
ulimit: max user processes: cannot modify limit: Operation not permitted
/proc/sys/fs/file-max: Read-only file system 等其他问题(图1、2)
--link mysql:mysql // 设置使用外部 mysql
--link redis:redisio // 设置使用外部 redis
--env 'DB_HOST=10.0.3.2' // 指定 mysql 端口,因为我的 mysql 在另一个容器内,所以不能用127.0.0.1,需要设置另一个容器的IP
--env 'DB_NAME=gitlab_production' // mysql 数据库名称
--env 'DB_USER=gitlab' // mysql 数据库用户名
--env 'DB_PASS=123456ddd' // mysql 数据库密码
--env 'REDIS_HOST=10.0.3.3' // redis 容器IP
--env 'REDIS_PORT=6379' // redis 容器端口
--env 'GITLAB_TIMEZONE=Asia/Shanghai' // 设置容器时区,一定要设置,不然会时间会差8小时
-p // 没什么好说的,绑定容器端口,由于服务器上面还有别的业务使用22、80、443端口,所以22映射为221、80映射为801、443映射为4431
-v /share/CACHEDEV1_DATA/github/config:/etc/gitlab // gitlab 配置目录
-v /share/CACHEDEV1_DATA/github/logs:/var/log/gitlab // gitlab 日志目录
-v /share/CACHEDEV1_DATA/github/data:/var/opt/gitlab // git 数据目录
这里画个重点,一定要自定义目录,一开始我没有设置,系统自动选择根目录,我的根目录容量不足,导致容器启动时候创建文件失败,容器提示找不到文件一直无法启动
could not extend file "base/1/2754": No space left on device
Check free disk space.
cannot abort transaction 1, it was already committed(图3)
ravermeister/gitlab 是镜像名称
图1
图2
图3