Как использовать docker (соответственно docker-in-docker) для запуска nginx поверх Gitlab CI? - PullRequest
0 голосов
/ 06 июня 2018

У меня есть сервер DigitalOcean с бегуном gitlab, зарегистрированным для простого репозитория Gitlab.На первом этапе я хотел бы просто запустить и запустить обычный nginx.Я могу сделать это с установкой докера на этом сервере без каких-либо проблем.

Так что теперь я хочу сделать это с помощью 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 runner зарегистрирован в репо очень хорошо.Это config.toml службы gitlab-runner:

[[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 голосов
/ 06 июня 2018

Вы уверены, что хотите разместить сайт на nginx в GitLab CI?

GitLabCI предназначен для тестирования / развертывания.Ваш файл gitlab-ci гласит: загрузите nginx + run nginx => end ...

Если вы хотите запустить nginx на вашем сервере DigitalOcean, сделайте это из GitLabCI.

Я могу представитьдизайн для тестирования PHP-приложения (в GitLabCI):

  1. скачать приложение PHP ...
  2. вытащить и запустить nginx
  3. попытаться загрузить исходный код приложения PHP черезnginx / проверка ответа 200 .. и т.д ..
...