Stack Overflow на русском Asked on January 1, 2022
Возникло недопонимание с docker-network
и с depends_on
.
Вопрос по основной части сетей я уже задавал тут .
depends_on
работает достаточно странно в моем случае.
Я создал 2 тестовых image
‘a и имею следующую конфигурацию docker-compose.yml
:
version: '3.7'
services:
app1:
image: test
build: app1
command: python3 app1.py
app2:
image: test2
build: .
depends_on:
- app1
Но в логах все равно первым почему то запускается контейнер от app2
:
root@icyftl:~/temp# docker-compose up
Building app2
Step 1/4 : from ubuntu:latest
---> 1e4467b07108
Step 2/4 : RUN apt-get update
---> Using cache
---> 08682223c800
Step 3/4 : RUN apt-get install curl -y
---> Using cache
---> 6c6b82a3dca4
Step 4/4 : RUN curl http://app1:8000/test
---> Running in ad21307744f6
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
curl: (7) Failed to connect to app1 port 8000: Connection refused
ERROR: Service 'app2' failed to build: The command '/bin/sh -c curl http://app1:8000/test' returned a non-zero code: 7
Как следствие, мои попытки понять проблему, которую я опишу во втором вопросе обрываются.
Как поднять сервер на flask
в контейнере и обращаться к нему из другого контейнера?
При создании связки контейнеров в docker-compose.yml
, как я уже понял – автоматом поднимается bridge
.
Если я могу сделать ping -c 100 app1
из второго контейнера и он будет работать, то как мне обращаться к серверу на flask
, который поднят на 0.0.0.0
? curl http://app1:8000/test
?
Первая проблема возникает потому, что обращение в app1
идет на этапе сборки, т.е. у вас в Dockerfile
для app2
есть команда которая пробует обращаться к app2
: RUN curl http://app1:8000/test
А на этапе сборки app1
еще не запущен.
По второму вопросу ответ, утвердительный. Если обо сервиса в одной сети (по умолчанию для сервисов из одного compose файла это так), то контейнер каждого из них доступен другому по hostname, который совпадает с именем сервиса в compose файле.
Answered by Roman Konoval on January 1, 2022
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP