gitlab-runner的docker版本

 

 

以link方式运行gitlab和gitlab-runner 

运行环境:
     macos + docker

需要的镜像

     gitlab镜像 : gitlab官网并没有提供M1芯片的镜像,使用的是下载量最大的镜像

     gitlab-runner镜像: gitlab官网提供的,在docker hub可以直接查询到的镜像

 

1、获取镜像

        找到gitlab-runner镜像,登录docker hub官网,在其中搜索gitlab-runner,找到gitlab官网发出来的镜像即可,下载量最大的就是,镜像带有gitlab的官网认可。

 

docker pull   yrzr/gitlab-ce-arm64v8:latest
docker pull  gitlab/gitlab-runner

 

 

2、运行docker

1、创建备份文件,并运行gitlab镜像

# 创建挂在目录
cd ~ mkdir -p lsl/docker/gitlab/srv/gitlab mkdir -p lsl/docker/gitlab/logs mkdir -p lsl/docker/gitlab/data # 运行gitlab容器 sudo docker run --detach \ --hostname mygitlab.com \ --publish 8443:443 --publish 8888:80 --publish 8822:22 \ --name gitlab \ --restart always \ --volume /Users/listenningthuder/lsl/docker/gitlab/srv/gitlab/config:/etc/gitlab \ --volume /Users/listenningthuder/lsl/docker/gitlab/srv/gitlab/logs:/var/log/gitlab \ --volume /Users/listenningthuder/lsl/docker/gitlab/srv/gitlab/data:/var/opt/gitlab \ yrzr/gitlab-ce-arm64v8:latest

访问gitlab服务器时,使用本机IP地址:8888即可

 

2、创建备份文件,并运行gitlab-runner镜像

# 创建挂载目录
cd ~ mkdir -p lsl/docker/gitlab-runner/srv/gitlab-runner/srv/gitlab-runnermkdir -p lsl/docker/gitlab-runner/srv/gitlab-runner/srv/run # 启动容器 docker run -d --name gitlab-runner --link gitlab --restart always \ -v /Users/listenningthuder/lsl/docker/gitlab-runner/srv/gitlab-runner/config:/etc/gitlab-runner \ -v /Users/listenningthuder/lsl/docker/gitlab-runner/srv/run/docker.sock:/var/run/docker.sock \ gitlab/gitlab-runner:latest

 

3、注册gtilab runner

1、查看gitlab的局域网地址

➜  config docker inspect gitlab
[
    {
        "Id": "e9fba6b5710f572ac53a12d6073a3108c9702937fa036d468179aca9c4324bbe",
        "Created": "2022-02-16T15:00:58.206483134Z",
        "Path": "/assets/wrapper",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 3015,
            "ExitCode": 0,
       。。。由于内容过多,这里省去n多行

        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "36c89ece8e011fefeaee6b0d4c1fd3876c7ef0054f1179a81bb26df0bd328042",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "22/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "8822"
                    }
                ],
                "443/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "8443"
                    }
                ],
                "80/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "8888"
                    }
                ]
            },
            "SandboxKey": "/var/run/docker/netns/36c89ece8e01",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "a9f85a541c02299b52ef62048f712177fcde9af00c5211337557cc2deedadfa7",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.3",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:03",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "8d6d89ddc304c6f2f84596e18313d709cc0f0d5c6b79e6a572aebb03b0d81e8d",
                    "EndpointID": "a9f85a541c02299b52ef62048f712177fcde9af00c5211337557cc2deedadfa7",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.3",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:03",
                    "DriverOpts": null
                }
            }
        }
    }
]

 

2、获取gitlab runner的注册密钥

这里需要注意以下,gitlab和gitlab-runner是在同一个网桥网络中,与主机IP是不一样的,这里看到的是主机访问的地址和端口,后续需要还原成网桥网络里的IP和端口

 

3、注册gitlab-runner

# 进入容器
➜ gitlab-runner docker exec -it gitlab-runner bash root@2e8c4f3caeba:/#
# 开始注册 root@2e8c4f3caeba:
/# gitlab-runner register Runtime platform arch=arm64 os=linux pid=35 revision=98daeee0 version=14.7.0 Running in system-mode. # 填写gitlab服务器的地址。默认情况下,docker镜像的网络全在默认网桥里,所以需要填写准确的地址 Enter the GitLab instance URL (for example, https://gitlab.com/): http://172.17.0.3:80 Enter the registration token: KA_RsL9JX55yEgHbgEpU Enter a description for the runner: [2e8c4f3caeba]: safeline Enter tags for the runner (comma-separated): python3,safeline Registering runner... succeeded runner=KA_RsL9J Enter an executor: docker, docker-ssh, ssh, docker+machine, docker-ssh+machine, kubernetes, custom, shell, virtualbox, parallels: docker Enter the default Docker image (for example, ruby:2.6): centos Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! root@2e8c4f3caeba:/#

 

4、查看注册结果

 

posted @ 2022-02-18 23:57  dos_hello_world  阅读(643)  评论(0)    收藏  举报