首页 > 解决方案 > 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 依赖项。

最奇怪的是在这个特定模块也可以正常工作之前安装。

有任何想法吗?

标签: pythonpython-3.xdocker

解决方案


推荐阅读