Я хочу использовать номер порта, определенный в файле env, это возможно?Ниже приведено содержимое моего docker-compose.yml:
version: '3'
services:
flask:
build:
context: ./flask
dockerfile: Dockerfile_flask
env_file:
- env_file.env
ports:
#- "5000:5000"
- "${PORT}:${PORT}" # I want to set port defined in the env file
volumes:
- ./logs:/app/flask/log
restart: always
И это содержимое env_file.env
PORT=5000
Но возникли некоторые ошибки:
WARNING: The PORT variable is not set. Defaulting to a blank string.
ERROR: The Compose file './docker-compose.yml' is invalid because:
services.flask.ports is invalid: Invalid port ":", should be [[remote_ip:]remote_port[-remote_port]:]port[/protocol]
Если это возможно, как мне это сделать?Спасибо
@ lvthillo, спасибо за ваш предыдущий ответ.Но у меня есть другая проблема, что порт не может быть доступен в моем приложении фляги.Коды перечислены ниже:
import os
from flask import Flask
application = Flask(__name__)
print(os.getenv("PORT")) # this is None
my_port = int(os.getenv("PORT", 5000)) # so my_port here is 5000, but I want it to be 5002 defined in .env
@application.route("/api/test", methods=['POST'])
def index():
print('hello')
if __name__ == "__main__":
application.run(host="0.0.0.0", port=my_port)
Поскольку приложение для колб должно работать с тем же портом, что и контейнер.Есть ли способ, которым я могу установить порт в файле env как для docker-compose, так и для моего приложения фляги?Спасибо