作者:长风剑客2502852893 | 来源:互联网 | 2023-02-11 13:21
1> Albert221..:
新解决方案
经过4个月的深入查看文档后,花了不少数小时花在研究陌生人的Dockerfiles上,经过那么多不眠之夜......最后是正确答案!
您所要做的就是为特定服务创建新的Dockerfile,在这种情况下php
:
php/Dockerfile
FROM php:7.1.1-fpm
RUN apt -yqq update
RUN apt -yqq install libxml2-dev
RUN docker-php-ext-install pdo_mysql
RUN docker-php-ext-install xml
然后在您的文件中链接到它docker-compose.yml
,就像这样:
services:
// other services
php:
build: ./php
ports:
- "9000:9000"
volumes:
- .:/dogopic
links:
- mariadb
请查看build
参数 - 它指向新Dockerfile所在的目录.
老解决方案
我绕过这个问题.我已经发现我仍然可以docker-php-ext-install
使用以下命令运行此脚本:
docker-compose exec docker-php-ext-install pdo pdo_mysql mbstring
而且由于方便,我创建了这个简单的批处理文件,以简化组合容器只需一个命令: ./docker.bat
@ECHO OFF
docker-compose build
docker-compose exec php docker-php-ext-install pdo pdo_mysql mbstring
docker-compose up
2> Alex Karshin..:
docker-php-ext-install
不是一些本机docker功能.如果您仔细阅读php docker hub页面,您会看到,它只是一个脚本,可以简化安装过程:
我们提供帮助程序脚本docker-php-ext-configure
,docker-php-ext-install
以及docker-php-ext-enable
更轻松地安装PHP扩展.
如果您的图像基于ubuntu
,而不是php
,您可能会发现docker-php-ext-install
,例如,在github上.
但既然你Dockerfile
是FROM ubuntu
,我建议你安装PHP apt-get
:
FROM ubuntu:16.04
RUN apt -yqq update
RUN apt -yqq install nginx iputils-ping
RUN apt-get install -y php php-fpm pdo-mysql php-mbstring
别忘了设置nginx
使用php-fpm.要做到这一点,我个人使用一个start.sh
脚本,它开始php-fpm
和nginx
容器:
php-fpm -D
nginx -g "daemon off;"
在Dockerfile
我运行脚本.不是nginx
:
COPY start.sh /tmp/start.sh
CMD ["/tmp/start.sh"]