Docker部署GitLab并实现基本配置
安装gitlab
1. 拉取GitLab-ce镜像,查看镜像信息
$ docker pull gitlab/gitlab-ee:11.11.0-ee.0 $ docker images
2. 创建并启动一个GitLab容器,:
后的内容不要修改
$ mkdir /home/docker/gitlab -p
$ GITLAB_HOME=/home/docker/gitlab # 建立gitlab本地目录 $ docker run -d \ --hostname gitlab.example.com\ # 指定容器域名,创建镜像仓库用 -p 8443:443 \ # 容器443端口映射到主机8443端口(https) -p 8080:80 \ # 容器80端口映射到主机8080端口(http) -p 2222:22 \ # 容器22端口映射到主机2222端口(ssh) --name gitlab \ # 容器名称 --restart always \ # 容器退出后自动重启 -v $GITLAB_HOME/config:/etc/gitlab \ # 挂载本地目录到容器配置目录 -v $GITLAB_HOME/logs:/var/log/gitlab \ # 挂载本地目录到容器日志目录 -v $GITLAB_HOME/data:/var/opt/gitlab \ # 挂载本地目录到容器数据目录 gitlab/gitlab-ce:latest # 使用的镜像:版本
可参考官方配置说明文档,本地配置文件在$GITLAB_HOME/config/gitlab.rb
3. 查看容器运行情况
$ docker ps -a
$ netstat -lntup
配置gitlab
1. 备份默认配置文件
$ cd /home/docker/gitlab/config $ cp gitlab.rb gitlab.rb.default
2. 修改配置文件
# gitlab域名 external_url 'http://192.168.8.21' # 时区 gitlab_rails['time_zone'] = 'Asia/Shanghai' # 允许自定义头像 gitlab_rails['gravatar_plain_url'] = 'http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=identicon' # 由于设置了端口映射,设置如下选项使得网页端显示正常可用的ssh地址,如“ssh://git@192.168.8.21:2222/xxx/xxx.git” gitlab_rails['gitlab_shell_ssh_port'] = 2222 # 关闭CI/CD gitlab_rails['gitlab_default_projects_features_builds'] = false # 设置GitLab备份路径 gitlab_rails['manage_backup_path'] = true gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
3. 重启容器或进入容器重启gitlab服务,生效配置
在gitlab容器内重载 $ gitlab gitlab-ctl reconfigure $ gitlab gitlab-ctl restart 或直接重启容器 $ docker restart gitlab
更新gitlab
拉取最新的GitLab-ce镜像,然后停止并删除当前的GitLab容器
$ docker stop gitlab
$ docker rm gitlab
重启创建并启动GitLab容器,使用同样的配置和volume参数即可,GitLab会自动读取这些配置
$ docker run -d \ --hostname gitlab.example.com\ -p 8443:443 \ -p 8080:80 \ -p 2222:22 \ --name gitlab \ --restart always \ -v $GITLAB_HOME/config:/etc/gitlab \ -v $GITLAB_HOME/logs:/var/log/gitlab \ -v $GITLAB_HOME/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest
参考连接: