【发布时间】:2023-03-14 07:50:02
【问题描述】:
我为专业人士买了一本 Django 书,目前正在阅读 PostgreSQL 的第 2 章。我在我的虚拟环境中安装了 django,我的项目在 docker 中,如下面的代码所示。
当我尝试安装 psycopg 时出现错误: 警告:在您的系统上未找到 Python 3.10... 找不到“pyenv”和“asdf”来安装 Python。 您可以使用以下命令指定特定版本的 Python: $ pipenv --python path/to/python.
我运行命令:docker-compose exec web pipenv install psycopg2-binary==2.8.5
我的 Dockerfile 是
FROM python:3.9
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
WORKDIR /code
COPY Pipfile Pipfile.lock /code/
RUN pip install pipenv && pipenv install --system
COPY . /code/
我的 docker-compose.yml 文件是
version: "3.9"
services:
web:
build: .
command: python3 /code/manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- 8000:8000
depends_on:
- db
db:
image: postgres:11
environment:
- "POSTGRES_HOST_AUTH_METHOD=trust"
【问题讨论】:
-
您的帖子中似乎缺少 Dockerfile 的第一行。
FROM声明。 -
你通常不应该在运行的容器中安装东西;一旦该容器退出,您
docker-compose exec ... pipenv install的任何内容都会丢失。您是否需要将依赖项添加到您的 Pipfile 中?您在这里需要 Docker,还是基于主机的虚拟环境更容易使用? -
将
Dockerfile和docker-compose.yml中的3.9 更改为3.7。
标签: django postgresql docker docker-compose psycopg2