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

1

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

Я пытаюсь создать образ для работы над проектом 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.
  • 0
    Я не уверен с докером, но обычно помещаю php.ini в web/ папку, чтобы перезаписать php.ini по умолчанию. В вашем случае вы проверяли расширение zip? Попробуйте запустить php -m | grep zip чтобы проверить, что у вас установлен zip.
  • 0
    Привет, к вашему сведению: каждая строка в файле Docker будет новым изображением. Если у вас есть несколько & amp; # 39; запустите & # 39; Команды, которые в значительной степени делают то же самое, вы можете просто выполнить & amp; & amp; amp; & amp; & amp; # 39; и используйте & amp; # 39; \ & amp; # 39; для новых строк, напр. RUN curl -sS getcomposer.org/installer | php && mv composer.phar / usr / local / bin / composer
Теги:
docker
dockerfile

2 ответа

1
Лучший ответ

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

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

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

Надеюсь, что эта помощь

0

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

RUN docker-php-ext-install zip

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню