使用Docker Compose添加PHP扩展
我正在尝试在docker中设置一个本地开发环境,包括nginx和php。我从一开始就有一个正常工作的服务器。我的项目需要安装几个PHP扩展,但我很难弄清楚如何调整此设置以包含它们 该图像的文档说明将其放在dockerfile中,我已经这样做了。但是,这给了我一个错误: 错误:合成文件无效,因为: 服务php既有一个映像,也有一个备用Dockerfile。服务可以构建为映像,也可以使用现有映像,但不能同时使用两者 我的使用Docker Compose添加PHP扩展,docker,docker-compose,docker-for-windows,Docker,Docker Compose,Docker For Windows,我正在尝试在docker中设置一个本地开发环境,包括nginx和php。我从一开始就有一个正常工作的服务器。我的项目需要安装几个PHP扩展,但我很难弄清楚如何调整此设置以包含它们 该图像的文档说明将其放在dockerfile中,我已经这样做了。但是,这给了我一个错误: 错误:合成文件无效,因为: 服务php既有一个映像,也有一个备用Dockerfile。服务可以构建为映像,也可以使用现有映像,但不能同时使用两者 我的docker compose.yml: web: image: nginx:
docker compose.yml
:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./code:/code
- ./site.conf:/etc/nginx/conf.d/site.conf
links:
- php
php:
dockerfile: extensions
image: php:7-fpm
volumes:
- ./code:/code
我的扩展名
文件
RUN docker-php-ext-install zip
RUN docker-php-ext-install gd
RUN docker-php-ext-enable zip
RUN docker-php-ext-enable gd
很明显我做错了。有没有办法将扩展安装到此映像中,或者我需要创建自己的扩展?我正在使用Docker for Windows。在您的
扩展名文件中,将此添加到顶部:
来自php:7-fpm
然后从docker compose文件中删除图像:php:7-fpm
这是我的代码。它已经在我的服务器上运行了
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./code:/code
- ./site.conf:/etc/nginx/conf.d/site.conf
links:
- php
php:
#remove this
#dockerfile: extensions
#image: php:7-fpm
#change with build ...
build: './docker/php'
volumes:
- ./code:/code
然后,将Dockerfile
文件添加到docker/php
文件夹:
FROM php:7-fpm
RUN apt-get update && apt-get install -y \
libicu-dev \
&& docker-php-ext-install \
intl \
&& docker-php-ext-enable \
intl
现在,您可以在docker compose中运行Dockerfile。您必须自己构建映像,如果您在compose文件中使用映像:
,它永远不会读取docker文件。我只是避免使用docker文件,只需修改我的docker compose文件