Докер и Симфония

Я борюсь с Докером.

Я пытаюсь создать образ для работы над проектом 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

Но когда я пытаюсь сделать обновление композитора, у меня есть некоторые ошибки:

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.

Как я могу создать php.ini в Dockerfile?

Я также думаю, что у меня есть проблема с разрешения.
Когда я пытаюсь в web / app_dev.php у меня есть это сообщение:

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

1

Решение

Вы можете добавить пользовательский php.ini Конфигурация, указав его в файле Docker,
Как пример, вы можете взглянуть на это репо для этого примера:

dokerfile

# install a few more PHP extensions
RUN apt-get update && apt-get install -y php5-imagick php5-gd php5-mongo php5-curl php5-mcrypt php5-intl

# copy a custom config file from the directory where this Dockerfile resides to the image
COPY php.ini /etc/php5/fpm/php.ini

Вы можете найти различные подходы и различные образцы в сети.

Надеюсь это поможет

1

Другие решения

Рядом с пропавшим php.ini файл, который вы также должны установить zip, чтобы вы могли скачать с dist, т.е.

RUN docker-php-ext-install zip

Который установит и включит расширение PHP zip, которое запрашивается в вашем сообщении об ошибке.

0

По вопросам рекламы [email protected]