Теперь я могу перейти на страницу веб-установки.Итак, для всех заинтересованных ...
# 1 - проблема источника / клона
Я понял, что все, что мне нужно, это compose.json и индекс .файлы php , которые я могу получить с помощью jsdeliver в ADD
инструкциях dockerfile , за которыми следует рекурсивный chown / chmod для новых файлов в папках php и apache /var/www/html
.
ПРИМЕЧАНИЕ: Это на самом деле не решает проблему получения исходного кода из github, но достаточно для моих реальных / непосредственных потребностей в этой конкретной базе кода / проекте.
# 2 - проблема с тегами
Я решил проблему с тегами с помощью ...
docker-compose.yml
version: "3.2"
services:
php:
build:
context: './php/'
args:
PHP_VERSION: ${PHP_VERSION:?err}
TAO_CODE_TAG: ${TAO_CODE_TAG:?err} # <-- IMPORTANT
php / Dockerfile
FROM composer/composer as Composed
ARG TAO_CODE_TAG # <-- IMPORTANT
RUN mkdir /build && cd /build
WORKDIR /build
ADD https://cdn.jsdelivr.net/gh/oat-sa/package-tao@${TAO_CODE_TAG}/composer.json /build/composer.json # <-- IMPORTANT
RUN composer install --ignore-platform-reqs --no-scripts --no-suggest --no-dev
# ...continues
и т. Д.
В настоящее время я решаю проблему установки кода / композитора, дублируя многоэтапную сборку в образе, производном от php и apacheконтейнеры, как показано в строках выше, затем ...
php / Dockerfile
# continued...
ARG PHP_VERSION
FROM php:${PHP_VERSION:+${PHP_VERSION}-}fpm-alpine
RUN apk update \
# ...etc.
# Gather composed packages from stage above
COPY --from=Composed /build /var/www/html/
# ...etc
К сожалению,это повторяется как для экземпляров php, так и для apache (требуется, чтобы код запекался в обоих случаях). Я все еще исследую способ создания общего ресурса только для источника, который был бы доступен и отображен через общий ресурс (скорее всего).