curl -sSL https://get.docker.com/ | sh
sudo docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
参数说明:
--hostname :设置主机名
--publish :将需要的端口开放(https:443,http:80,ssh:22)
--name :容器名称 方便后面操作
--volume :挂载目录
--detach :后台执行
--restart :容器遇到问题时重启
请注意
/srv/gitlab
目录所在位置,即内容保存位置,可在升级/迁移时不丢失数据。在配置目录时,请注意docker或者其组具有文件的执行写入等权限,如果遇到LinuxACL
问题,请尝试sudo setfacl -mR default:group:docker:rwx /srv/gitlab
修复如果
sshd
已经占用22
端口,则需要变更--publish 221:22
,并同时配置gitlab_rails['gitlab_shell_ssh_port'] = 221
请注意更换主机名
启动容器后,可以通过sudo docker logs gitlab
获得容器的控制台日志。
配置
gitlab
有两种方法:第一种在启动docker是携带--env
参数;第二种修改config
下的gitlab.rb
文件。
在启动docker时,携带--env
环境变量GITLAB_OMNIBUS_CONFIG
可以在镜像启动时加载配置信息,但不会写入gitlab.rb
配置文件。
示例:
sudo docker run --detach \
--hostname gitlab.example.com \
--env GITLAB_OMNIBUS_CONFIG="external_url 'http://my.domain.com/';\r\ngitlab_rails['lfs_enabled'] = true;" \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:lates
--env GITLAB_OMNIBUS_CONFIG=
参数,后面的内容,为gitlab.rb
中可配置内容,比如安装Gitlab
时配置sshd
端口请注意更换
external_url
的域名请注意:由于ENV是容器生成是写入的,所以重新
start
或者sudo docker restart gitlab
是无效的。
修改挂载到/srv/gitlab/config
的gitlab.rb
文件。
然后重启容器:
sudo docker restart gitlab
容器重新启动会重新加载配置文件,这里不同于
--env
配置
随着时间的迁移,gitlab会出现版本的更新(版本帝),在容器中我们并不方便对内部程序进行升级,然后我们却有着更方便的方法,重新更新镜像,生成容器。
因为配置文件或环境变量的配置是不随容器移除而丢失的,所以我们并需要重新配置(只更新镜像后重新生成容器即可。)
sudo docker stop gitlab
如果在创建容器是没有设置
--name
字段,请通过docker ps
获取容器id或名称,并将gitlab
更换成对应的内容。 移除时同样如此!
sudo docker rm gitlab
sudo docker pull gitlab/gitlab-ce:latest
sudo docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
为了保持配置的一致性,如果你是通过
EVN的方式配置的
,再次创建容器时,你仍应采用最初创建时一直的命令。
更新容器后,有机率会遇到500
错误,请尝试sudo docker restart gitlab
重启,如若仍有问题,请尝试修复权限:
sudo docker exec gitlab update-permissions
sudo docker restart gitlab
Gitlab Runners
docker-compose