The Compose file '.\docker-compose.yml' is invalid because: services.server.ports is invalid: Port ranges don't match in length
Файл server.env, находится на одном уровне с docker-compose.yml
- docker-compose.yml
version: "3"
services:
server:
env_file:
- server.env
build: server/
command: python ./server.py
ports:
- ${EXTERNAL_PORT}:1234
client:
build: client/
command: python ./client.py
network_mode: host
depends_on:
- server
- server.env
EXTERNAL_PORT=1234
Я также пытался из командной строки запустить (разумеется тогда настройки из *.env не должны учитываться)...
docker-compose run -e EXTERNAL_PORT=1234 server python server.py
WARNING: The EXTERNAL_PORT variable is not set. Defaulting to a blank string.
ERROR: The Compose file '.\docker-compose.yml' is invalid because:
services.server.ports is invalid: Port ranges don't match in length
вот один из примеров, что нашел
Подскажите в чем ошибка может быть.
Ответы (1 шт):
Автор решения: Exploding Kitten
→ Ссылка
env_file предназначен для того, чтобы создавать переменные внутри контейнера, т.е. в вашем случае внутри server контейнера будет существовать EXTERNAL_PORT.
Для того, чтобы это начало работать в docker-compose.yml нужно назвать файл .env (без слова server) и соответственно исправить docker-compose.yml:
env_file:
- .env
Тогда при вызове docker-compose up все будет ок.
