1

我有一个 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的端口暴露或路径有问题?我到底在这里想念什么?

提前致谢。

4

1 回答 1

0

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

GitLabCI 用于测试/部署。您的 gitlab-ci 文件显示:下载 nginx + 运行 nginx => 结束...

如果你想在你的 DigitalOcean 服务器上运行 nginx,请在 GitLabCI 之外进行。

我可以想象您用于测试 PHP 应用程序的设计(在 GitLabCI 中):

  1. 下载 PHP 应用程序...
  2. 拉取并运行 nginx
  3. 尝试通过 nginx/check response 200.. 等下载 PHP 应用程序的源代码。
于 2018-06-06T14:16:02.003 回答