Я борюсь с Докером.
Я пытаюсь создать образ для работы над проектом 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.
Вы можете добавить пользовательский 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
Вы можете найти различные подходы и различные образцы в сети.
Надеюсь это поможет
Рядом с пропавшим php.ini
файл, который вы также должны установить zip, чтобы вы могли скачать с dist, т.е.
RUN docker-php-ext-install zip
Который установит и включит расширение PHP zip, которое запрашивается в вашем сообщении об ошибке.