docker 如何解决这个问题:错误:不可满足的约束:postgresql-client(missing):要求:world[postgresql-client]?

crcmnpdw  于 2023-05-06  发布在  Docker
关注(0)|答案(3)|浏览(211)

拜托有人能帮帮我吗我刚开始使用Docker学习Django-REST-API。我想安装postgresql-11-alpine,但我不断得到这个错误消息时,我运行;docker-compose build:
警告:忽略http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz:临时错误(稍后再试)警告:忽略http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz:暂时错误(稍后再试)错误:不可满足的约束:postgresql-client(missing):要求:world[postgresql-client]错误:无法生成服务“app”:命令'/bin/sh -c apk add --update --no-cache postgresql-client'返回非零代码:1
下面是我的Dockerfile文件

FROM python:3.7-alpine
MAINTAINER Tboost Technology
#set environment variable
ENV PYTHONUNBUFFERED 1

#install dependencies
COPY ./requirements.txt /requirements.txt
RUN apk add --update --no-cache postgresql-client
RUN apk add --update --no-cache --virtual .tmp-build-deps \
    gcc libc-dev python3-dev linux-headers postgresql-dev
RUN pip3 install -r /requirements.txt
RUN apk del .tmp-build-deps

#mkdir to store your apps source code
RUN mkdir /app
WORKDIR /app
COPY ./app /app

#create user to run apps in the docker
RUN adduser -D user
#switch to the user
USER user

下面是我的docker-compose.yml文件

version: "3"

services: 
    app:
        build: 
            context: .
        ports: 
            - "8000:8000"
        extra_hosts: 
            - "host.docker.internal:172.17.0.1"
        volumes: 
            - ./app:/app
        command: >
            sh -c "python manage.py runserver 0.0.0.0:8000"
        environment: 
            - DB_HOST=db
            - DB_NAME=app
            - DB_USER=postgres
            - DB_PASS=supersecretpassword
        depends_on: 
            - db
    db:
        image: postgres:11-alpine
        restart: always
        environment: 
            - POSTGRES_DB=app
            - POSTGRES_USER=postgres
            - POSTGRES_PASSWORD=supersecretpassword

我的requirements.txt文件:

Django>=3.0.7,<3.0.8
djangorestframework>=3.11.0,<3.12.0
psycopg2>=2.7.5,<2.8.0

flake8>=3.6.0,<3.7.0

谢谢

aiqt4smr

aiqt4smr1#

我遇到了同样的问题,并通过以下方式解决了它:
1.安装postgresql-client,我使用了下面的链接
Create a Postgresql Docker Container
1.重启docker服务:sudo systemctl restart docker
1.运行docker compose build命令:docker-compose build

6ie5vjzr

6ie5vjzr2#

在我看来,这是网络的问题。集装箱无法访问互联网。
它是通过运行一个命令来解决的:

docker build --network=host . -t recipe_app_api

并在docker-compose. yml中使用 recipe_app_API image。

flmtquvp

flmtquvp3#

对于我来说,我使用的是ruby:2.6.1-alpine,这个高山版本是3.9,不支持postgresql-client14,请检查您的操作系统和客户端版本

相关问题