2016-05-30 23 views
15

resolve an issueするためには、私は今README of the php imageで指摘したようにdocker-php-ext-installでphpの拡張機能をインストールするには?

docker-php-ext-install 

を経由して、MySQLのPDOをインストールしようとしています。

しかし、私の呼び出しは述べ失敗:

Libraries have been installed in: 
    /usr/src/php/ext/mysqli/modules 

If you ever happen to want to link against installed libraries 
in a given directory, LIBDIR, you must either use libtool, and 
specify the full pathname of the library, or use the `-LLIBDIR' 
flag during linking and do at least one of the following: 
    - add LIBDIR to the `LD_LIBRARY_PATH' environment variable 
    during execution 
    - add LIBDIR to the `LD_RUN_PATH' environment variable 
    during linking 
    - use the `-Wl,--rpath -Wl,LIBDIR' linker flag 
    - have your system administrator add LIBDIR to `/etc/ld.so.conf' 

See any operating system documentation about shared libraries for 
more information, such as the ld(1) and ld.so(8) manual pages. 
---------------------------------------------------------------------- 

Build complete. 
Don't forget to run 'make test'. 

Installing shared extensions:  /usr/local/lib/php/extensions/no-debug-non-zts-20131226/ 
Installing header files:   /usr/local/include/php/ 
find . -name \*.gcno -o -name \*.gcda | xargs rm -f 
find . -name \*.lo -o -name \*.o | xargs rm -f 
find . -name \*.la -o -name \*.a | xargs rm -f 
find . -name \*.so | xargs rm -f 
find . -name .libs -a -type d|xargs rm -rf 
rm -f libphp.la  modules/* libs/* 
+ cd /usr/src/php/ext/mysqlnd 
+ phpize 
Cannot find config.m4. 
Make sure that you run '/usr/local/bin/phpize' in the top level source directory of the module 

ERROR: Service 'phlaconapp' failed to build: The command '/bin/sh -c docker-php-ext-install mysqli mysqlnd pdo pdo_mysql zip' returned a non-zero code: 1 

をこれは私のdocker-compose.ymlです:

phlaconapp: 
    hostname: phaclonapp 
    dockerfile: Dockerfile 
    build: ./ 
    ports: 
     - "1080:80" 
     - "1043:433" 
    environment: 
     TERM: xterm-color 
     ENVIRONMENT: dev 
    volumes: 
     - ./:/var/www/html/ 
    links: 
     - mysql 
mysql: 
    image: mysql:5.6 
    volumes: 
     - ./docker/mysql.d:/etc/mysql/conf.d 
    ports: ["3306:3306"] 
    environment: 
     MYSQL_ROOT_PASSWORD: 'root' 

これは私のDockerfileです:

FROM php:5.6-apache 

RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ 
    php -r "if (hash_file('SHA384', 'composer-setup.php') === '070854512ef404f16bac87071a6db9fd9721da1684cd4589b1196c3faf71b9a2682e2311b36a5079825e155ac7ce150d') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" && \ 
    php composer-setup.php && \ 
    php -r "unlink('composer-setup.php');" 


RUN apt-get update && \ 
    apt-get install vim git -y 
RUN docker-php-ext-install mysqli mysqlnd pdo pdo_mysql zip 

RUN cd/&& \ 
    git clone --depth=1 git://github.com/phalcon/cphalcon.git && \ 
    cd cphalcon/build && \ 
    ./install 

RUN echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/phalcon.ini 
RUN a2enmod rewrite 

docker-compose buildが終了しません実行しています。

+1

がhttps://github.com/docker-library/php/issues/233にフォローアップこのため – k0pernikus

答えて

7

私はまったく同じ問題を抱えていました。私はコンテナを開始し、このコンテナにext-installコマンドをタイプしました。すべての依存関係を見つけたら、ドッカーファイルに書きました。

Exmample:libmcryptを-devのは、あなたができる前に、ドッカー-PHP-EXT-インストールmcryptの

必要とされているdependencieがあり

RUN apt-get update && apt-get install -y \ 
libmcrypt-dev \ 
&& docker-php-ext-install -j$(nproc) mcrypt 

私は私の古いDockerfilesをチェックし、かもしれない何かを見つけましたあなたは

FROM php:5.6-apache 

RUN apt-get update && apt-get install -y \ 
     libfreetype6-dev \ 
     libjpeg62-turbo-dev \ 
     libmcrypt-dev \ 
     libpng12-dev \ 
    libicu-dev \ 
    libxml2-dev \ 
    vim \ 
     wget \ 
     unzip \ 
     git \ 
    && docker-php-ext-install -j$(nproc) iconv intl xml soap mcrypt opcache pdo pdo_mysql mysqli mbstring \ 
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ 
    && docker-php-ext-install -j$(nproc) gd 

RUN a2enmod rewrite && mkdir /composer-setup && wget https://getcomposer.org/installer -P /composer-setup && php /composer-setup/installer --install-dir=/usr/bin && rm -Rf /composer-setup && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony && chmod a+x /usr/local/bin/symfony 
# Create symlink for default conf 
RUN ln -s /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-enabled/000-default.conf && mkdir /composer-setup && wget https://getcomposer.org/installer -P /composer-setup && php /composer-setup/installer --install-dir=/usr/bin && rm -Rf /composer-setup && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony && chmod a+x /usr/local/bin/symfony 
+0

を作成し、私はドッキングウィンドウ-PHPを実行しようとしましたビルド後のDockerfileではなく、コンテナ内の-ext-installコマンド。そして、彼らはそこでうまく動作します。0.o – k0pernikus

+0

パラメータ-yは、自分の設定とは異なっています。 apt-get install -yをapt-getの代わりにインストールするvim git -y – Florian

0

phpizehttps://bugs.php.net/bug.php?id=53571)のバグしているように見えるのに役立ちます。

私はdocker-php-ext-configureに以下を追加:

/usr/local/bin # diff -u docker-php-ext-configure.bak docker-php-ext-configure 
--- docker-php-ext-configure.bak 
+++ docker-php-ext-configure 
@@ -54,5 +54,6 @@ 

set -x 
cd "$ext" 
+[[ ! -f "config.m4" && -f "config0.m4" ]] && mv config0.m4 config.m4 
phpize 
./configure "[email protected]" 
関連する問題