ПРИМЕЧАНИЕ. Я больше не использую эту среду, поэтому нет возможности проверить ответы и принять их. Прости.Получить композитор (менеджер зависимостей php) для запуска сборки образа docker
TL; DR Можете ли вы указать мне на пример грузчиком изображения, который использует композитор для обработки зависимостей PHP?
Все мои вопросы в этой почте относительно композитору инструмента PHP зависимостьнедокер-композитор правопреемником рис.
Я пытаюсь создать собственное изображение докеров для запуска wordpress installed as a composer dependency.
Я работаю над созданием изображения докеров с использованием изображения php-docker в качестве базы, и что мне нужно сделать, это установить композитор и запустить команду обновления композитора либо на время создания изображения, либо на время сборки изображения (не знаю если оба будут в порядке).
Я могу запустить все как можно лучше, выполнив все шаги (запустив изображение докеров, вникая в него, копируя и вставляя каждый шаг).
Но когда я делаю все эти шаги на Dockerfile, я не получаю композитор для записи файлов.
Я пытался получить минимальный неудачный пример в течение некоторого времени, но тот, который у меня есть, совсем не минимальный.
Мой тест состоит из следующих (ссылки на соответствующие операции РЕПО GitHub ниже)
Dockerfile
NFORMATION ~~~#
# based on
# https://hub.docker.com/r/richarvey/nginx-php-fpm/
# and
# https://hub.docker.com/_/wordpress/
FROM php:7.0.2-apache
MAINTAINER Miquel Adell <[email protected]>
ENV WORDPRESS_VERSION 4.4.1
#~~~ DEPENDENCIES ~~~#
# Add PHP repository to apt source
RUN apt-get update \
&& apt-get install -y \
libpng12-dev \
libjpeg-dev \
curl \
sed \
zlib1g-dev \
&& docker-php-ext-install \
zip \
mysqli
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
#~~~ DIRS ~~~#
WORKDIR /var/www/html/
#~~~ WORDPRESS ~~~#
COPY files/composer.json composer.json
ONBUILD RUN composer update
докер-compose.yml
wordpress:
image: miqueladell/composed_wordpress_test
links:
- wordpress_db:mysql
environment:
- VIRTUAL_HOST=miqueladell.dev
- WORDPRESS_DB_NAME=wordpress
ports:
- "80"
wordpress_db:
image: miqueladell/mariadb-utf8mb4
environment:
- MYSQL_ROOT_PASSWORD=password
Мои следующим образом:
Построить изображение выполнения этой команды в каталоге, содержащем Dockerfile вставили выше
docker build -t miqueladell/composed_wordpress_test .
(нет ошибок в журнале)
Используйте этот образ для создания контейнера, выполнив следующую команду в каталоге, содержащем компоновку докеров.YML вставили выше
docker-compose up
(нет ошибок в журнале)
Баша в бегущем контейнер, чтобы иметь возможность увидеть, если файлы есть
docker exec -i -t miqueladellv2_wordpress_1 bash
Ls из/вара/WWW/HTML
[email protected]:/var/www/html# ls -al total 12 drwxr-xr-x 2 www-data www-data 4096 Jan 19 10:50 . drwxr-xr-x 5 root root 4096 Jan 19 10:50 .. -rw-r--r-- 1 root root 138 Jan 15 09:18 composer.json
На шаге 4 вы можете видеть, что обновление композитора, похоже, не работает вообще.
Я попытался использовать оба
RUN composer update
и
ONBUILD RUN composer update
на Dockerfile с теми же результатами.
Если я вернусь к предыдущему шагу 4 теста, и я вручную запустить обновления композитора на Баш строке контейнера Docker я получаю:
[email protected]:/var/www/html# composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing johnpbloch/wordpress-core-installer (0.2.1)
Downloading: 100%
- Installing johnpbloch/wordpress (4.4.1)
Downloading: 100%
Writing lock file
Generating autoload files
[email protected]:/var/www/html# ls -al
total 24
drwxr-xr-x 4 www-data www-data 4096 Jan 19 11:12 .
drwxr-xr-x 6 root root 4096 Jan 19 11:12 ..
-rw-r--r-- 1 root root 138 Jan 15 09:18 composer.json
-rw-r--r-- 1 root root 3718 Jan 19 11:12 composer.lock
drwxr-xr-x 4 root root 4096 Jan 19 11:12 vendor
drwxr-xr-x 5 root root 4096 Jan 19 11:12 wordpress
[email protected]:/var/www/html#
которым именно выход я ожидал на этапе 4
Я хотел бы получить совет. Благодарю.
GitHub ссылки на полные файлы
Удаление ONBUILD из строки ONBUILD. пример ... так что мой предыдущий вопрос неправильный, но проблема решена. –