如何使用docker(docker-in-docker)在Gitlab CI上启动nginx?

时间:2018-06-06 08:32:57

标签: docker nginx gitlab-ci gitlab-ci-runner docker-in-docker

我有一台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的端口暴露或路径有什么问题?我到底错过了什么?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您确定要在GitLab CI中的nginx上托管网站吗?

GitLabCI旨在用于测试/部署。 你的gitlab-ci文件说: 下载nginx + run nginx =>端...

如果您想在您的DigitalOcean服务器上运行nginx,请使用GitLabCI。

我可以想象你的PHP aplication测试设计(在GitLabCI中):

  1. 下载PHP应用程序......
  2. 拉动并运行nginx
  3. 尝试下载源代码 PHP应用程序通过nginx /检查响应200 ..等..
相关问题