我正在使用gitlab 9.3.3-ce.0和gitlab runner with docker executor。我想在这个docker-executor中构建镜像。怎么做?
我正在尝试使用/etc/gitlab-runner/config.toml
中的此部分连接到外部docker
[runners.docker]
tls_verify = false
image = "java:8"
privileged = true
disable_cache = false
volumes = ["/var/images", "/var/lib/docker:/var/lib/docker",
"/var/run/docker.sock:/var/run/docker.sock",
"/usr/bin/docker:/usr/bin/docker"]
shm_size = 0
但是当我尝试在docker docker info
内部执行时,我得到:
/usr/bin/docker: No such file or directory
但它应该存在:
$ which docker
/usr/bin/docker
发布于 2017-07-09 16:21:25
事实证明,通过apt-get默认安装的docker在docker本身中不可见,因此安装并使用了单独的独立docker。
发布于 2017-07-05 18:07:56
您需要在docker服务中使用docker:
image: docker:latest
# When using dind, it's wise to use the overlayfs driver for
# improved performance. - THIS DOES NOT ALWAYS WORK!
variables:
DOCKER_DRIVER: overlay
services:
- docker:dind
before_script:
- docker info
build:
stage: build
script:
- docker build -t my-docker-image .
- docker run my-docker-image /script/to/run/tests
请参阅hhttps://docs.gitlab.com/ce/ci/docker/using_docker_build.html#use-docker-in-docker-executor
发布于 2020-05-11 00:03:48
正如公认的回答所说,docker in docker是解决方案。
然而,在docker中使用docker时需要做出一些牺牲,在我看来,有一个更好的替代方案: Kaniko项目。
您可以使用kaniko镜像并使用它轻松构建docker镜像。这是我用Gitlab和CI/CD使用Kaniko录制的一些视频。在https://youtu.be/Gb96kKN8BoI?t=1848时间30:45分,您可以看到示例。
https://stackoverflow.com/questions/44873096
复制相似问题