Как правильно настроить среду в приложении Python Flask Docker? - PullRequest
0 голосов
/ 30 марта 2020

Python новичок здесь. Я хочу настроить как минимум 2 различные среды в моем Python Flask приложении, контейнеризованном в Docker.

Например, это мой app.py:

app = Flask(__name__)
api = Api(app)

# TODO: IF LOCAL, SHOULD CONNECT USING CLIENT_CONNECTION_OPTION_2. IF AWS, CONNECT USING OPTION1.

#CLIENT_CONNECTION_OPTION_1:
#client = MongoClient("mongodb+srv://user:password@trialcluster.mongodb.net/test")

#CLIENT_CONNECTION_OPTION_2:
client = MongoClient("mongodb://db:27017")

db = client.aNewDB

@app.route('/')
def helloWorld():
  return 'Hello World, this environment is: ' + ENVIRONMENT_NAME

if __name__ == '__main__':
        app.run(host='0.0.0.0')

И когда я работаю с локальной версией, я использую Dockerized MongoDB, как в моем docker -compose.yml:

version: '3'
services:

  app:
    image: app
    build:
      context: ../
      dockerfile: deployments/app/Dockerfile
    ports:
      - "5000:5000"
    links:
      - db
  db:
    build: ./db

Теперь, когда я готов развернуть эту вещь на AWS Я действительно хочу sh автоматизировать конфигурацию среды, вместо того, чтобы переходить к app.py и комментировать CLIENT_CONNECTION_OPTION_2 и раскомментировать другой, так как я буду использовать MongoDBAtlas, который не требует, чтобы БД была Dockerized .

Кроме того, helloWorld() должно печатать «..... is: PRODUCTION», если приложение работает в AWS, и «DEV», если оно выполняется локально.

Что такое правильный способ go о настройке такого поведения с учетом выбранного мной стека технологий?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...