docker安装gitlab

一、安装前准备

  • 为了加速docker镜像的下载速度,建议大家搜索阿里云docker镜像加速来进行相关配置
  • 确保安装了docker-compose
  • 创建gitlab主目录和gitlab-runner主目录
    $ mkdir -p gitlab/{config,data,logs}
    $ mkdir -p gitlab-runner/config

二、创建gitlab-compose.yml文件如下

version: '3'
networks:
  default:
    driver: bridge
services:
    gitlab:
      image: 'gitlab/gitlab-ce'
      restart: unless-stopped
      hostname: 'gitlab'
      container_name: gitlab
      environment:
        TZ: 'Asia/Shanghai'
        GITLAB_OMNIBUS_CONFIG: |
          external_url 'http://IP或者域名:HTTP端口/'
          gitlab_rails['time_zone'] = 'Asia/Shanghai'
      ports:
        - '对外HTTP端口:80'
        - '对外HTTPS端口:443'
        - '对外SSH端口:22'
      volumes:
        - /path/to/gitlab/config:/etc/gitlab
        - /path/to/gitlab/logs:/var/log/gitlab
        - /path/to/gitlab/data:/var/opt/gitlab
    gitlab-runner:
      image: 'gitlab/gitlab-runner'
      container_name: gitlab-runner
      hostname: 'gitlab-runner'
      depends_on:
        - gitlab
      restart: always
      volumes:
        -  /path/to/gitlab-runner/config:/etc/gitlab-runner
        - /var/run/docker.sock:/var/run/docker.sock
  • 为了避免和宿主机的其他服务端口冲突,e,g: 这里设置对应gitlab http服务的宿主机的端口为8080, gitlab https服务的宿主机的端口为8443, gitlab ssh服务的宿主机的端口为8022,大家可以按照自己的要求做相应调整
  • 每个服务设置了唯一的主机名,方便后续gitlab-runner能通过主机名访问到gitlab服务
  • 请将/path/to替换成实际我们在准备时候的实际路径
  • 如果在external_url中指定了端口号,那么在gitlab容器内的http服务的端口也会设置为对应一样的端口号,所以在docker中map端口的时候对外端口和external_url中的端口设置要一致
    第一次安装gitlab, 默认的root用户密码保存在容器里面的/etc/gitlab/initial_root_password

三、启动docker容器并打印日志

docker-compose -f /path/to/gitlab-compose.yml up -d
docker logs -f gitlab

四、进入gitlab-runner容器并注册gitlab-runner

docker exec -it gitlab-runner bash
root@gitlab-runner:/# gitlab-runner register
  • 执行上面命令后按提示输入gitlab的settings/CI/CD页面中runner下面的"registration token"
  • 如果计划运行在docker模式,设置tag的时候建议每个runner的tag能标识它所使用的helper image

五、运行在docker模式下的gitlab-runner配置

concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "dev-gitlab-runner"
  url = "http://10.2.5.24:5080/"
  token = "sgDgWNx8eoG_7fuHx8ym"
  executor = "docker"
  #clone_url="http://10.2.5.24:5080/"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  [runners.docker]
    tls_verify = false
    image = "node:latest"
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/cache"]
    shm_size = 0
    pull_policy="if-not-present"
  • image最好和runner的tag匹配,这样在写.gitlab-ci.yml的时候就可以指定通过tag选择对应的runner去运行

FAQ

  • 如果在安装gitlab的时候碰到删除了某些文件导致gitlab数据库内的数据和文件系统上的不一致,导致可能很多问题,例如进入settings->’CI/CD’页面的时候出现500错误,可以尝试按下面链接去解决问题:

    https://docs.gitlab.com/ee/raketasks/backup_restore.html#when-the-secrets-file-is-lost

  • 在push代码的时候出现error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413, 当你用http模式push代码的时候你的web服务器对client端post数据的默认大小太小会导致该错误抛出, 请修改对应的http post大小配置,e,g: 对nginx来说,在nginx.conf中的http位置加入如下配置

    client_max_body_size 50m;

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇