Dockerfile
FROM python:3.10.2-slim-bullseye
# Set environment variables
ENV PIP_DISABLE_PIP_VERSION_CHECK 1
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# Set work directory
WORKDIR /code
# Install dependencies
COPY /home/michael/PycharmProjects/django_project/requirements.txt .
RUN pip install -r requirements.txt
# Copy project
COPY /home/michael/PycharmProjects/django_project/ .
docker-compose.yml
version: "3.9"
services:
pcask:
build: .
ports:
- "8000:8000"
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
db:
image: postgres:15
volumes:
- postgres_data:/var/lib/postgresql/data/
- postgres_dumpdata:/var/lib/dumpdata/
environment:
- "POSTGRES_HOST_AUTH_METHOD=trust"
volumes:
postgres_data:
postgres_dumpdata:
networks:
routing:
name: routing
external: true
问题
michael@michael:~/PycharmProjects/django_project/docker_files/pcask$ sudo docker compose up --build
[+] Building 1.5s (9/9) FINISHED
=> [pcask internal] load build definition from Dockerfile 0.1s
=> => transferring dockerfile: 423B 0.0s
=> [pcask internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [pcask internal] load metadata for docker.io/library/python:3.10.2-sl 1.3s
=> [pcask internal] load build context 0.0s
=> => transferring context: 2B 0.0s
=> [pcask 1/5] FROM docker.io/library/python:3.10.2-slim-bullseye@sha256 0.0s
=> CACHED [pcask 2/5] WORKDIR /code 0.0s
=> ERROR [pcask 3/5] COPY /home/michael/PycharmProjects/django_project/r 0.0s
=> CACHED [pcask 4/5] RUN pip install -r requirements.txt 0.0s
=> ERROR [pcask 5/5] COPY /home/michael/PycharmProjects/django_project/ 0.0s
------
> [pcask 3/5] COPY /home/michael/PycharmProjects/django_project/requirements.txt .:
------
------
> [pcask 5/5] COPY /home/michael/PycharmProjects/django_project/ .:
------
failed to solve: failed to compute cache key: failed to calculate checksum of ref cbba007b-59ed-412e-8cd4-90c94ea98a1e::lq17qgdoi8v4wutiencqcws4a: "/home/michael/PycharmProjects/django_project": not found
但我使用了绝对路径以避免任何误解。并仔细检查路径:
接下来我可以尝试什么?
所有 COPY 命令必须引用构建上下文中可用的文件,即包含 Dockerfile 的目录。
因此,您应该确保所有必需的文件都放置在 Dockerfile 目录中,以便 Dockerfile 中的 COPY 指令可以找到源文件并将其复制到 Docker 镜像中。