Docker 错误:不可满足的约束-关于php:7-fpm-alpine

Docker 错误:不可满足的约束-关于php:7-fpm-alpine,docker,alpine,Docker,Alpine,我正在考虑在fpm阿尔卑斯集装箱上安装laravel。遇到了一个障碍,下面的Dockerfile产生了一些错误 FROM php:7-fpm-alpine # install extensions needed for Laravel RUN apk --update add \ php7-mysqli \ php7-mcrypt \ php7-mbstring \ rm /var/cache/apk/* 产生的错误包括: Building fpm Step 1 : FROM

我正在考虑在fpm阿尔卑斯集装箱上安装laravel。遇到了一个障碍,下面的Dockerfile产生了一些错误

FROM php:7-fpm-alpine

# install extensions needed for Laravel
RUN apk --update add \
  php7-mysqli \
  php7-mcrypt \
  php7-mbstring \
  rm /var/cache/apk/*
产生的错误包括:

Building fpm
Step 1 : FROM php:7-fpm-alpine
 ---> 9e6811cb8bac
Step 2 : RUN apk --update add   php7-mysqli   php7-mcrypt   php7-mbstring   rm /var/cache/apk/*
 ---> Running in 87364957eb57
fetch http://dl-cdn.alpinelinux.org/alpine/v3.3/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.3/community/x86_64/APKINDEX.tar.gz
ERROR: unsatisfiable constraints:
  /var/cache/apk/* (missing):
    required by: world[/var/cache/apk/*]
  php7-mbstring (missing):
    required by: world[php7-mbstring]
  php7-mcrypt (missing):
    required by: world[php7-mcrypt]
  php7-mysqli (missing):
    required by: world[php7-mysqli]
  rm (missing):
    required by: world[rm]
ERROR: Service 'fpm' failed to build: The command '/bin/sh -c apk --update add   php7-mysqli   php7-mcrypt   php7-mbstring   rm /var/cache/apk/*' returned a non-zero code: 5
我可以搜索这些包的名称和名称。有没有想过我该如何解决这个问题?好像它没有更新apt缓存。。。但是添加一个LS我可以在那里看到内容:

Building fpm
Step 1 : FROM php:7-fpm-alpine
 ---> 9e6811cb8bac
Step 2 : RUN apk update
 ---> Using cache
 ---> 9ef09f3aa2a2
Step 3 : RUN ls /var/cache/apk
 ---> Running in e126a083a306
APKINDEX.5a59b88b.tar.gz
APKINDEX.7c1f02d6.tar.gz

有什么办法可以解决这个问题吗?

我没有使用在容器中添加工作时需要的
docker php ext install

FROM php:7-fpm-alpine

# install extensions needed for Laravel
RUN apk update \
    && apk add libmcrypt-dev \
    && docker-php-ext-install mcrypt mysqli pdo_mysql \
    && rm /var/cache/apk/*

基本Docker映像可能引用了错误的存储库

将正确的存储库传递到
apk add
命令,如下所示:

RUN apk add --update \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/main \
--repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
php7-mysqli php7-mcrypt php7-mbstring

我遇到了同样的错误,并尝试了这里的解决方案,发现
apk更新
至关重要

我遇到了同样的错误。通过从名称中删除程序包版本解决了此问题:


这真的有效吗?编译其中一些扩展可能需要开发包(比如
libmcrypt-dev
),是的,它确实非常有用。工作很愉快。