我有一个DigitalOcean服务器,其中一个gitlab运行者注册到了一个简单的Gitlab资源库。在第一步中,我只想拉出并运行普通的nginx。我可以在该服务器上安装docker而不会出现任何问题。
所以现在我想借助dind (docker-in-docker)来做这件事,因为它是gitlab文档推荐的,而不是gitlab运行者。
我定义了以下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 runner已经在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的端口暴露有问题还是路径有问题?我到底错过了什么?
提前谢谢。
发布于 2018-06-06 22:16:02
您确定要在GitLab CI中的nginx上托管网站吗?
GitLabCI旨在用于测试/部署。你的gitlab-ci文件说:下载nginx +运行nginx =>结束...
如果你想在你的DigitalOcean服务器上运行nginx,可以在GitLabCI之外运行。
我可以想象你用来测试PHP应用程序的设计(用GitLabCI):
https://stackoverflow.com/questions/50715743
复制相似问题