下载镜像
$ docker pull gitlab/gitlab-ce:latest
创建相关目录
$ mkdir -p /home/gitlab/config /home/gitlab/logs /home/gitlab/data
运行镜像
$ docker run -d -h gitlab -p 80:80
-v /home/gitlab/config:/etc/gitlab
-v /home/gitlab/logs:/var/log/gitlab
-v /home/gitlab/data:/var/opt/gitlab
--restart always --name gitlab gitlab/gitlab-ce:latest
或(端口22是SSH使用,注:与系统冲突,如需使用请调整端口)
$ docker run -d -h gitlab -p 22:22 -p 80:80 -p 443:443
-v /home/gitlab/config:/etc/gitlab
-v /home/gitlab/logs:/var/log/gitlab
-v /home/gitlab/data:/var/opt/gitlab
-v /etc/letsencrypt:/etc/letsencrypt
--restart always --name gitlab gitlab/gitlab-ce:latest
参数说明:
--detach: 设置容器后台运行
--hostname: 设置容器的 hostname
--publish: 端口转发规则(80:Http 访问端口,443:Https 访问端口,8888:主机的 ssh 访问端口,22:Docker 容器中 ssh 访问端口)
--name:容器名称
--restart always:每次启动容器就重启GitLab
--volume: 共享目录挂载,即 docker 容器内外数据共享(/home/gitlab/data: 应用程序数据,/home/gitlab/logs:GitLab 的 log,/home/gitlab/config:GitLab 的配置文件)
--e:配置 Gitlab 运行的环境变量
初次使用gitlab时需要创建默认管理员密码,至少8位,这里输入“12345678”。
默认用户:root
启用 HTTPS
配置方法一:链接证书
GitLab 默认配置会寻找存放在 /etc/gitlab/ssl/ 目录下的 gitlab.example.com.key 和 gitlab.example.com.crt 文件,其中的 gitlab.example.com 应当替换为在上文中 external_url 里设置的域名
链接证书需要用到 fullchain.pem 和 privkey.pem 证书文件,gitlab 默认使用 .crt 格式的私钥,需要进行格式转换,就是改下文件后缀名就好了(fullchain.pem --> gitlab.example.com.crt,privkey.pem --> gitlab.example.com.key ),然后将改完后缀的文件复制到 gitlab 容器内 /etc/gitlab/ssl/ 目录下
可以通过如下命令来将之前通过 Let's Encrypt 申请的证书链接到所需的位置
# 使用 root 用户执行以下命令
$ mkdir -p /etc/gitlab/ssl
$ chmod 700 /etc/gitlab/ssl
$ cd /etc/gitlab/ssl
# 然后将`gitlab.example.com.crt` 和 `gitlab.example.com.key` 文件拷贝到该目录下
配置方法二:修改配置
编辑 GitLab 的配置文件
$ vim /etc/gitlab/gitlab.rb
# 容器内的证书文件位置
nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.example.com/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.example.com/privkey.pem"
最后执行下面命令让配置生效
gitlab-ctl reconfigure