1. 参考
https://docs.gitlab.com/ee/install/docker.html (官方,最具参考价值)
https://segmentfault.com/a/1190000019772866
https://segmentfault.com/a/1190000021593151
2. 说明
- 有两种方式可以实现:
- 直接使用原生Docker
- 使用 Docker compose
- "使用 Docker compose"方式更清晰简单
- "直接使用原生Docker"方式则更能感受到过程中的各个细节
- 可以在第一次使用时采用"直接使用原生Docker"方式
- 后续运行采用"使用 Docker compose"方式
3. 直接使用原生Docker命令
3.1 docker run
export GITLAB_HOME=/home/temp/gitlab
sudo docker run --detach \
--hostname 10.168.1.108 \
--publish 8929:8929 --publish 2289:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
gitlab/gitlab-ee:latest
- 使用自定义端口 8929(web) 和 2289(ssh)
- 这里的域名使用了ip,如果配置了域名,可以使用域名(如:gitlab.example.com)
- 对gitlab的三个关键目录做了容器卷持久化,防止数据丢失
3.2 进入容器配置
进入容器
sudo docker exec -it gitlab /bin/bash
配置 external_url 和 gitlab_shell_ssh_port
打开 /etc/gitlab/gitlab.rb ,添加以下诶荣: (默认在最后添加即可)
vi /etc/gitlab/gitlab.rb
# For HTTP
external_url "http://10.168.1.108:8929"
# The default value of nginx['listen_port'] is pulled from the external_url
# if the internal value is different from external, you should set manually
# nginx['listen_port'] = 8929
gitlab_rails['gitlab_shell_ssh_port'] = 2289
重新配置 GitLab:
gitlab-ctl reconfigure
退出容器
exit
3.3 访问gitlab
在浏览器中输入以下网址访问:
http://10.168.1.108:8929
配置了域名,可以以域名形式(类似gitlab.example.com:8929)访问
以root用户登录,密码通过以下方式获得:
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
注意这个文件会在配置24小时后被删除,及时修改root密码(通过网页形式即可修改)。
4. 使用 Docker compose
4.1 确保 Docker Compose 已安装
通过 docker-compose --version 查看是否已经安装。
如果没有安装,参考 https://www.jianshu.com/p/4ad81755880a 进行安装
4.2 新建 docker-compose.yml
docker-compose.yml
web:
image: 'gitlab/gitlab-ee:latest'
container_name: gitlab
restart: always
hostname: '10.168.1.108'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://10.168.1.108:8929'
gitlab_rails['gitlab_shell_ssh_port'] = 2289
ports:
- '8929:8929'
- '2289:22'
volumes:
- '$GITLAB_HOME/config:/etc/gitlab'
- '$GITLAB_HOME/logs:/var/log/gitlab'
- '$GITLAB_HOME/data:/var/opt/gitlab'
4.3 启动 gitlab
GITLAB_HOME=/home/temp/gitlab docker-compose up -d
确保在执行上述命令时,终端的当前路径在 docker-compose.yml 同级目录下
5. 其他说明
5.1 硬件配置
- 内存建议4G以上,否则容易卡死
- 如果是在虚拟机上运行,注意给足cpu核数和内存大小
5.2 使用默认端口
可以使用默认端口
export GITLAB_HOME=/home/temp/gitlab
sudo docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
gitlab/gitlab-ee:latest
但是感觉把宿主机的80和22转到docker,会干扰宿主机。专口专用比较好一些
5.3 提前拉取gitlab-ee源
因为gitlab-ee镜像比较大,可以提前pull好
docker pull gitlab/gitlab-ee:latest
5.4 gitlab-ee 和 gitlab-ce 的选择
推荐使用gitlab-ee
官方对此有说明: https://about.gitlab.com/install/ce-or-ee/
- gitlab-ee默认拉取的是free tier
- ee包含ce的所有功能
- 以后想尝试付费功能也方便升级
网友评论