繁体   English   中英

错误:不可满足的约束 - Docker

[英]ERROR: unsatisfiable constraints - Docker

当我安装 Python 项目时,Docker 出现此错误。 尽管在谷歌上进行了研究,但我没有找到解决方案。 顺便说一句,当我在 Docker 上运行项目时,如何在浏览器上显示?

test@test-VirtualBox:~/backend$ sudo docker build  -t test .
Sending build context to Docker daemon  489kB
Step 1/11 : FROM python:3.6-alpine
 ---> 267db919e15e
Step 2/11 : RUN addgroup -S app && adduser -S -g app app
 ---> Using cache
 ---> ce1632a22469
Step 3/11 : WORKDIR /usr/src/app
 ---> Using cache
 ---> 01b36ea9b7c1
Step 4/11 : RUN apk --update --upgrade add --virtual deps       gcc python3-dev linux-headers musl-dev      alpine-sdk openssl-dev gmp-dev libffi-dev       postgresql-dev &&   apk --update --upgrade add --no-cache libpq gmp
 ---> Running in d962dfc4a26a
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
ERROR: unsatisfiable constraints:
  openssl-dev-1.0.2o-r2:
    conflicts:
            libressl-dev-2.7.4-r0[pc:libcrypto=1.0.2o]
            libressl-dev-2.7.4-r0[pc:libssl=1.0.2o]
            libressl-dev-2.7.4-r0[pc:openssl=1.0.2o]
  libressl-dev-2.7.4-r0:
    conflicts:
            openssl-dev-1.0.2o-r2[pc:libcrypto=2.7.4]
            openssl-dev-1.0.2o-r2[pc:libssl=2.7.4]
            openssl-dev-1.0.2o-r2[pc:openssl=2.7.4]
    satisfies:
            postgresql-dev-10.5-r0[libressl-dev]
  deps-0:
    masked in: cache
    satisfies: world[deps]
The command '/bin/sh -c apk --update --upgrade add --virtual deps       gcc python3-dev linux-headers musl-dev      alpine-sdk openssl-dev gmp-dev libffi-dev       postgresql-dev &&   apk --update --upgrade add --no-cache libpq gmp' returned a non-zero code: 4

Dockerfile:

FROM python:3.6-alpine

RUN addgroup -S app && adduser -S -g app app
WORKDIR /usr/src/app

RUN apk --update --upgrade add --virtual deps \
      gcc python3-dev linux-headers musl-dev \
      alpine-sdk gmp-dev libffi-dev \
      postgresql-dev && \
    apk --update --upgrade add --no-cache libpq gmp

COPY ./requirements.txt requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
RUN apk del deps

COPY . /usr/src/app
RUN chown -R app:app /usr/src/app

USER app

EXPOSE 8080

为什么需要安装openssl-dev包? Alpine 包是用libressl编译的。 您不能在 alphine 3.6 的容器中同时安装openssl-devlibressl-dev

我遇到了同样的问题。 我们公司基于python:2.7-alpine构建了一个基础镜像,但可能它太旧了。 所以不安装openssl-dev是不够的。

看看这个 :

satisfies:
            postgresql-dev-10.5-r0[libressl-dev]

postgresql-dev依赖libressl-dev ,所以我首先删除 openssl-dev :

RUN apk del openssl-dev

然后一切正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM