Docker 在 Arm64 服务器搭建 gitlab

服务器环境 

威联通(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


2630
1
2年前