Проблема с установкой libpq в Docker для проекта Django
Я пытаюсь установить мой проект Django с помощью docker и использовать postgres для db, и для этого мне нужно установить libpq: RUN apk update --no-cache && apk add --no-cache libpq
Но я получил эту ошибку во время выполнения docker compose up --build
:
=> ERROR [backend builder 3/7] RUN apk update --no-cache && apk add --no-cache postgresql-dev gcc python3-dev musl-dev nano 10.6s
=> ERROR [backend stage-1 6/14] RUN apk update --no-cache && apk add --no-cache libpq dcron 10.6s
------
> [backend builder 3/7] RUN apk update --no-cache && apk add --no-cache postgresql-dev gcc python3-dev musl-dev nano:
0.559 fetch https://dl-cdn.alpinelinux.org/alpine/v3.20/main/x86_64/APKINDEX.tar.gz
5.560 WARNING: fetching https://dl-cdn.alpinelinux.org/alpine/v3.20/main: temporary error (try again later)
5.560 fetch https://dl-cdn.alpinelinux.org/alpine/v3.20/community/x86_64/APKINDEX.tar.gz
10.57 WARNING: fetching https://dl-cdn.alpinelinux.org/alpine/v3.20/community: temporary error (try again later)
10.57 4 unavailable, 0 stale; 37 distinct packages available
------
------
> [backend stage-1 6/14] RUN apk update --no-cache && apk add --no-cache libpq dcron:
0.555 fetch https://dl-cdn.alpinelinux.org/alpine/v3.20/main/x86_64/APKINDEX.tar.gz
5.560 fetch https://dl-cdn.alpinelinux.org/alpine/v3.20/community/x86_64/APKINDEX.tar.gz
5.560 WARNING: fetching https://dl-cdn.alpinelinux.org/alpine/v3.20/main: temporary error (try again later)
10.57 WARNING: fetching https://dl-cdn.alpinelinux.org/alpine/v3.20/community: temporary error (try again later)
10.57 4 unavailable, 0 stale; 37 distinct packages available
------
failed to solve: process "/bin/sh -c apk update --no-cache && apk add --no-cache libpq dcron" did not complete successfully: exit code: 4
Dockerfile:
###########
# BUILDER #
###########
# pull official base image
FROM python:3.12-alpine as builder
# set work directory
WORKDIR /usr/src/app
# set environment variables
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
# install psycopg2 dependencies
RUN apk update --no-cache \
&& apk add --no-cache postgresql-dev gcc python3-dev musl-dev nano
# lint
RUN pip install --upgrade pip
COPY ./core .
# install dependencies
COPY ./requirements.txt .
RUN pip wheel --no-cache-dir --no-deps --wheel-dir /usr/src/app/wheels -r requirements.txt
#########
# FINAL #
#########
# pull official base image
FROM python:3.12-alpine
# create directory for the app user
RUN mkdir -p /home/app
# create the app user
RUN addgroup -S --gid 1000 app && adduser -S app --uid 1000 -G app
# create the appropriate directories
ENV HOME=/home/app
ENV APP_HOME=/home/app/web
RUN mkdir $APP_HOME
WORKDIR $APP_HOME
# install dependencies
RUN apk update --no-cache && apk add --no-cache libpq dcron
COPY --from=builder /usr/src/app/wheels /wheels
COPY --from=builder /usr/src/app/requirements.txt .
RUN pip install --no-cache /wheels/*
# copy project
COPY ./core $APP_HOME
# Create media/uploads directory
RUN mkdir -p $APP_HOME/media/uploads
# chown all the files to the app user
RUN chown -R app:app $APP_HOME
# copy entrypoint.sh
COPY core/entrypoint.sh /home/app/web
RUN sed -i 's/\r$//g' $APP_HOME/entrypoint.sh & chmod o+x $APP_HOME/entrypoint.sh
# change to the app user
USER app
# use entrypoint.sh to manage start
ENTRYPOINT ["/home/app/web/entrypoint.sh"]
Я пробовал такие вещи, как RUN apk add --no-cache ca-certificates && update-ca-certificates
и RUN apk --no-cache --allow-untrusted add...
, но они не помогли.
Я даже пытался изменить версию, но и это не помогло: FROM python:3.11-alpine