知道如何在 dockerfile 中安装 php Ldap 扩展
来自 php:7.2-fpm-alpine
我尝试了以下
RUN docker-php-ext-configure ldap --prefix=/usr/local/php --with-ldap=/usr/lib/i386-linux-gnu RUN docker-php-ext-install ldap
但是当我构建 docker 时,我收到错误消息
配置:错误:找不到 ldap.h 错误:服务“php”构建失败:命令“/bin/sh -c docker-php-ext-install ldap”返回非零代码:1
配置:错误:找不到 ldap.h
错误:服务“php”构建失败:命令“/bin/sh -c docker-php-ext-install ldap”返回非零代码:1
PS:它是高山的,所以“apt-get”在这里不起作用,而是“apk add”
使用以下 dockerfile 修复:
FROM php:7.2-fpm-alpine # Install composer RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer # lumen packages RUN apk add openldap-back-mdb RUN apk add --update --virtual .build-deps autoconf g++ make zlib-dev curl-dev libidn2-dev libevent-dev icu-dev libidn-dev openldap libxml2-dev RUN docker-php-ext-install intl soap RUN docker-php-ext-install mbstring tokenizer mysqli pdo_mysql json hash iconv RUN apk --update --no-cache add php7-ldap libldap php-ldap openldap-clients openldap openldap-back-mdb RUN apk add --no-cache ldb-dev RUN ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so \ && ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so #RUN docker-php-ext-configure ldap --prefix=/usr/local/php --with-ldap=/usr/lib/libldap.so #RUN docker-php-ext-install ldap ARG DOCKER_PHP_ENABLE_LDAP RUN echo -n "With ldap support: " ; if [[ "${DOCKER_PHP_ENABLE_LDAP}" = "on" ]] ; then echo "Yes"; else echo "No" ; fi && \ if [ -z ${DOCKER_USER_UID+x} ]; then echo "DOCKER_USER_UID is unset"; DOCKER_USER_UID=1000; else echo "DOCKER_USER_UID is set to '$DOCKER_USER_UID'"; fi && \ if [ -z ${DOCKER_USER_GID+x} ]; then echo "DOCKER_USER_GID is unset"; DOCKER_USER_GID=1000; else echo "DOCKER_USER_GID is set to '$DOCKER_USER_GID'"; fi # Enable LDAP RUN if [ "${DOCKER_PHP_ENABLE_LDAP}" != "off" ]; then \ # Dependancy for ldap \ apk add --update --no-cache \ libldap && \ # Build dependancy for ldap \ apk add --update --no-cache --virtual .docker-php-ldap-dependancies \ openldap-dev && \ docker-php-ext-configure ldap && \ docker-php-ext-install ldap && \ apk del .docker-php-ldap-dependancies && \ php -m; \ else \ echo "Skip ldap support"; \ fi RUN pecl install raphf propro RUN docker-php-ext-enable raphf propro RUN pecl install pecl_http RUN echo -e "extension=raphf.so\nextension=propro.so\nextension=iconv.so\nextension=http.so" > /usr/local/etc/php/conf.d/docker-php-ext-http.ini RUN rm -rf /usr/local/etc/php/conf.d/docker-php-ext-raphf.ini RUN rm -rf /usr/local/etc/php/conf.d/docker-php-ext-propro.ini RUN rm -rf /tmp/* COPY ./app /var/www/html/ RUN chown -R www-data:www-data /var/www/html/ RUN chmod -R 755 /var/www/html/ WORKDIR /var/www/html/ RUN composer install
如果您遇到 configure: error: Cannot find ldap.h try to add this line in your Alpine based Dockerfile
RUN apk add ldb-dev libldap openldap-dev