我使用官方的php docker镜像作为我的应用程序容器的基础,所以Dockerfile是这样开始的:
FROM php:5.6-fpm-jessie
在后面的文件中,我希望有这样的东西:
RUN apt-get update \
&& apt-get install -y libssh2-1-dev libssh2-1 \
&& docker-php-ext-install ssh2
但这告诉我:
/usr/src/php/ext/ssh2 does not exist
因此,由于这是一个基于debian ( php )的镜像,只有旧的php5包可用,并且php7是通过php:fpm dockerfile中的一些棘手的脚本安装的,看起来所有的扩展都是在用过的php可执行文件中编译的。
如何在此场景中安装更多扩展?
发布于 2018-08-24 14:07:10
最后,这是成功的。
&& apt-get install -y libssh2-1-dev libssh2-1 \
&& pecl install ssh2 \
&& docker-php-ext-enable ssh2
发布于 2020-07-08 21:11:53
对于高山和php >7
RUN apk add --no-cache libssh2-dev autoconf build-base
RUN pecl install ssh2-1.2 && docker-php-ext-enable ssh2
发布于 2019-03-21 01:21:06
除了PHP6之外,pecl选项似乎不适用于任何更新的版本。为了安装它,我必须从源代码构建。在php:7.1.27-cli
中,我可以使用这些命令来设置它-- php:7.1.27-cli
镜像是基于debian stretch的:
# install dependencies
RUN apt-get update && apt-get install -y \
ssh \
libssh2-1 \
libssh2-1-dev \
wget \
libssl-dev \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Install ssh2 extension
RUN wget -O libssh2.tar.gz https://www.libssh2.org/download/libssh2-1.8.1.tar.gz \
&& wget -O ssh2.tgz https://pecl.php.net/get/ssh2-1.1.2.tgz \
&& mkdir libssh2 && tar vxzf libssh2.tar.gz -C libssh2 --strip-components 1 \
&& mkdir ssh2 && tar vxzf ssh2.tgz -C ssh2 --strip-components 1 \
&& cd libssh2 && ./configure \
&& make && make install \
&& cd ../ssh2 && phpize && ./configure --with-ssh2 \
&& make && make install \
&& echo "extension=ssh2.so" >> /usr/local/etc/php/conf.d/ssh2.ini \
&& cd ../ && rm -rf libssh2.tar.gz ssh2.tgz ssh2 libssh2
https://stackoverflow.com/questions/51997222
复制相似问题