文章目录
一、下载gitlab以及gitlab-runner镜像
sudo podman pull docker.io/gitlab/gitlab-ee
sudo podman pull docker.io/gitlab/gitlab-runner
笔者下载的版本是gitlab-ee 14.5,gitlab-runner 14.5
二、运行容器与配置gitlab
1、运行gitlab容器
sudo podman run -dt \
--h "192.168.1.8" \
-p 443:443 -p 80:80 -p 22:22 -p 5050:5050 \
--name gitlab \
--restart always \
-v /home/gitlab/etc:/etc/gitlab \
-v /home/gitlab/logs:/var/log/gitlab \
-v /home/gitlab/git-data:/var/opt/gitlab/git-data \
-v /home/gitlab/backups:/var/opt/gitlab/backups \
-v /home/gitlab/opt:/var/opt/gitlab \
docker.io/gitlab/gitlab-ee
- -d:后台运行
- -t:分配伪终端
- -h:指定主机名
- -p:映射主机与容器端口,冒号前面为主机端口,后面为容器端口
- –name:指定名字
- -v:映射主机与容器的目录,冒号前面为主机目录,后面为容器目录
这里映射了gitlab的配置、日志、以及数据。要求在映射时主机存在相应的目录。
2、修改配置
笔者不作任何配置修改的情况下,运行gitlab会一直报错:
caller=cluster.go:154 component=cluster err="couldn't deduce an advertise address: no private IP found, explicit advertise addr not provided"
caller=main.go:241 msg="unable to initialize gossip mesh" err="create memberlist: Failed to get final advertise address: No private IP address found, and explicit IP not provided"
使用如下命令进入容器Bash:
sudo podman exec -it gitlab bash
然后修改/etc/gitlab/gitlab.rb文件(如果在创建容器时有将配置文件所在目录映射到主机,则可以直接在主机修改),添加如下配置:
alertmanager['flags'] = {
'cluster.advertise-address' => "0.0.0.0:9093"
}
即可解决不断报错的问题。
添加如下配置,设置时区为上海时区
gitlab_rails['time_zone'] = 'Asia/Shanghai'
如果想开启Gitlab自带的容器镜像库,添加如下配置:
registry_external_url 'https://localhost:5050'
gitlab_rails['registry_enabled'] = true
registry_nginx['ssl_certificate_key'] = "/var/opt/gitlab/gitlab-rails/etc/gitlab-registry.key"
registry_nginx['ssl_certificate'] = "/var/opt/gitlab/registry/gitlab-registry.crt"
需要注意的是证书及密钥的存储位置(笔者下载的Gitlab容器启用容器镜像库后,默认就是上面的位置),如果上面的目录中没有相应的文件,则需要修改为相应的位置。
每次修改了gitlab.rb文件后,都需要在主机使用如下命令让配置生效:
sudo podman exec -it gitlab gitlab-ctl reconfigure
3、登录gitlab
在配置好gitlab并运行后,就可以使用root账号进行登录了,root账号的密码在:
/etc/gitlab/initial_root_password
文件中。
注意:此文件将在第一次运行reconfigure后24小时删除,所以安装好后,需要尽快登录gitlab并设置密码。
三、运行与注册gitlab-runner
1、运行gitlab-runner
sudo podman run -dt --name gitlab-runner --restart always -v /home/gitlab-runner:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock docker.io/gitlab/gitlab-runner
由于gitlab-runner默认使用的用户为gitlab-runner,如上图所示,而/home/gitlab-runner默认是root用户才有相应的权限,为了顺利执行,笔者建议使用root用户执行,这样就不用手动修改/home/gitlab-runner的权限:
sudo podman run -dt --name gitlab-runner --restart always -v /home/gitlab-runner:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock docker.io/gitlab/gitlab-runner run --working-directory=/home/gitlab-runner
注意:为了让gitlab-runner能够使用docker命令,在创建容器时必须将/var/run/docker.sock映射到容器,否则会执行失败。
2、进入容器Bash
使用下面的命令进入容器bash:
sudo podman exec -it gitlab-runner bash
3、注册gitlab-runner
a、注册shell
root@7350bbb38bc1:/# gitlab-runner register
Runtime platform arch=amd64 os=linux pid=84 revision=f0a95a76 version=14.5.0
Running in system-mode.