docker - Gitlab运行程序未执行作业Docker镜像

标签 docker gitlab gitlab-ci-runner

我创建了一个最小的gitlab CI脚本来验证此错误:

docker_execution_test:
  image: debian:9

  script:
    - pwd
    - ls

我期望的输出是这样的:
db@theia:~/git/docker_test (master*)$ docker run -it --rm debian:9 pwd
/
db@theia:~/git/docker_test (master*)$ docker run -it --rm debian:9 ls
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr

但是,通过gitlab-runner执行时的输出是这样的:
db@theia:~/git/docker_test (master)$ gitlab-runner exec docker docker_execution_test
Runtime platform                                    arch=amd64 os=darwin pid=49585 revision=3afdaba6 version=11.5.0
WARNING: You most probably have uncommitted changes.
WARNING: These changes will not be tested.
Running with gitlab-runner 11.5.0 (3afdaba6)
Using Docker executor with image debian:9 ...
Pulling docker image debian:9 ...
Using docker image sha256:4879790bd60d439cfe39c063660eef7af525d5f6f1cbb701a14c7cfc11cbfcf7 for debian:9 ...
Running on runner--project-0-concurrent-0 via theia.local...
Cloning repository...
Cloning into '/builds/project-0'...
done.
Checking out bb973ec4 as master...
Skipping Git submodules setup
$ pwd
/builds/project-0
$ ls
README.md
Job succeeded

列出的工作是在整个构建过程中使用的特殊gitlab容器的内容。为什么未创建容器?我在这里想念什么?

最佳答案

事实证明,gitlab-runner正在按预期工作。令人困惑的是,它对启动的镜像进行了一些操作。
入口点将被覆盖,并且将 check out 存储库的文件夹安装到容器中,而WORKDIR指向该文件夹。

因此,尽管可以将自己的镜像作为容器运行,但必须记住,在运行任何命令之前可能需要更改文件夹。

关于docker - Gitlab运行程序未执行作业Docker镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53543994/

相关文章:

redis - 如何在redis容器中恢复redis备份?

github - 在 Gitlab 中将图像添加到 README.org 文件

javascript - 容器与宿主机共享 `node_modules`文件夹

docker - 如何将文件卷挂载到远程 docker 守护进程?

linux - gitlab clone/push/pull 的 ssh key 故障排除

git - Gitlab运行程序克隆在traefik之后的超时(相对路径)

gitlab-ci - 如何阻止 robocopy 退出构建?

docker - Gitlab CI中的Docker执行程序被错误的URL传递给Git存储库

gitlab-ci-runner - 如何启用 docker 实验性功能以便 Gitlab 可以使用它进行构建

python - 无法使用kafka-python从另一个容器向Kafka容器发出请求