gitlab-ce-docker 插件

这个插件用于以 Docker 的方式安装 GitLab CE(社区版)。

注意:目前本插件仅支持 Linux。

背景知识

GitLab 官方提供了 gitlab-ce 镜像,通过这个镜像我们可以实现类似这样的命令来启动一个 GitLab 容器:

Bash

  1. docker run --detach \
  2. --hostname gitlab.example.com \
  3. --publish 443:443 --publish 80:80 --publish 22:22 \
  4. --name gitlab \
  5. --restart always \
  6. --volume $GITLAB_HOME/config:/etc/gitlab \
  7. --volume $GITLAB_HOME/logs:/var/log/gitlab \
  8. --volume $GITLAB_HOME/data:/var/opt/gitlab \
  9. --shm-size 256m \
  10. gitlab/gitlab-ce:rc

其中 $GITLAB_HOME 表示的是本地存储卷路径,比如我们可以通过 export 命令来设置这个变量:

Bash

  1. export GITLAB_HOME=/srv/gitlab

在上述命令中,我们可以看到这个容器使用了3个存储卷,含义分别如下:

本地路径容器内路径用途
$GITLAB_HOME/data/var/opt/gitlab保存应用数据
$GITLAB_HOME/logs/var/log/gitlab保存日志
$GITLAB_HOME/config/etc/gitlab保存 GitLab 配置文件

在此基础上,我们可以自定义如下一些配置:

  1. hostname
  2. 本机端口
  3. 存储卷路径
  4. 镜像版本

配置

注意: 1. 你使用的用户必须是 root 或者在 docker 用户组里; 2. 目前暂不支持 https 方式访问 GitLab。

下面的配置文件展示的是”tool file”的内容。

关于更多关于DevStream的主配置、tool file、var file的信息,请阅读核心概念概览DevStream配置.

YAML

  1. tools:
  2. # name of the tool
  3. - name: gitlab-ce-docker
  4. # id of the tool instance
  5. instanceID: default
  6. # format: name.instanceID; If specified, dtm will make sure the dependency is applied first before handling this tool.
  7. dependsOn: [ ]
  8. # options for the plugin
  9. options:
  10. # hostname for running docker. (default: gitlab.example.com)
  11. hostname: gitlab.example.com
  12. # pointing to the directory where the configuration, logs, and data files will reside.
  13. # (default: /srv/gitlab)
  14. # 1. it should be a absolute path
  15. # 2. once the tool is installed, it can't be changed
  16. gitlabHome: /srv/gitlab
  17. # ssh port exposed in the host machine. (default: 22)
  18. sshPort: 22
  19. # http port exposed in the host machine. (default: 80)
  20. httpPort: 80
  21. # https port exposed in the host machine.
  22. # (default: 443)
  23. # todo: support https, reference: https://docs.gitlab.com/omnibus/settings/nginx.html#enable-https
  24. httpsPort: 443
  25. # whether to delete the gitlabHome directory when the tool is removed. (default: false)
  26. rmDataAfterDelete: false
  27. # gitlab-ce tag. (default: "rc")
  28. imageTag: "rc"

一些可能有用的命令

  • 克隆项目

Bash

  1. export hostname=YOUR_HOSTNAME
  2. export username=YOUR_USERNAME
  3. export project=YOUR_PROJECT_NAME
  1. ssh 方式

Bash

  1. # port is 22
  2. git clone git@${hostname}/${username}/${project}.git
  3. # port is not 22, 2022 as a sample
  4. git clone ssh://git@${hostname}:2022/${username}/${project}.git
  1. http 方式

Bash

  1. # port is 80
  2. git clone http://${hostname}/${username}/${project}.git
  3. # port is not 80, 8080 as a sample
  4. git clone http://${hostname}:8080/${username}/${project}.git