前言:看了网上很多教程,发现都是无脑copy的。发现了很多问题:
1.修改ip和端口时,容器或者主机中修改:vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml 这个文件是没有用的,重启服务器就还原了。
2.要想修改成功必须修改容器中的 vi /etc/gitlab/gitlab.rb 这个文件,修改完了之后必须要执行gitlab-ctl reconfigure 这个命令,不然也会还原。
1.在home文件下创建项目目录
compose
-docker-compose.yml
gitlab
-etc #配置
-log #日志
-opt #数据
2.配置docker-compose.yml文件
端口映射:宿主机器的 9001,9002,9003映射为容器的 80(http),443(https),22(ssh)端口。
文件映射:将 gitlab 的目录挂载为用户当地目录,以免容器在停止或被删除的时候丢失数据。
version: "3"
services:
docker_gitlab:
image: gitlab/gitlab-ce
container_name: gitlab
ports:
- "9001:9001"
- "9002:443"
- "9003:22"
volumes:
- "/home/gitlab/etc:/etc/gitlab"
- "/home/gitlab/log:/var/log/gitlab"
- "/home/gitlab/opt:/var/opt/gitlab"
restart: always
注意 9001:9001 --因为我们在docker启动gitlab创建项目默认nigix 代理的是80即(9001:80) 但是我们克隆的时候必须要带上端口(不带端口找不到地址,因为你在docker中运行) 比如:git clone http://xxx.com:9001/root/yugedemo.git 所以我把nginx转发到了9001上,并把映射的主机也改为9001。
这样我们克隆项目时就方便很多,因为地址和端口都统一了
3.在compose目录下运行项目
docker-compose up -d
4.登陆镜像修改主机ip和端口 (如果你需要修改地址可以进行下面的操作)
1.查看容器id
docker ps -a
2.进入容器
docker exec -it xxxxid /bin/bash
3.修改ip和端口
vi /etc/gitlab/gitlab.rb
external_url 'http://xxx.com:9001'
nginx['listen_port'] = 9001 #http
nginx['redirect_http_to_https_port'] = 9002 #https
gitlab_rails['gitlab_shell_ssh_port'] = 9003 # ssh
5.重置配置并重启
# 重置gitlab配置
gitlab-ctl reconfigure
# 重启gitlab
gitlab-ctl restart
注意: 如果容器状态从starting 变为 healthy 则容器启动成功。过个几分钟在查看(http://xxxx.com:9001),如果还是不行,直接重启服务器,再次查看。如果还不行,检查下配置。
参考https://blog.youkuaiyun.com/shan165310175/article/details/92797199