使用docker运行 运行gitlab ( by will )


1. 使用gitlab官方镜像运行gitlab

1. 拉取镜像 
docker pull gitlab/gitlab-ce
2. 运行gitlab 
docker run --detach \ 
  --hostname dev.famulei.com \ 
  --privileged=true \ 
  --publish 1443:443 --publish 8090:80 --publish 122:22 \ 
  --name gitlab \ 
  --restart always \ 
  --volume /data/gitlab/config:/etc/gitlab \ 
  --volume /data/gitlab/logs:/var/log/gitlab \ 
  --volume /data/gitlab/data:/var/opt/gitlab \ 
  gitlab/gitlab-ce:latest

3. 访问web设置admin密码 
http://192.168.12.211:8090/

 

  

2. 配置gitlab

1. 运行如下命令进入gitlab容器内部 
docker exec -it gitlab /bin/bash 2. 修改/etc/gitlab/gitlab.rb更改相关配置 3. 重启gitlab容器
docker restart gitlab

 


3. 使用环境变量预配置gitlab

docker run --detach \
--hostname dev.famulei.com \ 
--privileged=true \
 --env GITLAB_OMNIBUS_CONFIG="external_url 'http://dev.famulei.com:8090/'; gitlab_rails['gitlab_shell_ssh_port'] = 122;" 
--publish 1443:443 --publish 8090:80 --publish 122: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

  

为了正常使用至少需要配置如下两处配置

 

gitlab_rails['gitlab_shell_ssh_port'] = 122
external_url 'http://dev.famulei.com:8090/'

 

经过实验使用如下配置可以正常使用

external_url 'http://dev.famulei.com:8090/' 
gitlab_rails['gitlab_shell_ssh_port'] = 122
gitlab_rails['time_zone'] = 'Asia/Shanghai'
nginx['listen_port'] = 8090 gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "niupu_monitor@163.com"
gitlab_rails['smtp_password'] = "xxxxxxxxxxxxx" gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = 'niupu_monitor@163.com'
user['git_user_email'] = "niupu_monitor@163.com"

 

# 启动命令

docker run --detach \ 
  --hostname dev.famulei.com \
  --privileged=true \
  --publish 1443:443
  --publish 8090:8090
  --publish 122:22 \
  --name gitlab \
  --restart always \
  --volume /data/gitlab/config:/etc/gitlab \
  --volume /data/gitlab/logs:/var/log/gitlab \
  --volume /data/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ce:latest

 

4. 升级gitlab

1.停止当前gitlab容器 
docker stop gitlab
docker rm gitlab
2.拉取最新镜像
docker pull gitlab/gitlab-ce:latest
3. 运行gitlab新版本
docker run --detach \
  --hostname dev.famulei.com \
  --privileged=true \
  --publish 1443:443
  --publish 8090:80
  --publish 122:22 \
  --name gitlab \
  --restart always \
  --volume /data/gitlab/config:/etc/gitlab \
  --volume /data/gitlab/logs:/var/log/gitlab \
  --volume /data/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ce:latest
4. 升级可能会碰到的权限问题 解决方法如下 docker exec gitlab update-permissions docker restart gitlab