Как подключиться к Apache в контексте Gitlab-CI Runner? - PullRequest
0 голосов
/ 03 октября 2018

Я хочу подключиться к Apache, созданному в моем gitlab-ci.yml (для запуска приемочных тестов), но я не понимаю, как это сделать.

Попытка curl -i http://localhost/ дает:

curl: (7) Failed to connect to localhost port 80: Connection refused

Содержимое gitlab-ci.yml

image: php:7.0-apache

variables:
 DEBIAN_FRONTEND: noninteractive

before_script:
  - apt-get update -yqq
  - apt-get install -yqq curl net-tools

hello-world:
  stage: test
  script:
  - ./script.sh

Содержимое script.sh

#!/usr/bin/env bash

set -e

echo-run() {
    echo "===== ===== $1"
    echo "$($1)"
    echo
}

declare MYHOSTNAME="$(hostname)"

echo-run "hostname"
echo-run "netstat -antup"
echo-run "pwd"
echo-run "ls -al --color=auto ."
echo "curl -i http://${MYHOSTNAME}/"

# This does not work: "failed to connect to <hostname> port 80: Connection refused"
curl -i http://${MYHOSTNAME}/

Проект размещен на gitlab.com / matt.faure / debug-ci / , и вот вывод невыполненного задания

Насколько я понимаю, это«начальная» проблема: в каком мире я?

MYHOSTNAME - это имя хоста контейнера Docker, очевидно, это не будет работать, так как это имя видно из внутри Контейнер, и IP / порты отображаются Runner (или, возможно, нет).Так что такое отображение по умолчанию?Как его настроить?

(Это работает в обычной среде Docker)

Я собрал Gitlab Runner doc безуспешно.Я также провел обширные поиски на Gitlab Forum и StackOverflow.Я нашел эти похожие вопросы, но ни один из них не привел меня к решению:

Подытожил, что я пропустил или неправильно понял

1 Ответ

0 голосов
/ 13 октября 2018

Ваш Apache просто не работает.

Ваш netstat -antup просто показывает Внешние адреса соединений, вероятно, из-за запуска apt-get.

Gitlab Runner запускаетКонтейнер для выполнения ваших before_script script и after_script, он переопределяет ENTRYPOINT и CMD, на которые опирается образ, на который вы обычно запускаете Apache.

Добавьте шаг в свойscript.sh для запуска apache в фоновом режиме (не уверен, что он будет работать, хотя я никогда не пробовал) или просто связать apache как service , в зависимости от вашей цели.

...