Я использую devpi в docker контейнере, например:
[Unit]
Description=devpi docker-container
Requires=docker.service
After=docker.service
[Service]
Restart=always
RestartSec=3
ExecStart=/usr/bin/docker run --rm -p 3141:3141 --name devpi -v /devpi_data:/data -e DEVPI_PASSWORD='********' akailash/docker-devpi
ExecStop=/usr/bin/docker stop -t 2 devpi
[Install]
WantedBy=multi-user.target
Работает нормально. Я могу получить к нему доступ через URL на хосте, а также установить пакеты с него, как и ожидалось.
6f663ba131a1 akailash/docker-devpi "/docker-entrypoint.…" 3 hours ago Up 3 hours 0.0.0.0:3141->3141/tcp devpi
Однако, если я хочу создать еще один образ docker для установки пакетов из этого контейнера, есть ConnectTimeout. Если я попытаюсь свернуться, время соединения истекает через некоторое время.
Я могу выполнить установку pip, если я использую опцию --net = host, как описано в этом выпуске . Однако я не хочу использовать хост-сеть. Я пробовал 0.0.0.0:3141, а также 172.17.0.1:3141, и у меня такие же результаты. Добавление --ip = 0.0.0.0 в службу демона docker не работает для меня. Как я могу получить доступ к контейнеру devpi из другого контейнера без необходимости каждый раз использовать --net = host?