Я использую докер 1.12 и докер-состав 1.12, на OSX.не может подключиться к контейнеру с помощью docker-compose
Я создал файл докер-compose.yml, который проходит два контейнера:
- первые, названные искры, строит и запускает приложение для sparkjava
вторых, названные ведут себя, работает несколько функциональных тестов на API, открытый первым контейнером.
version: "2" services: behave: build: context: ./src/test container_name: "behave" links: - spark depends_on: - spark entrypoint: ./runtests.sh spark:9000 spark: build: context: ./ container_name: "spark" ports: - "9000:9000"
Как recommended by Docker Compose documentation, я использую простой скрипт, чтобы проверить, если искра сервер готов. Этот скрипт является именем runtest.sh и запускается в контейнер с именем «behave». Он запускается с помощью докер-компоновки (см. Выше):
#!/bin/bash
# This scripts waits for the API server to be ready before running functional tests with Behave
# the parameter should be the hostname for the spark server
set -e
host="$1"
echo "runtests host is $host"
until curl -L "http://$host"; do
>&2 echo "Spark server is not ready - sleeping"
sleep 5
done
>&2 echo "Spark server is up - starting tests"
behave
```
Решение DNS, похоже, не работает. curl делает запрос на spark.com вместо запроса в мой контейнер с именем «spark».
UPDATE:
Устанавливая псевдоним для моей ссылки (links: -spark:myserver
), я видел разрешение DNS не делается Докер: Я получил сообщение об ошибке от сетевого оборудования корпоративного (я запуская это из-за корпоративного прокси, с Docker для Mac). Вот выдержка выхода:
Recreating spark
Recreating behave
Attaching to spark, behave
behave | runtests host is myserver:9000
behave | % Total % Received % Xferd Average Speed Time Time Time Current
behave | Dload Upload Total Spent Left Speed
100 672 100 672 0 0 348 0 0:00:01 0:00:01 --:--:-- 348
behave | <HTML><HEAD>
behave | <TITLE>Network Error</TITLE>
behave | </HEAD>
behave | <BODY>
behave | ...
behave | <big>Network Error (dns_unresolved_hostname)</big>
behave | Your requested host "myserver" could not be resolved by DNS.
behave | ...
behave | </BODY></HTML>
behave | Spark server is up - starting tests
FWIW, я не думаю, что вам нужно 'запись links'. * Ссылки позволяют определить дополнительные псевдонимы, с помощью которых услуга доступна из другой службы. * – R0MANARMY
Это не то, что я читаю здесь: https://docs.docker.com/compose/compose-file/#/links. Я попытался, однако, но это не решило мою проблему. –
Я удалил свой ответ, поскольку он больше не применяется к вашему отредактированному вопросу. Подумайте о включении журналов вывода вашего сценария и других команд для проверки DNS (например, ping), чтобы изолировать проблему до DNS или завитка. – BMitch