我正在尝试在计算机(Mac)上设置docker,我无法编译PDO_mysql扩展。
我的docker-compose文件如下所示
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
以上文件工作正常,但如果在第3个最后一个文件中,如果我添加 mysqlnd 我无法构建我的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
我做错了什么?
请指教。
由于
答案 0 :(得分:2)
我刚丢弃了 tutum 图片并使用了 Quay.io 图片
image: quay.io/ignited/php-nginx-fpm:5.6.30-latest
这一行为我创造了奇迹。 我得到了php-fpm,其中包含通常预先安装在托管服务器上的所有必需库。
我希望它可以帮助任何浪费了几天的人试图找出答案。
答案 1 :(得分:0)
我建议您在Dockerfile中添加以下行:
RUN apt-get install -y libbz2-dev \
&& docker-php-ext-install bz2
答案 2 :(得分:0)
我认为在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上面的存储库中对此进行了描述。
有任何问题,请告诉我。