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服务器上所需的库。
我希望这能帮助那些浪费了几天时间的人试图找出答案。
- 如何从symfony ymlconfiguration文件中获取docker的envvariables
- 错误:在文件'./docker-compose.yml'中,服务'build'必须是映射而不是string
- 什么时候Docker镜像和它的仓库有不同的名字?
- docker-registry v2.2.0 S3configuration没有被覆盖
- Windows数据持久性的Docker – 主机映射与数据卷
- Django的docker容器无法连接到MySQL容器,错误“无法连接到'db'(111)上的MySQL服务器”)
- 是否有可能连接ipc namespeces与docker撰写
- 为什么docker从docker文件构build镜像会在不正确的构build出口时创build容器?
- docker“jenkins”形象不能访问互联网