无法在Laradock中安装php7.2-ldap扩展

时间:2018-07-01 05:05:55

标签: php laravel docker laradock

我正在尝试在Laradock中安装const gulp = require("gulp"); const glob = require('glob'); const fs = require('fs'); gulp.task('default', function () { // like gulp.src but makes it easy to work on individual files one at a time glob("node_modules/+(typography-theme*)/dist/index.js", function (er, files) { // used later to avoid an extra newline after the last entry added const numFiles = files.length; let thisFileNum = 1; files.forEach(file => { const contents = fs.readFileSync(file, "utf8"); // look for "name: 'Lato'," let fontName = contents.match(/name:\s*'(.*)'/); // look for "styles: ['400', '700']" let fontStyle = contents.match(/styles:\s*\['(.*)'\]/); // get rid of the ' and , in fontStyle [the regexp returns ""'400', '700']"" fontStyle = fontStyle[1].replace(/,|'/g, ""); // in fontNames like "Souce Sans Pro", replace the spaces with +'s fontName = fontName[1].replace(/\s+/g, "+"); // in fontStyles like "200 400 700", replace the spaces with ,'s fontStyle = fontStyle.replace(/\s+/g, ","); // now build the next line to append to the file let line = `${fontName}:${fontStyle}&subset=latin`; // I don't know where you got the 'latin-ext' on one of your fonts // if the last file, omit the newline if (thisFileNum === numFiles) { fs.appendFileSync('modified.txt', line); } else { fs.appendFileSync('modified.txt', line + '\n'); } thisFileNum++; }); }); }); ,并且已设置

php7.2-ldap

WORKSPACE_INSTALL_LDAP=true

然后尝试构建

之类的图像
PHP_FPM_INSTALL_LDAP=true

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

docker-compose build workspace

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

1 个答案:

答案 0 :(得分:1)

我在回答自己的问题。

此问题已通过添加

修复
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 issue的引用:

  

这里似乎正在发生的事情是有一些apt-get   在本地时调用几个软件包的安装命令   软件包回购与遥控器不同步。在互动中   环境,这将由用户和适当的apt-get看到   更新将运行。但是,Dockerfile不包含任何   软件包回购更新命令,因此当前层具有   与远程的软件包回购列表不同。这通常是   “问题”与码头工人层,因为如果他们的命令,它们将被重用   并没有改变(我也必须学习一些困难的方法)。

通过:Philipp Tempel