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
小恐龙
花!
上一篇
下一篇