저는 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 . .