【发布时间】:2020-02-05 17:44:51
【问题描述】:
我有一个使用 MongoDB 运行的烧瓶应用程序。
在本地,当我使用以下内容构建和运行容器时,应用程序在本地运行得非常好。
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'
【问题讨论】:
-
您已经定义了
environment: MONGODB_HOST: db。在此处添加DB_PORT_27017_TCP_ADDR。 -
@AlexBlex 你的意思是
docker-compose.yml中的db我放了DB_PORT_27017_TCP_ADDR? -
@LinPy 在本地是这样工作的。我不知道怎么做,但在 AWS 上出错了。
-
@LinPy 但问题出在 AWS 上它不起作用。我不明白你的意思
标签: python mongodb docker flask amazon-ecs