以前在 #8 中留了一个坑,用 Docker 来安装 gitlab-ce,今天正好想起来。
用 Docker 安装因为国内镜像的原因会更快,而且就一条命令就解决了,在官方文档上详细说明了如何使用 docker 安装 gitlab。
首先查看 GitlabCE Dockerfile 里面有端口和数据卷的说明,如下所示。
1 2 3 4 5
| EXPOSE 443 80 22
VOLUME ["/etc/gitlab", "/var/opt/gitlab", "/var/log/gitlab"]
|
另外需要对 gitlab 继续配置,比如说必须要配置的 email 服务。
1 2 3 4 5 6 7 8 9 10 11 12
| external_url '188' prometheus_monitoring['enable'] = false gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.exmail.qq.com" gitlab_rails['smtp_port'] = 465 gitlab_rails['smtp_user_name'] = "" gitlab_rails['smtp_password'] = "" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = true gitlab_rails['gitlab_email_from'] = 'com' gitlab_rails['smtp_domain'] = "exmail.qq.com"
|
保存为 gitlab.rb 即可。下面就是运行命令。这里需要注意的是我是自建三个 Volume 再运行的,也可以使用主机的空间。
1 2 3 4 5 6 7 8 9
| docker run -d \ -p 443:443 -p 8080:80 -p 22:22 \ --name gitlab \ --restart always \ -v gitlab-config:/etc/gitlab \ -v gitlab-logs:/var/log/gitlab \ -v gitlab-data:/var/opt/gitlab \ -v $PWD/gitlab.rb:/etc/gitlab/gitlab.rb gitlab/gitlab-ce
|
或者使用docker-compose
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| version: "3"
services: gitlab: image: gitlab/gitlab-ce ports: - 80:80 volumes: - gitlab-config:/etc/gitlab - gitlab-logs:/var/log/gitlab - gitlab-data:/var/opt/gitlab - $PWD/gitlab.rb:/etc/gitlab/gitlab.rb volumes: gitlab-config: gitlab-logs: gitlab-data:
|
有一个坑是,运行之后打开 localhost:8080 并没有显示,而是提示无法访问,这是因为 gitlab 内部正在运行,需要等一会。
我们可以通过 docker logs gitlab | tail
查看。
之后就可以啦!打开首页要求输入 admin 的密码,之后登录需要注意默认的邮箱是 admin@example.com
.
TODO
添加这行到 gitlab.rb ,定义 git ssh 端口,同时在服务器开启这个端口的访问权限。
1 2
| # git ssh config gitlab_rails['gitlab_shell_ssh_port'] = 2222
|