gitlab - 完成Gitlab流程删除容器
问题描述
我为在 redhat8 上运行的 GitLab(免费版)创建了一个客户 Podman 运行器。我有带有 2 个模块(客户端和服务器)的节点程序,我试图让客户端部分运行,这意味着创建图像并在 pod 中运行容器(lm-dev)图像和容器的创建以成功结束GitLab CI/CD。
GitLab 日志显示映像的构建已完成,并且 podman run 和其他命令都运行成功,但在完成该过程后,没有容器,也没有应该创建的 pod!我不明白为什么容器不知何故消失了,或者根本没有创建 mybe,尽管 GitLab 显示该过程是成功的。我的期望是在 lm-dev pod 中看到 lm-client-dev 容器。
在完成管道之前,创建的唯一容器是以下内容,这些容器在完成作业时会被删除:
root@mail ~]# podman ps -a
CONTAINER ID IMAGE
COMMAND CREATED STATUS PORTS NAMES
20becf621320 registry.gitlab.com/gitlab-org/gitlab-runner/gitlab-runner-helper:x86_64-
8925d9a0 gitlab-runner-bui... 2 minutes ago Exited (0) 2 minutes ago runner-
xvb7r9ea-project-23-concurrent-0-7c8467ce3ac6d0a3-predefined-0
9d179591b645 registry.gitlab.com/gitlab-org/gitlab-runner/gitlab-runner-helper:x86_64-
8925d9a0 gitlab-runner-bui... 2 minutes ago Exited (0) 2 minutes ago runner-
xvb7r9ea-project-23-concurrent-0-7c8467ce3ac6d0a3-predefined-1
bb265fceb3e8 registry.gitlab.com/gitlab-org/gitlab-runner/gitlab-runner-helper:x86_64-
8925d9a0 gitlab-runner-bui... 2 minutes ago Exited (0) 2 minutes ago runner-
xvb7r9ea-project-23-concurrent-0-7c8467ce3ac6d0a3-predefined-2
9681b6701bf2 quay.io/podman/stable:latest
sh -c if [ -x /us... 2 minutes ago Exited (0) 10 seconds ago runner-xvb7r9ea-
project-23-concurrent-0-7c8467ce3ac6d0a3-build-3
9c9f447ae78c registry.gitlab.com/gitlab-org/gitlab-runner/gitlab-runner-helper:x86_64-
8925d9a0
gitlab-runner-bui... 10 seconds ago Up 9 seconds ago
我的跑步者在服务器上创建如下:
gitlab-runner register --non-interactive
--name "sdx-runner" --url "https://gitlab.mycompany.com/"
--registration-token "jghfcZXXqZB-xJ-hfgL" --executor
docker --docker-privileged=true --env "DOCKER_HOST=unix:///var/run/podman/podman.sock"
--docker-image alpine:latest --docker-volumes
"/run/podman/podman.sock:/var/run/podman/podman.sock" --tag-list "sdx-runner-pod"
我的 yml(这里省略了构建和测试):
stages:
- deploy
variables:
GIT_SUBMODULE_STRATEGY: recursive
cache:
paths:
- client/node_modules/
- server/node_modules/
deploy:
image: "podman"
stage: deploy
script:
- cd client
- podman build -t lm-client-dev .
#- podman pod create --name lm-dev --publish 8443:80
#- podman pod start lm-dev
#- podman run -p 4250:80 -d lm-client-dev --pod=lm-dev
- podman run -dt --pod new:lm-dev -p 4250:3000 lm-client-dev top
tags:
- sdx-runner-pod
我的 gitlab 跑步者:
[root@mail ~]# gitlab-runner -v
Version: 14.1.0
Git revision: 8925d9a0
Git branch: 14-1-stable
GO version: go1.13.8
Built: 2021-07-20T11:43:26+0000
OS/Arch: linux/amd64
我尝试构建和运行的客户端 Dockerfile,以便我可以从本地计算机连接到它:
FROM docker.io/library/node:16.6.1
WORKDIR /app
COPY package*.json ./
RUN npm install -g npm@7.20.6
COPY . ./
RUN npm run build
EXPOSE 3000
CMD ["npm", "run", "start"]
解决方案
我从 Docker in shell 更改了我的跑步者,可以实现我所需要的。
推荐阅读
- opencv - 是否有一个 Halide::BoundaryConditions 来模仿 OpenCV 默认边框类型?
- java - mvel2 在几分钟不活动后需要时间来评估
- c++ - 只改变成员的子类是有效的做法吗?
- python - Python多处理队列异步工作者
- c# - 反序列化 Json .NET CORE 5 时出错 - JsonException:检测到不支持的可能对象循环
- python - 如何解决 PyTorch 内存分配不足的错误?
- kernel - 在 buildroot 中使用两个不同的工具链编译内核和用户空间
- swift - 函数重载歧义使用 - Xcode 12.5
- objective-c - 选择器如何发送参数
- python - 如何在 Odoo 12 或 OpenERP 中实现此功能?