私はDockerを使ってpostgresqlでDjangoアプリケーションを書いています。ただし、何らかの理由でビルドはエラーを返します"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:
そしてrequest.txt
Django==3.2.9
psycopg2-binary==2.9.1
誰でも私を助けることができればとても感謝します。私はオンラインで役に立つものを見つけることができず、初心者です。ありがとうございます! !
答え1
このpython:3.8
イメージはDebian 11に基づいているため、必要なパッケージは次のとおりです。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 . .