Я думаю, что когда вы вращаете свои приложения, они оба работают на порту 5000
, но в разных контейнерах, поэтому попробуйте изменить app1.py
на:
@app.route('/get_message')
def get_message():
message = requests.get('http://web2:5000/return_message')
return message.text
if __name__ == '__main__':
app.run(host='0.0.0.0')
А также изменить порты в docker-compose для web2
:
version: "3.7"
services:
web1:
build: ./web1
container_name: web1
ports:
- "5000:5000"
web2:
build: ./web2
container_name: web2
ports:
- "5001:5000"
Однако изменение портов в docker-compose не требуется, если вы не хотите получать доступ web2
с хоста - имейте в виду, что здесь я отображаю порт 5001 вашего хоста на порт 5000 контейнера web2, и оба ваших контейнера предоставляют приложение через порт 5000.
Помните, что это отдельные контейнеры, так же как и отдельные среды. Также имейте в виду, что EXPOSE
предназначен только для документирования того, что вы предоставляете какую-то службу на этом порту - это не заставляет ваше приложение в контейнере работать на этом порту.