python - Docker 构建通过 CLI 工作,但不是来自 Compose(指相同的 Dockerfile)
问题描述
我有一个运行小型 Python 应用程序的 Dockerfile。Dockerfile如下:
# syntax=docker/dockerfile:1
FROM python:3.8-slim-buster
COPY . .
WORKDIR /mqtt_api
RUN pip3 install -r requirements.txt
EXPOSE 8000
CMD ["uvicorn", "api:app"]
当我docker build --tag <name> .
在 Dockerfile 目录中构建上述内容时,它构建良好并且运行良好。我通过 CLI 运行(注意 bash 仅用于故障排除):
docker run -d -it -p "8000:8000" <env vars> <image> bash
但是,当我使用此 yaml 从 docker-compose 文件(与 Dockerfile 相同的目录)构建时:
api:
build:
context: .
dockerfile: Dockerfile
container_name: api
ports:
- "8000:8000"
我收到一条错误消息,提示我requirements.txt
需要导入其中的一个 Python 依赖项。
最奇怪的是在这个特定模块也可以正常工作之前安装。
有任何想法吗?
解决方案
推荐阅读
- bash - 是否有更优雅的方式来编写具有重叠(嵌套)替代方案的语句?
- rust - 可以在没有#[derive(Serialize)] 的情况下在枚举上实现/派生序列化吗?
- c++ - 为什么我们为 glfwCreateWindow 使用指针?- OpenGL
- javascript - 从另一个 JS 文件中导出方法
- django - 如何在特定时间通过 websocket 发送消息
- google-sheets - 只有在一列中有公共数据(名称)时,如何在多个电子表格之间复制信息?
- html - 为什么我的 CSS 网格列在我的导航上不起作用?
- c# - 单个 Select() 语句或多个用于多步骤转换的语句?
- javascript - 无法使用 Ant Design 禁用 Step(动态)
- mongodb - MongoDB C# 驱动程序的 DistinctAsync 引发无法反序列化“列表”
'来自 BsonType '字符串'