wordpress docker

В офф конфиге докера по вордпрессу есть вот такой пункт:

RUN set -ex; \
    curl -o wordpress.tar.gz -fSL "https://wordpress.org/wordpress-${WORDPRESS_VERSION}.tar.gz"; \
    echo "$WORDPRESS_SHA1 *wordpress.tar.gz" | sha1sum -c -; \
# upstream tarballs include ./wordpress/ so this gives us /usr/src/wordpress
    tar -xzf wordpress.tar.gz -C /usr/src/; \
    rm wordpress.tar.gz; \
    chown -R www-data:www-data /usr/src/wordpress

Может мне кто нибудь объяснить, зачем он качает вордпресс в ту папку? Для чего это вообще?


Ответы (1 шт):

Автор решения: aleksandr barakin

зачем он качает вордпресс в ту папку?

согласно fhs каталог /usr/src — вполне подходящее место для расположения тех исходных текстов, которые используются «for reference purpose» («чтобы на них ссылаться»). собственно, именно так содержимое /usr/src/wordpress в дальнейшем и используется (см. далее).

Для чего это вообще?

при запуске контейнера из этого образа выполняется скрипт, указанный как «точка входа»:

ENTRYPOINT ["docker-entrypoint.sh"]

при первом запуске скрипт не обнаружит в текущем каталоге файла index.php:

if [ ! -e index.php ] && [ ! -e wp-includes/version.php ]; then

и скопирует содержимое каталога /usr/src/wordpress в текущий:

tar "${sourceTarArgs[@]}" . | tar "${targetTarArgs[@]}"

вот это скопированное содержимое уже и будет использоваться http-сервером (также установленном внутри образа) для отображения сайта. это именно та цель, для которой образ и создаётся.

зачем нужно копирование? в частности для того, чтобы текущий каталог можно было примонтировать из хост-системы внутрь образа и при первом же запуске контейнера получить в этом каталоге работоспособный docroot сайта, который будет сохраняться и после пересоздания контейнера.

→ Ссылка