我有一台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跑步者在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的端口暴露或路径有什么问题?我到底错过了什么?
提前致谢。
答案 0 :(得分:0)
您确定要在GitLab CI中的nginx上托管网站吗?
GitLabCI旨在用于测试/部署。 你的gitlab-ci文件说: 下载nginx + run nginx =>端...
如果您想在您的DigitalOcean服务器上运行nginx,请使用GitLabCI。
我可以想象你的PHP aplication测试设计(在GitLabCI中):