0

我正在尝试php7.2-ldap在 Laradock 中安装并且我已经设置

WORKSPACE_INSTALL_LDAP=true

PHP_FPM_INSTALL_LDAP=true

然后尝试构建图像

docker-compose build workspace

我收到此错误消息。部分日志

The following NEW packages will be installed:
  php7.2-ldap
0 upgraded, 1 newly installed, 0 to remove and 28 not upgraded.
Need to get 23.1 kB of archives.
After this operation, 101 kB of additional disk space will be used.
Err:1 http://ppa.launchpad.net/ondrej/php/ubuntu xenial/main amd64 php7.2-ldap amd64 7.2.4-1+ubuntu16.04.1+deb.sury.org+1
  404  Not Found
E: Failed to fetch http://ppa.launchpad.net/ondrej/php/ubuntu/pool/main/p/php7.2/php7.2-ldap_7.2.4-1+ubuntu16.04.1+deb.sury.org+1_amd64.deb 404  Not Found

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
ERROR: Service 'workspace' failed to build: The command '/bin/sh -c if [ ${INSTALL_LDAP} = true ]; then     apt-get install -y libldap2-dev &&     apt-get install -y php${PHP_VERSION}-ldap ;fi' returned a non-zero code: 100

这里发生了什么,为什么我不能安装它?

4

1 回答 1

3

我正在回答我自己的问题。

这是通过添加修复的

apt-get update -yqq && \

apt-get install -y libldap2-dev && \

workspace/Dockerfilephp-fpm\Dockerfile

一个完整的块将如下所示:

文件:workspace\Dockerfile

###########################################################################
# LDAP:
###########################################################################

ARG INSTALL_LDAP=false
ARG PHP_VERSION=${PHP_VERSION}

RUN if [ ${INSTALL_LDAP} = true ]; then \
    apt-get update -yqq && \
    apt-get install -y libldap2-dev && \
    apt-get install -y php${PHP_VERSION}-ldap \
;fi

为什么会这样? 来自 Github问题的引用:

这里似乎发生的是,当本地包 repo 与远程不同步时,调用了几个包的一些 apt-get install 命令。在交互式环境中,这将被用户看到并运行适当的 apt-get update。但是,Dockerfile 不包含任何包 repo 更新命令,因此当前层具有与远程不同的包 repo 列表。这通常是 docker 层的“问题”,因为如果它们的命令没有改变,它们将被重新使用(我也必须通过艰难的方式学习)。

作者:菲利普·坦普尔

于 2018-07-01T05:46:35.443 回答