我正在用postgresql编写一个Django应用程序,使用Docker。但是,由于某种原因,生成返回错误"E: Unable to locate package postgresql-server-dev-10 The command '/bin/sh -c apt-get update && apt-get install postgresql-server-dev-10 gcc python3-dev musl-dev' returned a non-zero code: 100。
我尝试将它更改为sudo apt-get install postgresql postgresql-client,我也尝试安装python,但似乎没有什么工作。在我的终端中运行sudo apt install postgresql-server-dev-10可以工作(我已经安装了它),但是在构建时它会失败(docker-compose build)。
我的Dockerfile是:
FROM python:3.8
# set work directory
WORKDIR /weather_api
# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# install psycopg2 dependencies
RUN apt-get update \
&& apt-get install postgresql-server-dev-10 gcc python3-dev musl-dev
# install dependencies
RUN pip install --upgrade pip
COPY ./requirements.txt .
RUN pip install -r requirements.txt
# copy project
COPY . .docker-compose.yml是:
services:
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- ./:/weather_api/
ports:
- 8000:8000
env_file:
- ./.env.dev
db:
image: postgres:10.19
volumes:
- postgres_data:/var/lib/postgresql/data/
environment:
- POSTGRES_USER=lavinia
- POSTGRES_PASSWORD=#123$
- POSTGRES_DB=weatherdb
volumes:
postgres_data:和requirements.txt
Django==3.2.9
psycopg2-binary==2.9.1如果有人能帮我,我会非常感激的。我在网上找不到任何有用的东西,我是个初学者。谢谢你!!
发布于 2021-12-07 15:27:40
python:3.8映像基于Debian11,所以您需要的包是postgresql-server-dev-13。
安装postgresql-server-dev-all会更简单,它会为您提供正确的版本:
FROM python:3.8
# set work directory
WORKDIR /weather_api
# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# install psycopg2 dependencies
RUN apt-get update \
&& apt-get install -y postgresql-server-dev-all gcc python3-dev musl-dev
# install dependencies
RUN pip install --upgrade pip
COPY ./requirements.txt .
RUN pip install -r requirements.txt
# copy project
COPY . .https://unix.stackexchange.com/questions/680508
复制相似问题