【问题标题】:Multistage docker build for Django用于 Django 的多阶段 docker 构建
【发布时间】:2022-01-21 05:56:04
【问题描述】:

我正在使用 docker 多阶段构建对我的 Django 应用程序进行 dockerizing。现在面临依赖问题

Dockerfile

FROM python:3.8-slim-buster AS base
WORKDIR /app
RUN python -m venv venv
ENV PATH="/app/venv:$PATH"
COPY requirements.txt .
RUN pip install -r requirements.txt \
    && pip install gunicorn
COPY entrypoint.sh .
COPY . .

FROM python:3.8-slim-buster
WORKDIR /app
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
COPY --from=base /app /app/
ENV PATH="/app/venv:$PATH"
ENTRYPOINT sh entrypoint.sh

运行容器时会引发导入错误。

ImportError:无法导入 Django。您确定它已安装并在您的 PYTHONPATH 环境变量中可用吗?您是否忘记激活虚拟环境?

【问题讨论】:

  • 第二个 FROM 应该是 FROM base

标签: python django docker docker-multi-stage-build


【解决方案1】:

几个月前我也遇到过同样的情况,是2个包冲突,所以pip安装的时候没有安装django。

您可以在 docker build 命令中添加“--progress=plain”选项,并在 docker build 期间查看是否一切正常:

  • $ docker build --no-cache --progress=plain -t my_service_name 。 巴蒂斯特。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-13
    • 2022-11-25
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多