gpt4 book ai didi

python - 如何在 AWS ECS 上的 Flask/MongoDB 中设置环境变量?

转载 作者:太空宇宙 更新时间:2023-11-04 11:10:42 24 4
gpt4 key购买 nike

我有一个使用 MongoDB 运行的 flask 应用程序。

在本地,当我使用以下内容构建和运行容器时,应用程序在本地运行得非常好。

docker-compose build
docker-compose up

这些是创建的容器:

/application$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9e054b28bb46 application_web "/bin/sh -c 'python …" 38 seconds ago Up 37 seconds 0.0.0.0:80->80/tcp, 27017/tcp application_web_1
2a19a8e9a267 mongo:3.0.2 "/entrypoint.sh mong…" 39 seconds ago Up 38 seconds 0.0.0.0:27017->27017/tcp application_db_1

我的 app.py 中有以下内容:

MONGODB_HOST = os.environ['DB_PORT_27017_TCP_ADDR']
MONGODB_PORT = 27017

app = Flask(__name__)
bootstrap = Bootstrap(app)
client = MongoClient(MONGODB_HOST, MONGODB_PORT)

docker-compose.yml

web:
build: .
command: python -u app.py
ports:
- "80:80"
volumes:
- .:/project
environment:
MONGODB_HOST: db
links:
- db

db:
image: mongo:3.4
command: mongod
ports:
- "27017:27017"

Dockerfile

FROM python:3.6.1-alpine

MAINTAINER mebarkiakhalil@gmail.com

WORKDIR /project

ADD . /project

RUN pip install -r requirements.txt

EXPOSE 80

EXPOSE 27017

CMD ["mongod"]

ENV NAME Cheppers_DevOps_Challenge

ENTRYPOINT python app.py

我面临的问题是,在将图像推送到 AWS ECS 之后,我使用给定的容器图像推送存储库创建集群,我总是在任务定义日志中收到此错误:

2019-10-08 14:19:02
MONGODB_HOST = os.environ['DB_PORT_27017_TCP_ADDR']
KeyError: 'DB_PORT_27017_TCP_ADDR'

最佳答案

我建议你更改 mongo 主机:

MONGODB_HOST = "db"

os.environ['DB_PORT_27017_TCP_ADDR'] 将使用您不需要的容器的 IP 地址,因为 compose 将使用服务名称为您处理.

我认为 AWS 以不同的方式处理 IP 地址,不再是 dict(“KeyError”)

关于python - 如何在 AWS ECS 上的 Flask/MongoDB 中设置环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58286330/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com