之前在docker上部署gitlab,看了很多教程都部署失败了,折腾了老久才搞定,记录一下。
基于docker的部署不用太小心翼翼,部署步骤不复杂,大不了容器删了重来。
基于docker部署gitlab比较方便,但服务器至少需要4GB内存,否则可能出现502错误。
1. 拉取镜像
# 查询
docker search gitlab
# 拉取 默认latest
docker pull gitlab/gitlab-ce
2. 安装镜像
docker run \
-itd \
-p 8848:80 \ # 容器80端口对应http克隆
-p 8822:22 \ # 容器22端口对应ssh克隆 可以不配
# 将容器/etc/gitlab目录挂载到宿主机/usr/local/gitlab-iot/etc目录下 下同
-v /usr/local/gitlab-iot/etc:/etc/gitlab \
-v /usr/local/gitlab-iot/log:/var/log/gitlab \
-v /usr/local/gitlab-iot/opt:/var/opt/gitlab \
--restart always \ # 容器自启动
--privileged=true \ # 让容器获取宿主机root权限
--name gitlab-iot \ # 设置容器名称为gitlab-iot(可根据自己的需求更改,后面相应地方也需要更改)
gitlab/gitlab-ce # 镜像名称 可写镜像ID
去掉注释
docker run \
-itd \
-p 8848:80 \
-p 8822:22 \
-v /usr/local/gitlab-iot/etc:/etc/gitlab \
-v /usr/local/gitlab-iot/log:/var/log/gitlab \
-v /usr/local/gitlab-iot/opt:/var/opt/gitlab \
--restart always \
--privileged=true \
--name gitlab-iot \
gitlab/gitlab-ce
镜像运行后即可访问:
- 本机:http://localhost:8848/
- 局域网:http://gitlab-serv-IP:8848/
3. 配置端口
配置gitlab克隆时的端口(端口配置根据自己的需求选择)
# 进入容器
docker exec -it gitlab-iot /bin/bash
# 编辑配置文件
vim /etc/gitlab/gitlab.rb
# 添加内容
# gitlab 访问地址/域名
external_url 'http://192.168.1.109:8848'
# ssh IP
gitlab_rails['gitlab_ssh_host'] = '192.168.1.109'
# ssh clone 端口
gitlab_rails['gitlab_shell_ssh_port'] = 8822
# nginx 监听端口IP
nginx['listen_addresses'] = ['*']
# nginx 监听端口
nginx['listen_port'] = 80
去掉注释
#去掉注释
external_url "http://192.168.1.109:8848"
gitlab_rails['gitlab_ssh_host'] = '192.168.1.109'
gitlab_rails['gitlab_shell_ssh_port'] = 8822
nginx['listen_addresses'] = ['*']
nginx['listen_port'] = 80
# 重新配置
gitlab-ctl reconfigure
# 重启gitlab
gitlab-ctl restart
# 退出容器
exit
补充
# 退出前,可以在容器中打开配置文件可以查看是否生效
vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
重启container
docker restart <gitlab-container-id>
镜像运行后即可访问:
- 本机:http://localhost:8848/
- 局域网:http://gitlab-serv-IP:8848/