Docker撰写 – 安装带有MySQLi,MySQLnd和PDO扩展的php-fpm

我想在计算机(Mac)上设置泊坞窗,我无法编译PDO_mysql扩展。

我的docker组成文件看起来像下面

version: '2' services: nginx: image: tutum/nginx ports: - "80:80" links: - phpfpm volumes: - ./nginx/conf:/etc/nginx/sites-available/ - ./nginx/conf:/etc/nginx/sites-enabled/ - ./logs/nginx-error.log:/var/log/nginx/error.log - ./logs/nginx-access.log:/var/log/nginx/access.log phpfpm: build: ./php ports: - "9000:9000" volumes: - ./Sites:/usr/share/nginx/html mysql: image: mysql environment: MYSQL_ROOT_PASSWORD: admin ports: - "3306:3306" 

我的Dockfile如下所示:

 FROM php:5.6-fpm RUN apt-get update && apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ libpng12-dev \ && docker-php-ext-install -j$(nproc) iconv mcrypt mysqli \ && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ && docker-php-ext-install -j$(nproc) gd 

上述文件工作正常,但如果在第三最后文件,如果我添加mysqlnd我不能build立我的PHP。

  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 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 'phpfpm' failed to build: The command '/bin/sh -c apt-get update && apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libpng12-dev && docker-php-ext-install -j$(nproc) iconv mcrypt mysqli mysqlnd && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && docker-php-ext-install -j$(nproc) gd' returned a non-zero code: 1 

我究竟做错了什么?

请指教。

谢谢

我build议你在Dockerfile中添加以下几行:

 RUN apt-get install -y libbz2-dev \ && docker-php-ext-install bz2 

我想在phpfpm容器上使用mysql,你只需要将这个mysql容器链接到它们。

 phpfpm: build: ./php links: - mysql ports: - "9000:9000" volumes: - ./Sites:/usr/share/nginx/html 

如果你需要工作的例子,请在github上查看我的docker-compose。

https://github.com/Arkowsky/docker_symfony/blob/master/docker-compose.yml

如果你决定在mac和docker上使用symfony,你可能会遇到性能问题 – 我在github的上述仓库中描述过这个问题。

有任何问题,请告诉我。

我只是丢弃了图腾图片,并使用了Quay.io图片

image: quay.io/ignited/php-nginx-fpm:5.6.30-latest

这一行对我来说是奇迹。 我得到了php-fpm所有通常预装在托pipe服务器上所需的库。

我希望这能帮助那些浪费了几天时间的人试图找出答案。