Как использовать docker (соответственно docker-in-docker) для запуска nginx поверх Gitlab CI?
У меня есть сервер DigitalOcean с gitlab runner, зарегистрированный для простого репозитория Gitlab. На первом этапе я хотел бы просто запустить и запустить обычный nginx. Я могу сделать это с установкой докера на этом сервере без каких-либо проблем.
Итак, теперь я хочу сделать это с помощью 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 зарегистрирован в репо просто отлично. Это 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 ответ
Вы уверены, что хотите разместить сайт на nginx в GitLab CI?
GitLabCI предназначен для тестирования / развертывания. Ваш файл gitlab-ci говорит: скачайте nginx + запустите nginx => end...
Если вы хотите запустить nginx на вашем сервере DigitalOcean, сделайте это из GitLabCI.
Я могу представить ваш дизайн для тестирования PHP-приложений (в GitLabCI):
- скачать приложение PHP...
- потяните и запустите nginx
- попробуйте загрузить исходный код приложения PHP через nginx/ проверьте ответ 200.. и т. д.