我目前正在尝试使用 this 教程调试我的容器化 Django 应用程序。但不幸的是,当我尝试创建新的 Python 解释器时,我收到了附加的错误。该视频显示了我的步骤:https://www.youtube.com/watch?v=6ZGIKggCIws
“Python 解释器进程以非零退出代码 1 退出,来自守护程序的错误响应:无法为容器创建任务:无法创建 shim 任务:OCI 运行时创建失败:runc 创建失败:无法启动容器进程:exec:” /home/leo/Desktop/development/daytistics/app/backend/.venv/bin/python": stat /home/leo/Desktop/development/daytistics/app/backend/.venv/bin/python: 没有这样的文件或目录:未知”
以下是我的 docker-compose 文件的相关部分:
name: daytistics
services:
postgres:
image: postgres:16
environment:
POSTGRES_DB: mydb
POSTGRES_USER: myuser
POSTGRES_PASSWORD: mypassword
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
django:
image: python:3.12-slim
volumes:
- ./backend:/app
working_dir: /app
command: >
/bin/sh -c "pip install poetry &&
poetry config virtualenvs.in-project true &&
poetry install --no-root &&
poetry run python manage.py runserver 0.0.0.0:8000"
environment:
DATABASE_URL: postgres://myuser:mypassword@postgres:5432/mydb
DJANGO_SECRET_KEY: "xuh%bc^1%m575%mv@@t87=f6_(i)%c=3jt-+obn&e%=+8qbm!f"
DJANGO_ALLOWED_HOSTS: "*"
CORS_ALLOWED_ORIGINS: "http://localhost:3000"
CSRF_TRUSTED_ORIGINS: "http://localhost:3000"
CSRF_ALLOWED_ORIGINS: "http://localhost:3000"
FRONTEND_URL: http://nuxt:3000
ports:
- "8000:8000"
depends_on:
- postgres
volumes:
postgres_data:
对应的Python可执行文件存在。我也有访问权限。
当您运行
poetry run python
时,它会尝试在 venv
中运行 python 命令。但问题是,将要运行的 python 解释器是该虚拟环境中 python3
的符号链接,并且您无法将计算机中某些内容的符号链接复制到 docker 容器。