在运行docker composite up并进入0.0.0..:8000/docs后,在fastapi项目x1c 0d1x中使用get方法时出现以下错误
.env文件内容
MONGODB_URL = mongodb://localhost:27017/
MONGO_HOST = "0.0.0.0"
MONGO_PORT = 27017
MONGO_USER = ""
MONGO_PASS = ""
DATABASE_NAME = "myDatabase"
TEST1_COLLECTION="TEST1_COLLECTION"
TEST2_COLLECTION="TEST2_COLLECTION"
TEST3_COLLECTION="TEST3_COLLECTION"
停靠文件内容:
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.9
COPY ./requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt
COPY ./app /app/app
WORKDIR /app/app/
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
docker-compose.yml内容
version: "3.9"
services:
app:
build: .
command: uvicorn app.main:app --host 0.0.0.0
ports:
- "8000:8000"
depends_on:
- db
db:
image: mongo
ports:
- "27017:27017"
volumes:
- ./data:/data/db
我做错了什么,因为我只需要使用docker中的环境变量并运行应用程序?
2条答案
按热度按时间6ss1mwsb1#
我相信@MatsLindh可能是对的,您需要在Docker内部网络中使用MongoDB的运行示例来寻址另一个容器的主机(在您的例子中是
db
容器)。bihw5rsg2#
在docker-compose中将
container_name
添加到db服务,然后在python代码中连接到时使用其名称作为主机。例如