PHP zip 확장자를 사용한 도커 이미지 빌드에 "bundled libzip is decommended" 경고가 표시됨
나는 가지고 있다Dockerfile
다음과 같은 빌드 명령을 사용합니다.
#install some base extensions
RUN apt-get install -y \
zlib1g-dev \
zip \
&& docker-php-ext-install zip
빌드 출력에서 다음 경고를 받습니다.
경고: 번들 libzip 사용은 더 이상 사용되지 않으므로 제거됩니다.
구성: 경고: 암호화 및 bzip2와 같은 일부 기능은 사용할 수 없습니다.
구성: 경고: 시스템 라이브러리를 사용하고 --with-libzip을 권장합니다.
이러한 경고 없이 Zip Extension을 설치하는 올바른 방법은 무엇입니까?
Docker 파일 전체는 다음과 같습니다.
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/
PHP는 더 이상 libzip을 번들하지 않는 것 같습니다.인스톨 할 필요가 있습니다.인스톨을 실시합니다.zlib1g-dev
를 인스톨 합니다.libzip-dev
인스톨 됩니다.zlib1g-dev
의존관계로서, 또한configure
검출하기 위한 스크립트libzip
가 인스톨 됩니다.
PHP < 7.3 의 경우는, 다음의 조작을 실시할 필요가 있습니다.
docker-php-ext-configure zip --with-libzip
를 사용하여 설치를 수행하기 전에
docker-php-ext-install zip
마지막 경고가 나타내듯이
요약: 도커 파일의 관련 부분을 다음과 같이 변경합니다.
PHP < 7.3의 경우
#install some base extensions
RUN apt-get install -y \
libzip-dev \
zip \
&& docker-php-ext-configure zip --with-libzip \
&& docker-php-ext-install zip
PHP > = 7.3의 경우
#install some base extensions
RUN apt-get install -y \
libzip-dev \
zip \
&& docker-php-ext-install zip
이것은 예상대로 빌드 되는 것을 확인했습니다.
Docker PHP Base 이미지를 사용하지 않는 경우 훨씬 더 쉬워질 수 있습니다.예를 들어 Alphine의 경우 다음 Dockerfile은 zip 확장자가 설치된 PHP 7을 제공합니다.
FROM alpine:latest
RUN apk update && apk upgrade
RUN apk add php7 php7-zip composer
7.4를 사용하고 있는 경우는, 다음과 같이 대응했습니다.
FROM php:7.4-fpm-alpine
RUN apk add --no-cache zip libzip-dev
RUN docker-php-ext-configure zip
RUN docker-php-ext-install zip
RUN docker-php-ext-install pdo pdo_mysql
도커에 PHP 컨테이너를 구축했습니다.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
내선번호에 필요한 건libzip-dev
(빌드 타임뿐만 아니라) 런타임에 패키지를 만듭니다.제가 원래 추가한 것은apk add libzip-dev
함께 설치한 가상 패키지로 이동합니다.gcc make postgresql-dev
이미지를 작게 유지하기 위해 나중에 삭제했습니다.
이 방법은 다음과 같습니다.
RUN apk add openjdk11-jre-headless libzip-dev \ # libzip-dev not part of virtual package
&& apk add --no-cache --virtual \
.build-deps autoconf g++ make postgresql-dev \
&& docker-php-ext-configure zip \
&& docker-php-ext-install zip \
&& docker-php-ext-install pdo_pgsql bcmath \
&& pecl install redis-5.3.1 \
&& pecl install xdebug-beta \
&& docker-php-ext-enable redis opcache xdebug \
&& apk add libpq ca-certificates curl \
&& apk del .build-deps \
&& rm -rf /tmp/* \
&& rm -rf /var/cache/apk/*
이것은 동작하지 않습니다.
RUN apk add openjdk11-jre-headless \
&& apk add --no-cache --virtual \
.build-deps autoconf g++ make postgresql-dev libzip-dev \ # libzip-dev part of virtual package
&& docker-php-ext-configure zip \
&& docker-php-ext-install zip \
&& docker-php-ext-install pdo_pgsql bcmath \
&& pecl install redis-5.3.1 \
&& pecl install xdebug-beta \
&& docker-php-ext-enable redis opcache xdebug \
&& apk add libpq ca-certificates curl \
&& apk del .build-deps \
&& rm -rf /tmp/* \
&& rm -rf /var/cache/apk/*
php/apache 컨테이너를 구축하려면 먼저 libzip-dev 라이브러리를 설치해야 합니다.적어도 도커 이미지 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
도움이 되었으면 좋겠다
php:7.4-fpm-alpine을 사용하여 PHP 도커 파일을 만들었습니다.
FROM php:7.4-fpm-alpine
# Apk install
RUN apk --no-cache update && apk --no-cache add bash git
RUN apk add --no-cache zip libzip-dev
RUN docker-php-ext-configure zip
RUN docker-php-ext-install zip
RUN docker-php-ext-install pdo pdo_mysql
# Install composer
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && php composer-setup.php && php -r "unlink('composer-setup.php');" && mv composer.phar /usr/local/bin/composer
# Symfony CLI
RUN wget https://get.symfony.com/cli/installer -O - | bash && mv /root/.symfony/bin/symfony /usr/local/bin/symfony
WORKDIR /var/www/html
이건 내게 효과가 있었어:
RUN docker-php-ext-configure zip --with-libzip
언급URL : https://stackoverflow.com/questions/48700453/docker-image-build-with-php-zip-extension-shows-bundled-libzip-is-deprecated-w
'programing' 카테고리의 다른 글
:class가 vue에서 계산된 속성을 호출하지 않습니다(계산된 속성이 호출되지 않음). (0) | 2023.02.04 |
---|---|
Vue Async 구성 요소를 사용하려면 어떻게 해야 합니까? (0) | 2023.02.04 |
여러 개의 독립된 mariadb 사용: 여러 개의 컨테이너 또는 하나의 컨테이너?격리 대 효율성? (0) | 2023.02.04 |
SQL - SELECT의 이상한 문제 (0) | 2023.02.04 |
Node.js 네이티브 Promise입니다.병렬 또는 순차적으로 모든 처리를 수행합니까? (0) | 2023.02.04 |