我有Dockerfile
这样的构建命令:
#install some base extensions
RUN apt-get install -y \
zlib1g-dev \
zip \
&& docker-php-ext-install zip
我从构建输出中收到此警告:
警告:不推荐使用捆绑的libzip,将其删除 configure:警告:某些功能(如加密和bzip2)不可用 configure:警告:使用系统库和--with-libzip 推荐使用。
在没有这些警告的情况下安装zip扩展的正确方法是什么?
我的完整Dockerfile如下所示:
FROM php:7.2-apache
RUN apt-get clean
RUN apt-get update
#install some basic tools
RUN apt-get install -y \
git \
tree \
vim \
wget \
subversion
#install some base extensions
RUN apt-get install -y \
zlib1g-dev \
zip \
&& docker-php-ext-install zip
#setup composer
RUN curl -sS https://getcomposer.org/installer | php \
&& mv composer.phar /usr/local/bin/ \
&& ln -s /usr/local/bin/composer.phar /usr/local/bin/composer
WORKDIR /var/www/
答案 0 :(得分:31)
它looks like PHP不再捆绑libzip。你需要install it。您安装zlib1g-dev
,而是安装libzip-dev
。这会将zlib1g-dev
安装为依赖项,并允许configure
脚本检测到libzip
已安装。
然后你需要
docker-php-ext-configure zip --with-libzip
在使用
执行安装之前docker-php-ext-install zip
如最后一个警告所示。
简而言之:将Dockerfile的相关部分更改为
#install some base extensions
RUN apt-get install -y \
libzip-dev \
zip \
&& docker-php-ext-configure zip --with-libzip \
&& docker-php-ext-install zip
我已经验证了这是按照预期构建的。
答案 1 :(得分:3)
要构建php / apache容器,您只需先安装 libzip-dev 库。至少使用docker image php:7.3-apache
FROM php:7.3-apache
MAINTAINER XXX
RUN apt-get update
RUN apt-get install -y libzip-dev
RUN docker-php-ext-install zip
希望有帮助
答案 2 :(得分:3)
如果您使用的是7.4,这对我有用:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class day extends Model
{
protected $fillable = [
'day',
];
public function breakfast_menu()
{
return $this->hasOne('App\breakfast_menu', 'day_id');
}
}
答案 3 :(得分:2)
我使用php:7.2-fpm-alpine
FROM php:7.2-fpm-alpine
WORKDIR /var/www
RUN apk add --no-cache zip libzip-dev
RUN docker-php-ext-configure zip --with-libzip
RUN docker-php-ext-install zip
RUN docker-php-ext-install pdo pdo_mysql
答案 4 :(得分:0)
这对我有用:
RUN docker-php-ext-configure zip --with-libzip