在我的情况下,我也面临同样的问题,经过细微的更改后,我一次又一次地构建图像。
我的旧 DockerFile
FROM python:3.8.0
WORKDIR /app
# Install system libraries
RUN apt-get update && \
apt-get install -y git && \
apt-get install -y gcc
# Install project dependencies
COPY ./requirements.txt .
RUN pip install --upgrade pip
RUN pip install --no-cache-dir -r requirements.txt --use-deprecated=legacy-resolver
# Don't use terminal buffering, print all to stdout / err right away
ENV PYTHONUNBUFFERED 1
COPY . .
所以我做了什么,首先像这样创建了一个基础图像文件(避免了最后一行,没有复制我的代码)
FROM python:3.8.0
WORKDIR /app
# Install system libraries
RUN apt-get update && \
apt-get install -y git && \
apt-get install -y gcc
# Install project dependencies
COPY ./requirements.txt .
RUN pip install --upgrade pip
RUN pip install --no-cache-dir -r requirements.txt --use-deprecated=legacy-resolver
# Don't use terminal buffering, print all to stdout / err right away
ENV PYTHONUNBUFFERED 1
然后使用构建此图像
docker build -t my_base_img:latest -f base_dockerfile .
然后是最终的Dockerfile
FROM my_base_img:latest
WORKDIR /app
COPY . .
从这张图片中,我无法启动容器,我复制的 python 代码出现问题,因此您可以编辑图像/容器代码,以修复容器中的问题,这意味着我避免了一次又一次地构建图像的任务。
当我的代码得到修复后,我将更改从容器复制到我的代码库,最后,我创建了最终图像。