我有一个 DigitalOcean 服务器,其中有一个注册到一个简单的 Gitlab 存储库的 gitlab 运行器。第一步,我想拉并运行普通的 nginx。我可以通过该服务器上的 docker 安装来做到这一点,没有任何问题。
所以现在我想在 dind (docker-in-docker) 的帮助下做到这一点,因为 gitlab 文档通过 gitlab runner 推荐了它。
我定义了以下 gitlab-ci 文件:
image: docker:18.03.1-ce
variables:
DOCKER_DRIVER: overlay2
services:
- docker:dind
before_script:
- docker info
build:
script:
- docker pull nginx
- docker run -d -p 80:80 nginx
我的 gitlab 跑步者在 repo 中注册得很好。这是 gitlab-runner 服务的 config.toml:
[[runners]]
name = "my-runner-04"
url = "https://gitlab.com/"
token = TOKEN
executor = "docker"
[runners.docker]
tls_verify = false
image = "docker:18.03.1-ce"
privileged = true
disable_cache = false
volumes = ["/cache"]
shm_size = 0
[runners.cache]
...工作做得很好。gitlab页面的控制台输出没有错误。这是输出:
...
Status: Downloaded newer image for nginx:latest
$ docker run -d -p 80:80 nginx
84edac280a13714f3c5446ea024ad47864f68f6e5b73383427a28180227f37fd
Job succeeded
现在,如果我访问我的服务器的 IP 地址。静态 nginx 测试页面不显示。所以我怀疑dind的端口暴露或路径有问题?我到底在这里想念什么?
提前致谢。