Тестконтейнеры с прокси компании

Каждый старт разных тестконтейнеров будет бросать com.github.dockerjava.api.exception.InternalServerErrorException: {"message":"Get https://quay.io/v1/_ping: dial tcp x.x.x.x: getsockopt: connection refused"}

Это неудивительно (докер стоит за прокси-сервером компании). Как я могу настроить testcontainers для использования определенного HTTP-прокси?

Другим подходом может быть отключение команды "ping" и использование репо-докера нашей компании.

1 ответ

Вы можете указать переменные env при создании изображения или запуске контейнера. Например, ниже я создаю контейнер Elasticsearch, передавая конфигурацию прокси:

GenericContainer container = new GenericContainer("docker.elastic.co/elasticsearch/elasticsearch:6.1.1")
            .withExposedPorts(9200)
            .withEnv("discovery.type", "single-node")
            .withEnv("HTTP_PROXY", "http://127.0.0.1:3001")
            .withEnv("HTTPS_PROXY", "http://127.0.0.1:3001")
            .waitingFor(Wait.forHttp("/_cat/health?v&pretty")
                    .forStatusCode(200));

В противном случае вы можете настроить параметры прокси-сервера глобально в Docker. Для окон с докером вы должны подключиться к нему и прокси HTTP в boot2docker профиль.

docker-machine ssh default

sudo -s

echo "export HTTP_PROXY=http://your.proxy" >> /var/lib/boot2docker/profile
echo "export HTTPS_PROXY=http://your.proxy" >> /var/lib/boot2docker/profile

В Linux вы можете создать файл ~/.docker/config.json лайк:

{
 "proxies":
 {
  "default":
  {
    "httpProxy": "http://127.0.0.1:3001",
    "noProxy": "*.test.example.com,.example2.com"
  }
 }
}
Другие вопросы по тегам