Php Docker和symfony

Php Docker和symfony,php,symfony,docker,dockerfile,Php,Symfony,Docker,Dockerfile,我在和Docker搏斗 我正在尝试创建一个图像来处理symfony项目,同时学习Docker。 这是我的Dockerfile: FROM php:7-apache LABEL Description = "This image is used to start Symfony3 project" ENV DIRPATH /var/www/html # apt-get command RUN apt-get update && apt-get install -y \

我在和Docker搏斗

我正在尝试创建一个图像来处理symfony项目,同时学习Docker。 这是我的Dockerfile:

FROM php:7-apache

LABEL Description = "This image is used to start Symfony3 project"

ENV DIRPATH /var/www/html

# apt-get command
RUN apt-get update && apt-get install -y \
    vim \
    git \
 && apt-get clean

# Install Composer
RUN curl -sS https://getcomposer.org/installer | php
RUN mv composer.phar /usr/local/bin/composer

# Install the Symfony Installer
RUN curl -LsS http://symfony.com/installer -o /usr/local/bin/symfony
RUN chmod a+x /usr/local/bin/symfony
我使用以下命令构建图像:

docker build -t symfony .
很好用!酷

我正在创建一个包含以下内容的容器:

docker run --name symfony -d -v "$PWD":/var/www/html -p 80:80 symfony
docker exec -ti symfony bash
效果也很好。web服务器正在正常端口上运行

我可以带着以下物品进入我的容器:

docker run --name symfony -d -v "$PWD":/var/www/html -p 80:80 symfony
docker exec -ti symfony bash
但当我尝试更新composer时,我有一些错误:

Failed to download symfony/symfony from dist: Could not decompress the archive, enable the PHP zip extension.
A php.ini file does not exist. You will have to create one.
如何在Dockerfile中创建php.ini

我还认为我在许可方面有问题。 当我尝试访问web/app_dev.php时,我收到以下消息:

You are not allowed to access this file. Check app_dev.php for more information.

您可以添加一个自定义
php.ini
配置,在dockerfile中指定它, 例如,您可以查看以下示例:

道夫

你可以在网上找到各种方法和各种样品


希望此帮助

在缺少的
php.ini
文件旁边,您也应该安装zip,以便从dist下载,即

RUN docker-php-ext-install zip

它将安装并启用错误消息中请求的PHP zip扩展。

我不能确定docker是否正确,但通常会将
PHP.ini
放在
web/
文件夹中以覆盖默认的PHP.ini。在你的情况下,你检查过邮政分机吗?试着运行php-m | grep zip检查你是否安装了zip。嗨,仅供参考:docker文件中的每一行都将是一个新图像。如果您有多个'跑,#39; 命令的作用基本相同,您只需执行'&;amp&;amp' 及使用,#39;\' 对于换行符,例如运行curl-sS | php&&mv composer.phar/usr/local/bin/composer