美文网首页
docker运行gitlab

docker运行gitlab

作者: book_02 | 来源:发表于2021-08-23 00:15 被阅读0次

1. 参考

https://docs.gitlab.com/ee/install/docker.html (官方,最具参考价值)
https://segmentfault.com/a/1190000019772866
https://segmentfault.com/a/1190000021593151

2. 说明

  1. 有两种方式可以实现:
    1. 直接使用原生Docker
    2. 使用 Docker compose
  2. "使用 Docker compose"方式更清晰简单
  3. "直接使用原生Docker"方式则更能感受到过程中的各个细节
  4. 可以在第一次使用时采用"直接使用原生Docker"方式
  5. 后续运行采用"使用 Docker compose"方式

3. 直接使用原生Docker命令

3.1 docker run

export GITLAB_HOME=/home/temp/gitlab

sudo docker run --detach \
  --hostname 10.168.1.108 \
  --publish 8929:8929 --publish 2289:22 \
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  gitlab/gitlab-ee:latest
  1. 使用自定义端口 8929(web) 和 2289(ssh)
  2. 这里的域名使用了ip,如果配置了域名,可以使用域名(如:gitlab.example.com)
  3. 对gitlab的三个关键目录做了容器卷持久化,防止数据丢失

3.2 进入容器配置

进入容器

sudo docker exec -it gitlab /bin/bash

配置 external_url 和 gitlab_shell_ssh_port
打开 /etc/gitlab/gitlab.rb ,添加以下诶荣: (默认在最后添加即可)
vi /etc/gitlab/gitlab.rb

# For HTTP
external_url "http://10.168.1.108:8929"

# The default value of nginx['listen_port'] is pulled from the external_url
# if the internal value is different from external, you should set manually
# nginx['listen_port'] = 8929 

gitlab_rails['gitlab_shell_ssh_port'] = 2289

重新配置 GitLab:

gitlab-ctl reconfigure

退出容器

exit

3.3 访问gitlab

在浏览器中输入以下网址访问:

http://10.168.1.108:8929

配置了域名,可以以域名形式(类似gitlab.example.com:8929)访问

以root用户登录,密码通过以下方式获得:

sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

注意这个文件会在配置24小时后被删除,及时修改root密码(通过网页形式即可修改)。

4. 使用 Docker compose

4.1 确保 Docker Compose 已安装

通过 docker-compose --version 查看是否已经安装。
如果没有安装,参考 https://www.jianshu.com/p/4ad81755880a 进行安装

4.2 新建 docker-compose.yml

docker-compose.yml

web:
  image: 'gitlab/gitlab-ee:latest'
  container_name: gitlab
  restart: always
  hostname: '10.168.1.108'
  environment:
    GITLAB_OMNIBUS_CONFIG: |
      external_url 'http://10.168.1.108:8929'
      gitlab_rails['gitlab_shell_ssh_port'] = 2289
  ports:
    - '8929:8929'
    - '2289:22'
  volumes:
    - '$GITLAB_HOME/config:/etc/gitlab'
    - '$GITLAB_HOME/logs:/var/log/gitlab'
    - '$GITLAB_HOME/data:/var/opt/gitlab'

4.3 启动 gitlab

GITLAB_HOME=/home/temp/gitlab docker-compose up -d

确保在执行上述命令时,终端的当前路径在 docker-compose.yml 同级目录下

5. 其他说明

5.1 硬件配置

  1. 内存建议4G以上,否则容易卡死
  2. 如果是在虚拟机上运行,注意给足cpu核数和内存大小

5.2 使用默认端口

可以使用默认端口

export GITLAB_HOME=/home/temp/gitlab

sudo docker run --detach \
  --hostname gitlab.example.com \
  --publish 443:443 --publish 80:80 --publish 22:22 \
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  gitlab/gitlab-ee:latest

但是感觉把宿主机的80和22转到docker,会干扰宿主机。专口专用比较好一些

5.3 提前拉取gitlab-ee源

因为gitlab-ee镜像比较大,可以提前pull好

docker pull gitlab/gitlab-ee:latest

5.4 gitlab-ee 和 gitlab-ce 的选择

推荐使用gitlab-ee

官方对此有说明: https://about.gitlab.com/install/ce-or-ee/

  1. gitlab-ee默认拉取的是free tier
  2. ee包含ce的所有功能
  3. 以后想尝试付费功能也方便升级

相关文章

网友评论

      本文标题:docker运行gitlab

      本文链接:https://www.haomeiwen.com/subject/mwdhiltx.html