一、创建容器

准备工作:

  1. 在环境变量中添加 GITLAB_HOME ,比如我的为 D:\Users\quanzaiyu\.docker\datas\gitlab ,命令: setx GITLAB_HOME D:\Users\quanzaiyu\.docker\datas\gitlab
  2. 在 hosts 文件中添加 127.0.0.1 gitlab.xiaoyulive.top ,以便通过浏览器访问

通过以下命令创建一个GitLab容器:

  1. docker run --detach --hostname gitlab.xiaoyulive.top ^
  2. --publish 10443:443 --publish 8080:80 --publish 8022:22 ^
  3. --name gitlab ^
  4. --restart always ^
  5. --volume %GITLAB_HOME%\config:/etc/gitlab ^
  6. --volume %GITLAB_HOME%\logs:/var/log/gitlab ^
  7. --volume %GITLAB_HOME%\data:/var/opt/gitlab ^
  8. gitlab/gitlab-ee

如果想要安装中文版,可以使用社区中文版:

  1. docker run -d --hostname gitlab.xiaoyulive.top ^
  2. -p 10443:443 -p 8080:80 -p 8022:22 ^
  3. --name gitlab ^
  4. --restart always ^
  5. -v %GITLAB_HOME%\config:/etc/gitlab ^
  6. -v %GITLAB_HOME%\logs:/var/log/gitlab ^
  7. -v %GITLAB_HOME%\data:/var/opt/gitlab ^
  8. --privileged=true ^
  9. twang2218/gitlab-ce-zh

但是创建好之后,我们访问 http://gitlab.xiaoyulive.top:8080/ 会发现无法访问:
image.png

二、修改配置

进入容器:

  1. docker exec -it gitlab bash

进行如下配置:

  1. $ vim /etc/gitlab/gitlab.rb
  2. # 在gitlab创建项目时候http地址的host(不用添加端口)
  3. external_url 'http://gitlab.xiaoyulive.top'
  4. // gitlab创建项目时候ssh地址的host(不用添加端口)
  5. gitlab_rails['gitlab_ssh_host'] = 'gitlab.xiaoyulive.top'
  6. # docker run 的时候我们把22端口映射为外部的8022了
  7. gitlab_rails['gitlab_shell_ssh_port'] = 8022
  8. $ vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
  9. port: 8080

重新配置并重启GitLab:

  1. gitlab-ctl reconfigure
  2. gitlab-ctl restart

再次访问 http://gitlab.xiaoyulive.top:8080/ ,可以看到页面正常打开了:
image.png

参考资料