Feature/rebuild for better caching ()

* Rebuilding for better caching

* Rebuilding for better caching. Squash this commit.

* Paths to dockerfiles changed.

* Rebuilding for better caching. Squash this commit.

* Rebuilding for better caching. Squash this commit.

* Refactoring

* Refactoring

* fixing the screaming about duplicates in apt sources.

* Vanity tagging

* Vanity tagging

* Try vanity again.

* re-enable all versions and variants
This commit is contained in:
Greyscale 2021-05-29 22:54:10 +02:00 committed by GitHub
parent c292dd14e8
commit 49c06822ee
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 452 additions and 842 deletions

View file

@ -10,15 +10,24 @@ jobs:
lint:
name: Lint docker files
runs-on: ubuntu-20.04
if: "!contains(github.event.head_commit.message, 'ci skip')"
strategy:
fail-fast: false
matrix:
dockerfile:
- Dockerfile.Core
- Dockerfile.Flavours
- Dockerfile.Marshall
- Dockerfile.Node
steps:
- uses: actions/checkout@master
- uses: brpaz/hadolint-action@master
with:
dockerfile: ${{ matrix.dockerfile }}
build-marshall:
needs: [lint]
name: "Build Marshall"
needs: [ lint ]
runs-on: ubuntu-20.04
if: "!contains(github.event.head_commit.message, 'ci skip')"
steps:
- uses: actions/checkout@v1
- uses: docker/setup-qemu-action@v1
@ -45,27 +54,26 @@ jobs:
name: Build & Push
with:
context: .
file: Dockerfile.Marshall
target: marshall
platforms: linux/amd64,linux/arm64
push: true
tags: benzine/marshall:latest
tags: |
benzine/marshall:latest
build-php-core:
name: "Build PHP Core"
needs: [ lint, build-marshall ]
runs-on: ubuntu-20.04
if: "!contains(github.event.head_commit.message, 'ci skip')"
strategy:
fail-fast: false
matrix:
onbuild:
- ''
# - '-onbuild'
version:
#- "7.0"
#- "7.1"
#- "7.2"
#- "7.3"
#- "7.4"
- "7.3"
- "7.4"
- "8.0"
env:
PHP_PACKAGES_70: git mariadb-client php7.0-apcu php7.0-bcmath php7.0-bz2 php7.0-cli php7.0-curl php7.0-gd php7.0-imap php7.0-imagick php7.0-intl php7.0-json php7.0-ldap php7.0-mbstring php7.0-mcrypt php7.0-memcache php7.0-memcached php7.0-mongodb php7.0-mysql php7.0-opcache php7.0-pgsql php7.0-phpdbg php7.0-pspell php7.0-redis php7.0-soap php7.0-sqlite php7.0-xdebug php7.0-xml php7.0-zip postgresql-client
@ -90,7 +98,70 @@ jobs:
id: build_args
with:
result-encoding: string
script: return `PHP_PACKAGES=${{ steps.vars.outputs.php_packages }}\nPHP_VERSION=${{ matrix.version }}`
script: return `PHP_PACKAGES=${{ steps.vars.outputs.php_packages }}\nPHP_VERSION=${{ matrix.version }}\nPHP_CORE_VERSION=benzine/php:core-${{ matrix.version }}`
- uses: actions/checkout@v1
- uses: docker/setup-qemu-action@v1
name: Setup QEmu
- uses: docker/setup-buildx-action@v1
name: Setup Docker Buildx
- uses: docker/login-action@v1
name: Login to Docker Hub
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_PASSWORD }}
- uses: docker/build-push-action@v2
name: Build & Push
with:
context: .
file: Dockerfile.Core
target: php-core
platforms: linux/amd64,linux/arm64
push: true
tags: |
benzine/php:core-${{ matrix.version }}
build-args: |
${{ steps.build_args.outputs.result }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache
build-php-flavours:
name: "Build PHP Flavours"
needs: [ build-php-core ]
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
variant:
- cli
- nginx
- apache
onbuild:
- ''
# - '-onbuild'
version:
#- "7.0"
#- "7.1"
#- "7.2"
- "7.3"
- "7.4"
- "8.0"
steps:
- name: Mangle Envs
id: vars
run: |
VERSION=$(echo "${{ matrix.version }}" | tr -d '.')
PACKAGE_LIST=PHP_PACKAGES_$VERSION
echo ::set-output name=php_packages::${!PACKAGE_LIST}
- name: Show mangled envs
run: |
echo "Packages to be installed:"
echo ${{ steps.vars.outputs.php_packages }}
- uses: actions/github-script@v3
name: Build Args
id: build_args
with:
result-encoding: string
script: return `PHP_PACKAGES=${{ steps.vars.outputs.php_packages }}\nPHP_VERSION=${{ matrix.version }}\nPHP_CORE_VERSION=benzine/php:core-${{ matrix.version }}`
- uses: actions/checkout@v1
- uses: docker/setup-qemu-action@v1
name: Setup QEmu
@ -108,125 +179,48 @@ jobs:
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Setup Marshall
run: |
git rev-parse --short HEAD > marshall/marshall_version
date '+%Y-%m-%d %H:%M:%S' > marshall/marshall_build_date
hostname > marshall/marshall_build_host
- uses: docker/build-push-action@v2
name: Build & Push
with:
context: .
target: php-core
file: Dockerfile.Flavours
target: php-${{ matrix.variant }}
platforms: linux/amd64,linux/arm64
push: true
tags: benzine/php:core-${{ matrix.version }}${{ matrix.onbuild }}
tags: |
benzine/php:${{ matrix.variant }}-${{ matrix.version }}${{ matrix.onbuild }}
build-args: |
${{ steps.build_args.outputs.result }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache
# build-php-flavours:
# needs: [lint, build-marshall]
# runs-on: ubuntu-20.04
# if: "!contains(github.event.head_commit.message, 'ci skip')"
# strategy:
# fail-fast: false
# matrix:
# variant:
# - cli
# - nginx
# - apache
# onbuild:
# - ''
# # - '-onbuild'
# version:
# #- "7.0"
# #- "7.1"
# #- "7.2"
# #- "7.3"
# #- "7.4"
# - "8.0"
# env:
# PHP_PACKAGES_70: git mariadb-client php7.0-apcu php7.0-bcmath php7.0-bz2 php7.0-cli php7.0-curl php7.0-gd php7.0-imap php7.0-imagick php7.0-intl php7.0-json php7.0-ldap php7.0-mbstring php7.0-mcrypt php7.0-memcache php7.0-memcached php7.0-mongodb php7.0-mysql php7.0-opcache php7.0-pgsql php7.0-phpdbg php7.0-pspell php7.0-redis php7.0-soap php7.0-sqlite php7.0-xdebug php7.0-xml php7.0-zip postgresql-client
# PHP_PACKAGES_71: git mariadb-client php7.1-apcu php7.1-bcmath php7.1-bz2 php7.1-cli php7.1-curl php7.1-gd php7.1-imap php7.1-imagick php7.1-intl php7.1-json php7.1-ldap php7.1-mbstring php7.1-mcrypt php7.1-memcache php7.1-memcached php7.1-mongodb php7.1-mysql php7.1-opcache php7.1-pgsql php7.1-phpdbg php7.1-pspell php7.1-redis php7.1-soap php7.1-sqlite php7.1-xdebug php7.1-xml php7.1-zip postgresql-client
# PHP_PACKAGES_72: git mariadb-client php7.2-apcu php7.2-bcmath php7.2-bz2 php7.2-cli php7.2-curl php7.2-gd php7.2-imap php7.2-imagick php7.2-intl php7.2-json php7.2-ldap php7.2-mbstring php7.2-memcache php7.2-memcached php7.2-mongodb php7.2-mysql php7.2-opcache php7.2-pgsql php7.2-phpdbg php7.2-pspell php7.2-redis php7.2-soap php7.2-sqlite php7.2-xdebug php7.2-xml php7.2-zip postgresql-client
# PHP_PACKAGES_73: git mariadb-client php7.3-apcu php7.3-bcmath php7.3-bz2 php7.3-cli php7.3-curl php7.3-gd php7.3-imap php7.3-imagick php7.3-intl php7.3-json php7.3-ldap php7.3-mbstring php7.3-memcache php7.3-memcached php7.3-mongodb php7.3-mysql php7.3-opcache php7.3-pgsql php7.3-phpdbg php7.3-pspell php7.3-redis php7.3-soap php7.3-sqlite php7.3-xdebug php7.3-xml php7.3-zip postgresql-client
# PHP_PACKAGES_74: git mariadb-client php7.4-apcu php7.4-bcmath php7.4-bz2 php7.4-cli php7.4-curl php7.4-gd php7.4-imap php7.4-imagick php7.4-intl php7.4-json php7.4-ldap php7.4-mbstring php7.4-memcache php7.4-mongodb php7.4-mysql php7.4-opcache php7.4-pgsql php7.4-phpdbg php7.4-pspell php7.4-redis php7.4-soap php7.4-sqlite php7.4-xdebug php7.4-xml php7.4-zip postgresql-client
# PHP_PACKAGES_80: git mariadb-client php8.0-apcu php8.0-bcmath php8.0-bz2 php8.0-cli php8.0-curl php8.0-gd php8.0-imap php8.0-imagick php8.0-intl php8.0-ldap php8.0-mbstring php8.0-memcache php8.0-mysql php8.0-opcache php8.0-pgsql php8.0-phpdbg php8.0-pspell php8.0-redis php8.0-soap php8.0-sqlite php8.0-xdebug php8.0-xml php8.0-zip postgresql-client
# steps:
# - name: Mangle Envs
# id: vars
# run: |
# VERSION=$(echo "${{ matrix.version }}" | tr -d '.')
# PACKAGE_LIST=PHP_PACKAGES_$VERSION
# echo ::set-output name=php_packages::${!PACKAGE_LIST}
# - name: Show mangled envs
# run: |
# echo "Packages to be installed:"
# echo ${{ steps.vars.outputs.php_packages }}
# - uses: actions/github-script@v3
# name: Build Args
# id: build_args
# with:
# result-encoding: string
# script: return `PHP_PACKAGES=${{ steps.vars.outputs.php_packages }}\nPHP_VERSION=${{ matrix.version }}`
# - uses: actions/checkout@v1
# - uses: docker/setup-qemu-action@v1
# name: Setup QEmu
# - uses: docker/setup-buildx-action@v1
# name: Setup Docker Buildx
# - uses: docker/login-action@v1
# name: Login to Docker Hub
# with:
# username: ${{ secrets.DOCKER_HUB_USERNAME }}
# password: ${{ secrets.DOCKER_HUB_PASSWORD }}
# - name: Cache Docker layers
# uses: actions/cache@v2
# with:
# path: /tmp/.buildx-cache
# key: ${{ runner.os }}-buildx-${{ github.sha }}
# restore-keys: |
# ${{ runner.os }}-buildx-
# - name: Setup Marshall
# run: |
# git rev-parse --short HEAD > marshall/marshall_version
# date '+%Y-%m-%d %H:%M:%S' > marshall/marshall_build_date
# hostname > marshall/marshall_build_host
# - uses: docker/build-push-action@v2
# name: Build & Push
# with:
# context: .
# target: php-${{ matrix.variant }}
# platforms: linux/amd64,linux/arm64
# push: true
# tags: benzine/php:${{ matrix.variant }}-${{ matrix.version }}${{ matrix.onbuild }}
# build-args: |
# ${{ steps.build_args.outputs.result }}
# cache-from: type=local,src=/tmp/.buildx-cache
# cache-to: type=local,dest=/tmp/.buildx-cache
#
# vanity-tags:
# needs: [ build-php ]
# runs-on: ubuntu-20.04
# env:
# latest-stable-version: "7.4"
# strategy:
# fail-fast: false
# matrix:
# variant:
# - cli
# - nginx
# - apache
# steps:
# - uses: docker/login-action@v1
# name: Login to Docker Hub
# with:
# username: ${{ secrets.DOCKER_HUB_USERNAME }}
# password: ${{ secrets.DOCKER_HUB_PASSWORD }}
# - name: Retag benzine/php:${{ matrix.variant }}-${{ env.latest-stable-version }} to benzine/php:${{ matrix.variant }}
# run: |
# docker pull benzine/php:${{ matrix.variant }}-${{ env.latest-stable-version }}
# docker tag benzine/php:${{ matrix.variant }}-${{ env.latest-stable-version }} benzine/php:${{ matrix.variant }}
# docker push benzine/php:${{ matrix.variant }}
#
vanity-tags:
name: Vanity Tags
needs: [ build-php-flavours ]
runs-on: ubuntu-20.04
env:
latest-stable-version: "7.4"
strategy:
fail-fast: false
matrix:
variant:
- cli
- nginx
- apache
steps:
- uses: docker/login-action@v1
name: Login to Docker Hub
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_PASSWORD }}
- name: Retag benzine/php:${{ matrix.variant }}-${{ env.latest-stable-version }} to benzine/php:${{ matrix.variant }}
run: |
docker pull benzine/php:${{ matrix.variant }}-${{ env.latest-stable-version }}
docker tag benzine/php:${{ matrix.variant }}-${{ env.latest-stable-version }} benzine/php:${{ matrix.variant }}
docker push benzine/php:${{ matrix.variant }}
docker tag benzine/php:${{ matrix.variant }}-${{ env.latest-stable-version }} gone/php:${{ matrix.variant }}-${{ env.latest-stable-version }}
docker push gone/php:${{ matrix.variant }}-${{ env.latest-stable-version }}
docker tag benzine/php:${{ matrix.variant }}-${{ env.latest-stable-version }} gone/php:${{ matrix.variant }}
docker push gone/php:${{ matrix.variant }}

3
.gitignore vendored
View file

@ -1,5 +1,4 @@
.idea
marshall/marshall_*
Makefile.working
Dockerfile.*
qemu-*-static*
qemu-*-static*

57
Dockerfile.Core Normal file
View file

@ -0,0 +1,57 @@
# hadolint ignore=DL3007
FROM benzine/marshall:latest AS php-core
ARG PHP_PACKAGES
COPY php-core/install-report.sh /usr/bin/install-report
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN echo "APT::Acquire::Retries \"5\";" > /etc/apt/apt.conf.d/80-retries && \
echo "Acquire::http::No-Cache=true;" > /etc/apt/apt.conf.d/80-no-cache && \
echo "Acquire::http::Pipeline-Depth=0;" > /etc/apt/apt.conf.d/80-no-pipeline && \
apt-get -qq update && \
apt-get -yqq install --no-install-recommends \
python3-software-properties \
software-properties-common \
&& \
echo "PHP packages to install:" && echo $PHP_PACKAGES && \
add-apt-repository -y ppa:ondrej/php && \
apt-get -qq update && \
apt-get -yqq install --no-install-recommends $PHP_PACKAGES &&\
apt-get remove -yqq \
software-properties-common \
python-apt-common \
python3-software-properties \
python3.5 python3.5-minimal libpython3.5-minimal \
&& \
apt-get autoremove -yqq && \
apt-get clean && \
curl https://getcomposer.org/composer-stable.phar --output /usr/local/bin/composer && \
chmod +x /usr/local/bin/composer /usr/bin/install-report && \
/usr/local/bin/composer --version && \
/usr/bin/install-report && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /var/lib/dpkg/status.old /var/cache/debconf/templates.dat /var/log/dpkg.log /var/log/lastlog /var/log/apt/*.log && \
rm -rf /usr/bin/mariabackup \
/usr/bin/mysql_embedded \
/usr/bin/mysql_find_rows \
/usr/bin/mysql_fix_extensions \
/usr/bin/mysql_waitpid \
/usr/bin/mysqlaccess \
/usr/bin/mysqlanalyze \
/usr/bin/mysqlcheck \
/usr/bin/mysqldump \
/usr/bin/mysqldumpslow \
/usr/bin/mysqlimport \
/usr/bin/mysqloptimize \
/usr/bin/mysqlrepair \
/usr/bin/mysqlreport \
/usr/bin/mysqlshow \
/usr/bin/mysqlslap \
/usr/bin/mytop
FROM php-core AS php-cli
# Install a funky cool repl.
RUN composer global require -q psy/psysh:@stable && \
ln -s /root/.composer/vendor/psy/psysh/bin/psysh /usr/local/bin/repl && \
/usr/local/bin/repl -v && \
composer clear-cache
COPY php+cli/psysh-config.php /root/.config/psysh/config.php

View file

@ -1,77 +1,5 @@
FROM ubuntu:bionic AS marshall
LABEL maintainer="Matthew Baggett <matthew@baggett.me>"
ENV DEBIAN_FRONTEND="teletype" \
TERM=xterm-256color \
COMPOSER_ALLOW_SUPERUSER=1 \
COLOUR_FAIL='\e[31m' \
COLOUR_SUCCESS='\e[32m' \
COLOUR_NONE='\e[39m' \
DEFAULT_TZ='Europe/London'
CMD ["runsvdir", "-P", "/etc/service"]
WORKDIR /app
ENV PATH="/app:/app/bin:/app/vendor/bin:${PATH}"
COPY ./marshall/ /
RUN chmod +x /installers/install && \
mv /marshall_* /etc && \
/installers/install && \
rm -rf /installers
# hadolint ignore=DL3007
FROM benzine/marshall:latest AS php-core
ARG PHP_PACKAGES
COPY php-core/install-report.sh /usr/bin/install-report
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN echo "APT::Acquire::Retries \"5\";" > /etc/apt/apt.conf.d/80-retries && \
echo "Acquire::http::No-Cache=true;" > /etc/apt/apt.conf.d/80-no-cache && \
echo "Acquire::http::Pipeline-Depth=0;" > /etc/apt/apt.conf.d/80-no-pipeline && \
apt-get -qq update && \
apt-get -yqq install --no-install-recommends \
python3-software-properties \
software-properties-common \
&& \
echo "PHP packages to install:" && echo $PHP_PACKAGES && \
add-apt-repository -y ppa:ondrej/php && \
apt-get -qq update && \
apt-get -yqq install --no-install-recommends $PHP_PACKAGES &&\
apt-get remove -yqq \
software-properties-common \
python-apt-common \
python3-software-properties \
python3.5 python3.5-minimal libpython3.5-minimal \
&& \
apt-get autoremove -yqq && \
apt-get clean && \
curl https://getcomposer.org/composer-stable.phar --output /usr/local/bin/composer && \
chmod +x /usr/local/bin/composer /usr/bin/install-report && \
/usr/local/bin/composer --version && \
/usr/bin/install-report && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /var/lib/dpkg/status.old /var/cache/debconf/templates.dat /var/log/dpkg.log /var/log/lastlog /var/log/apt/*.log && \
rm -rf /usr/bin/mariabackup \
/usr/bin/mysql_embedded \
/usr/bin/mysql_find_rows \
/usr/bin/mysql_fix_extensions \
/usr/bin/mysql_waitpid \
/usr/bin/mysqlaccess \
/usr/bin/mysqlanalyze \
/usr/bin/mysqlcheck \
/usr/bin/mysqldump \
/usr/bin/mysqldumpslow \
/usr/bin/mysqlimport \
/usr/bin/mysqloptimize \
/usr/bin/mysqlrepair \
/usr/bin/mysqlreport \
/usr/bin/mysqlshow \
/usr/bin/mysqlslap \
/usr/bin/mytop
FROM php-core AS php-cli
ARG PHP_CORE_VERSION
FROM ${PHP_CORE_VERSION} AS php-cli
# Install a funky cool repl.
RUN composer global require -q psy/psysh:@stable && \
@ -90,7 +18,8 @@ ONBUILD RUN (composer install; exit 0) && \
(composer dumpautoload -o; exit 0) && \
/usr/bin/install-report
FROM php-core AS php-nginx
ARG PHP_CORE_VERSION
FROM ${PHP_CORE_VERSION} AS php-nginx
ARG PHP_VERSION
ARG PHP_MEMORY_LIMIT=128M
ARG PHP_DATA_MAX_SIZE=1024M
@ -203,7 +132,8 @@ ONBUILD RUN (composer install; exit 0) && \
(composer dumpautoload -o; exit 0) && \
/usr/bin/install-report
FROM php-core AS php-apache
ARG PHP_CORE_VERSION
FROM ${PHP_CORE_VERSION} AS php-apache
ARG PHP_VERSION
RUN apt-get -qq update && \
apt-get -yqq install --no-install-recommends \
@ -251,96 +181,3 @@ ONBUILD COPY ./ /app
ONBUILD RUN (composer install; exit 0) && \
(composer dumpautoload -o; exit 0) && \
/usr/bin/install-report
FROM marshall AS nodejs
ARG NODE_VERSION
ARG YARN_VERSION
ARG PATH="/app/node_modules/.bin:${PATH}"
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN mkdir ~/.gnupg && \
echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf && \
apt-get -qq update && \
apt-get -yqq install --no-install-recommends \
lsb-core \
gnupg \
&& \
\
ARCH= && \
dpkgArch="$(dpkg --print-architecture)" && \
case "${dpkgArch##*-}" in \
amd64) ARCH='x64';; \
ppc64el) ARCH='ppc64le';; \
s390x) ARCH='s390x';; \
arm64) ARCH='arm64';; \
armhf) ARCH='armv7l';; \
i386) ARCH='x86';; \
*) echo "unsupported architecture"; exit 1 ;; \
esac \
# gpg keys listed at https://github.com/nodejs/node#release-keys
&& set -ex \
&& for key in \
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
FD3A5288F042B6850C66B31F09FE44734EB7990E \
71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
B9AE9905FFD7803F25714661B63B535A4C206CA9 \
77984A986EBC2AA786BC0F66B01FBB92821C587A \
8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \
4ED778F539E3634C779C87C6D7062848A1AB005C \
A48C2BEE680E841632CD4E44F07496B3EB3C1762 \
B9E2F5981AA6E0CD28160D9FF13993A75599653C \
; do \
gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \
gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \
gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \
done \
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" \
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
&& grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
&& rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs \
&& set -ex \
&& for key in \
6A010C5166006599AA17F08146C2130DFD2497F5 \
; do \
gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \
gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \
gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \
done \
&& curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \
&& curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \
&& gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
&& mkdir -p /opt \
&& tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ \
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn \
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \
&& rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
\
&& apt-get autoremove -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /var/lib/dpkg/status.old /var/cache/debconf/templates.dat /var/log/dpkg.log /var/log/lastlog /var/log/apt/*.log
FROM nodejs AS nodejs-compiler
RUN apt-get -qq update && \
apt-get -yqq install --no-install-recommends \
python \
build-essential \
&& \
apt-get autoremove -y && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /var/lib/dpkg/status.old /var/cache/debconf/templates.dat /var/log/dpkg.log /var/log/lastlog /var/log/apt/*.log
FROM nodejs AS nodejs-onbuild
ONBUILD COPY ./ /app
FROM nodejs-compiler AS nodejs-compiler-onbuild
ONBUILD COPY ./ /app

24
Dockerfile.Marshall Normal file
View file

@ -0,0 +1,24 @@
FROM ubuntu:bionic AS marshall
LABEL maintainer="Matthew Baggett <matthew@baggett.me>"
ENV DEBIAN_FRONTEND="teletype" \
TERM=xterm-256color \
COMPOSER_ALLOW_SUPERUSER=1 \
COLOUR_FAIL='\e[31m' \
COLOUR_SUCCESS='\e[32m' \
COLOUR_NONE='\e[39m' \
DEFAULT_TZ='Europe/London'
CMD ["runsvdir", "-P", "/etc/service"]
WORKDIR /app
ENV PATH="/app:/app/bin:/app/vendor/bin:${PATH}"
COPY marshall/installers /installers
COPY marshall/etc /etc
COPY marshall/usr /usr
RUN /installers/install && \
rm -rf /marshall /installers

92
Dockerfile.Node Normal file
View file

@ -0,0 +1,92 @@
FROM marshall AS nodejs
ARG NODE_VERSION
ARG YARN_VERSION
ARG PATH="/app/node_modules/.bin:${PATH}"
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN mkdir ~/.gnupg && \
echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf && \
apt-get -qq update && \
apt-get -yqq install --no-install-recommends \
lsb-core \
gnupg \
&& \
\
ARCH= && \
dpkgArch="$(dpkg --print-architecture)" && \
case "${dpkgArch##*-}" in \
amd64) ARCH='x64';; \
ppc64el) ARCH='ppc64le';; \
s390x) ARCH='s390x';; \
arm64) ARCH='arm64';; \
armhf) ARCH='armv7l';; \
i386) ARCH='x86';; \
*) echo "unsupported architecture"; exit 1 ;; \
esac \
# gpg keys listed at https://github.com/nodejs/node#release-keys
&& set -ex \
&& for key in \
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
FD3A5288F042B6850C66B31F09FE44734EB7990E \
71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
B9AE9905FFD7803F25714661B63B535A4C206CA9 \
77984A986EBC2AA786BC0F66B01FBB92821C587A \
8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \
4ED778F539E3634C779C87C6D7062848A1AB005C \
A48C2BEE680E841632CD4E44F07496B3EB3C1762 \
B9E2F5981AA6E0CD28160D9FF13993A75599653C \
; do \
gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \
gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \
gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \
done \
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" \
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
&& grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
&& rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs \
&& set -ex \
&& for key in \
6A010C5166006599AA17F08146C2130DFD2497F5 \
; do \
gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \
gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \
gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \
done \
&& curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \
&& curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \
&& gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
&& mkdir -p /opt \
&& tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ \
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn \
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \
&& rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
\
&& apt-get autoremove -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /var/lib/dpkg/status.old /var/cache/debconf/templates.dat /var/log/dpkg.log /var/log/lastlog /var/log/apt/*.log
FROM nodejs AS nodejs-compiler
RUN apt-get -qq update && \
apt-get -yqq install --no-install-recommends \
python \
build-essential \
&& \
apt-get autoremove -y && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /var/lib/dpkg/status.old /var/cache/debconf/templates.dat /var/log/dpkg.log /var/log/lastlog /var/log/apt/*.log
FROM nodejs AS nodejs-onbuild
ONBUILD COPY ./ /app
FROM nodejs-compiler AS nodejs-compiler-onbuild
ONBUILD COPY ./ /app

556
Makefile
View file

@ -1,529 +1,39 @@
# ▄▄▄▄ ▓█████ ███▄ █ ▒███████▒ ██▓ ███▄ █ ▓█████
# ▓█████▄ ▓█ ▀ ██ ▀█ █ ▒ ▒ ▒ ▄▀░▓██▒ ██ ▀█ █ ▓█ ▀
# ▒██▒ ▄██▒███ ▓██ ▀█ ██▒░ ▒ ▄▀▒░ ▒██▒▓██ ▀█ ██▒▒███
# ▒██░█▀ ▒▓█ ▄ ▓██▒ ▐▌██▒ ▄▀▒ ░░██░▓██▒ ▐▌██▒▒▓█ ▄
# ░▓█ ▀█▓░▒████▒▒██░ ▓██░▒███████▒░██░▒██░ ▓██░░▒████▒
# ░▒▓███▀▒░░ ▒░ ░░ ▒░ ▒ ▒ ░▒▒ ▓░▒░▒░▓ ░ ▒░ ▒ ▒ ░░ ▒░ ░
# ▒░▒ ░ ░ ░ ░░ ░░ ░ ▒░░░▒ ▒ ░ ▒ ▒ ░░ ░░ ░ ▒░ ░ ░ ░
# ░▄▄▄▄ ░ ░▄▄▄░ ▒░ ░ ░██████░▓█████ ░ ░ ██▓ ███▄░▄███▓ ▄▄▄ ▄████ ▓█████
# ▓█████▄ ▒████▄░ ▒██ ▒░▓█ ▀ ░ ▓██▒▓██▒▀█▀ ██▒▒████▄ ██▒ ▀█▒▓█ ▀
# ▒██▒ ▄██▒██ ▀█▄ ░ ▓██▄ ▒███ ▒██▒▓██ ▓██░▒██ ▀█▄ ▒██░▄▄▄░▒███
# ▒██░█▀ ░██▄▄▄▄██ ▒ ██▒▒▓█ ▄ ░██░▒██ ▒██ ░██▄▄▄▄██ ░▓█ ██▓▒▓█ ▄
# ░▓█ ▀█▓ ▓█ ▓██▒▒██████▒▒░▒████▒ ░██░▒██▒ ░██▒ ▓█ ▓██▒░▒▓███▀▒░▒████▒
# ░▒▓███▀▒ ▒▒ ▓▒█░▒ ▒▓▒ ▒ ░░░ ▒░ ░ ░▓ ░ ▒░ ░ ░ ▒▒ ▓▒█░ ░▒ ▒ ░░ ▒░ ░
# ▒░▒ ░ ▒ ▒▒ ░░ ░▒ ░ ░ ░ ░ ░ ▒ ░░ ░ ░ ▒ ▒▒ ░ ░ ░ ░ ░ ░
# ░ ░ ░ ▒ ░ ░ ░ ░ ▒ ░░ ░ ░ ▒ ░ ░ ░ ░
# ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
BUILD:=docker build
# Prettyprinting: http://patorjk.com/software/taag/#p=display&c=bash&f=Bloody&t=Example
CMD_BUILD=docker buildx build --platform linux/arm64,linux/amd64
BUILDX_OUTPUT=--push
PHP_PACKAGES_70=mariadb-client \
php7.0-apcu \
php7.0-bcmath \
php7.0-bz2 \
php7.0-cli \
php7.0-curl \
php7.0-gd \
php7.0-imap \
php7.0-imagick \
php7.0-intl \
php7.0-json \
php7.0-ldap \
php7.0-mbstring \
php7.0-mcrypt \
php7.0-memcache \
php7.0-memcached \
php7.0-mongodb \
php7.0-mysql \
php7.0-opcache \
php7.0-pgsql \
php7.0-pspell \
php7.0-redis \
php7.0-soap \
php7.0-sqlite \
php7.0-xdebug \
php7.0-xml \
php7.0-zip \
postgresql-client
docker-marshall:
$(BUILD) \
--tag benzine/marshall:latest \
--target marshall \
--file Dockerfile.Marshall \
.
PHP_PACKAGES_71=mariadb-client \
php7.1-apcu \
php7.1-bcmath \
php7.1-bz2 \
php7.1-cli \
php7.1-curl \
php7.1-gd \
php7.1-imap \
php7.1-imagick \
php7.1-intl \
php7.1-json \
php7.1-ldap \
php7.1-mbstring \
php7.1-mcrypt \
php7.1-memcache \
php7.1-memcached \
php7.1-mongodb \
php7.1-mysql \
php7.1-opcache \
php7.1-pgsql \
php7.1-pspell \
php7.1-redis \
php7.1-soap \
php7.1-sqlite \
php7.1-xdebug \
php7.1-xml \
php7.1-zip \
postgresql-client
docker-php-core:
$(BUILD) \
--build-arg PHP_PACKAGES="git mariadb-client php${PHP_VERSION}-apcu php${PHP_VERSION}-bcmath php${PHP_VERSION}-bz2 php${PHP_VERSION}-cli php${PHP_VERSION}-curl php${PHP_VERSION}-gd php${PHP_VERSION}-imap php${PHP_VERSION}-imagick php${PHP_VERSION}-intl php${PHP_VERSION}-ldap php${PHP_VERSION}-mbstring php${PHP_VERSION}-memcache php${PHP_VERSION}-mysql php${PHP_VERSION}-opcache php${PHP_VERSION}-pgsql php${PHP_VERSION}-phpdbg php${PHP_VERSION}-pspell php${PHP_VERSION}-redis php${PHP_VERSION}-soap php${PHP_VERSION}-sqlite php${PHP_VERSION}-xdebug php${PHP_VERSION}-xml php${PHP_VERSION}-zip postgresql-client" \
--build-arg PHP_VERSION=${PHP_VERSION} \
--tag benzine/php:core-${PHP_VERSION} \
--target php-core \
--file Dockerfile.Core \
.
PHP_PACKAGES_72=mariadb-client \
php7.2-apcu \
php7.2-bcmath \
php7.2-bz2 \
php7.2-cli \
php7.2-curl \
php7.2-gd \
php7.2-imap \
php7.2-imagick \
php7.2-intl \
php7.2-json \
php7.2-ldap \
php7.2-mbstring \
php7.2-memcache \
php7.2-memcached \
php7.2-mongodb \
php7.2-mysql \
php7.2-opcache \
php7.2-pgsql \
php7.2-pspell \
php7.2-redis \
php7.2-soap \
php7.2-sqlite \
php7.2-xdebug \
php7.2-xml \
php7.2-zip \
postgresql-client
docker-php-flavour:
$(BUILD) \
--build-arg PHP_CORE_VERSION=benzine/php:core-${PHP_VERSION} \
--build-arg PHP_VERSION=${PHP_VERSION} \
--tag benzine/php:${FLAVOUR}-${PHP_VERSION} \
--target php-${FLAVOUR} \
--file Dockerfile.Flavours \
.
PHP_PACKAGES_73=mariadb-client \
php7.3-apcu \
php7.3-bcmath \
php7.3-bz2 \
php7.3-cli \
php7.3-curl \
php7.3-gd \
php7.3-imap \
php7.3-imagick \
php7.3-intl \
php7.3-json \
php7.3-ldap \
php7.3-mbstring \
php7.3-memcache \
php7.3-memcached \
php7.3-mongodb \
php7.3-mysql \
php7.3-opcache \
php7.3-pgsql \
php7.3-pspell \
php7.3-redis \
php7.3-soap \
php7.3-sqlite \
php7.3-xdebug \
php7.3-xml \
php7.3-zip \
postgresql-client
PHP_PACKAGES_74=mariadb-client \
php7.4-apcu \
php7.4-bcmath \
php7.4-bz2 \
php7.4-cli \
php7.4-curl \
php7.4-gd \
php7.4-imap \
php7.4-imagick \
php7.4-intl \
php7.4-json \
php7.4-ldap \
php7.4-mbstring \
php7.4-memcache \
php7.4-memcached \
php7.4-mongodb \
php7.4-mysql \
php7.4-opcache \
php7.4-pgsql \
php7.4-pspell \
php7.4-redis \
php7.4-soap \
php7.4-sqlite \
php7.4-xdebug \
php7.4-xml \
php7.4-zip \
postgresql-client
bake-flavours:
$(MAKE) docker-php-flavour FLAVOUR=cli
$(MAKE) docker-php-flavour FLAVOUR=nginx
$(MAKE) docker-php-flavour FLAVOUR=apache
PHP_PACKAGES_80=mariadb-client \
php8.0-apcu \
php8.0-bcmath \
php8.0-bz2 \
php8.0-cli \
php8.0-curl \
php8.0-gd \
php8.0-imap \
php8.0-imagick \
php8.0-intl \
php8.0-ldap \
php8.0-mbstring \
php8.0-memcache \
php8.0-memcached \
php8.0-mysql \
php8.0-opcache \
php8.0-pgsql \
php8.0-pspell \
php8.0-redis \
php8.0-soap \
php8.0-sqlite \
php8.0-xdebug \
php8.0-xml \
php8.0-zip \
postgresql-client
bake:
$(MAKE) docker-marshall
$(MAKE) docker-php-core bake-flavours PHP_VERSION=7.3
$(MAKE) docker-php-core bake-flavours PHP_VERSION=7.4
$(MAKE) docker-php-core bake-flavours PHP_VERSION=8.0
# ██████ ▓█████▄▄▄█████▓ █ ██ ██▓███
# ▒██ ▒ ▓█ ▀▓ ██▒ ▓▒ ██ ▓██▒▓██░ ██▒
# ░ ▓██▄ ▒███ ▒ ▓██░ ▒░▓██ ▒██░▓██░ ██▓▒
# ▒ ██▒▒▓█ ▄░ ▓██▓ ░ ▓▓█ ░██░▒██▄█▓▒ ▒
# ▒██████▒▒░▒████▒ ▒██▒ ░ ▒▒█████▓ ▒██▒ ░ ░
# ▒ ▒▓▒ ▒ ░░░ ▒░ ░ ▒ ░░ ░▒▓▒ ▒ ▒ ▒▓▒░ ░ ░
# ░ ░▒ ░ ░ ░ ░ ░ ░ ░░▒░ ░ ░ ░▒ ░
# ░ ░ ░ ░ ░ ░░░ ░ ░ ░░
# ░ ░ ░ ░
buildx:
export DOCKER_CLI_EXPERIMENTAL=enabled
-docker buildx create --name benzinebuilder
docker buildx use benzinebuilder
docker buildx inspect --bootstrap
setup: buildx
git rev-parse --short HEAD > marshall/marshall_version
date +%Y-%m-%d\ %H:%M:%S > marshall/marshall_build_date
hostname > marshall/marshall_build_host
# ███▄ ▄███▓ ▄▄▄ ██▀███ ██████ ██░ ██ ▄▄▄ ██▓ ██▓
# ▓██▒▀█▀ ██▒▒████▄ ▓██ ▒ ██▒▒██ ▒ ▓██░ ██▒▒████▄ ▓██▒ ▓██▒
# ▓██ ▓██░▒██ ▀█▄ ▓██ ░▄█ ▒░ ▓██▄ ▒██▀▀██░▒██ ▀█▄ ▒██░ ▒██░
# ▒██ ▒██ ░██▄▄▄▄██ ▒██▀▀█▄ ▒ ██▒░▓█ ░██ ░██▄▄▄▄██ ▒██░ ▒██░
# ▒██▒ ░██▒ ▓█ ▓██▒░██▓ ▒██▒▒██████▒▒░▓█▒░██▓ ▓█ ▓██▒░██████▒░██████▒
# ░ ▒░ ░ ░ ▒▒ ▓▒█░░ ▒▓ ░▒▓░▒ ▒▓▒ ▒ ░ ▒ ░░▒░▒ ▒▒ ▓▒█░░ ▒░▓ ░░ ▒░▓ ░
# ░ ░ ░ ▒ ▒▒ ░ ░▒ ░ ▒░░ ░▒ ░ ░ ▒ ░▒░ ░ ▒ ▒▒ ░░ ░ ▒ ░░ ░ ▒ ░
# ░ ░ ░ ▒ ░░ ░ ░ ░ ░ ░ ░░ ░ ░ ▒ ░ ░ ░ ░
# ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
benzine/marshall: setup
$(CMD_BUILD) -t benzine/marshall:latest --target=marshall . $(BUILDX_OUTPUT)
# ██▓███ ██░ ██ ██▓███ ▄████▄ ▒█████ ██▀███ ▓█████
# ▓██░ ██▒▓██░ ██▒▓██░ ██▒ ▒██▀ ▀█ ▒██▒ ██▒▓██ ▒ ██▒▓█ ▀
# ▓██░ ██▓▒▒██▀▀██░▓██░ ██▓▒ ▒▓█ ▄ ▒██░ ██▒▓██ ░▄█ ▒▒███
# ▒██▄█▓▒ ▒░▓█ ░██ ▒██▄█▓▒ ▒ ▒▓▓▄ ▄██▒▒██ ██░▒██▀▀█▄ ▒▓█ ▄
# ▒██▒ ░ ░░▓█▒░██▓▒██▒ ░ ░ ▒ ▓███▀ ░░ ████▓▒░░██▓ ▒██▒░▒████▒
# ▒▓▒░ ░ ░ ▒ ░░▒░▒▒▓▒░ ░ ░ ░ ░▒ ▒ ░░ ▒░▒░▒░ ░ ▒▓ ░▒▓░░░ ▒░ ░
# ░▒ ░ ▒ ░▒░ ░░▒ ░ ░ ▒ ░ ▒ ▒░ ░▒ ░ ▒░ ░ ░ ░
# ░░ ░ ░░ ░░░ ░ ░ ░ ░ ▒ ░░ ░ ░
# ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
benzine/php\:core-7.0: setup
$(CMD_BUILD) -t benzine/php:core-7.0 --target=php-core --build-arg "PHP_VERSION=7.0" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_70)" . $(BUILDX_OUTPUT)
benzine/php\:core-7.1: setup
$(CMD_BUILD) -t benzine/php:core-7.1 --target=php-core --build-arg "PHP_VERSION=7.1" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_71)" . $(BUILDX_OUTPUT)
benzine/php\:core-7.2: setup
$(CMD_BUILD) -t benzine/php:core-7.2 --target=php-core --build-arg "PHP_VERSION=7.2" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_72)" . $(BUILDX_OUTPUT)
benzine/php\:core-7.3: setup
$(CMD_BUILD) -t benzine/php:core-7.3 --target=php-core --build-arg "PHP_VERSION=7.3" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_73)" . $(BUILDX_OUTPUT)
benzine/php\:core-7.4: setup
$(CMD_BUILD) -t benzine/php:core-7.4 --target=php-core --build-arg "PHP_VERSION=7.4" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_74)" . $(BUILDX_OUTPUT)
benzine/php\:core-8.0: setup
$(CMD_BUILD) -t benzine/php:core-7.4 --target=php-core --build-arg "PHP_VERSION=8.4" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_80)" . $(BUILDX_OUTPUT)
core:
$(MAKE) benzine/php\:core-7.0
$(MAKE) benzine/php\:core-7.1
$(MAKE) benzine/php\:core-7.2
$(MAKE) benzine/php\:core-7.3
$(MAKE) benzine/php\:core-7.4
# ██▓███ ██░ ██ ██▓███ ▄████▄ ██▓ ██▓
# ▓██░ ██▒▓██░ ██▒▓██░ ██▒ ▒██▀ ▀█ ▓██▒ ▓██▒
# ▓██░ ██▓▒▒██▀▀██░▓██░ ██▓▒ ▒▓█ ▄ ▒██░ ▒██▒
# ▒██▄█▓▒ ▒░▓█ ░██ ▒██▄█▓▒ ▒ ▒▓▓▄ ▄██▒▒██░ ░██░
# ▒██▒ ░ ░░▓█▒░██▓▒██▒ ░ ░ ▒ ▓███▀ ░░██████▒░██░
# ▒▓▒░ ░ ░ ▒ ░░▒░▒▒▓▒░ ░ ░ ░ ░▒ ▒ ░░ ▒░▓ ░░▓
# ░▒ ░ ▒ ░▒░ ░░▒ ░ ░ ▒ ░ ░ ▒ ░ ▒ ░
# ░░ ░ ░░ ░░░ ░ ░ ░ ▒ ░
# ░ ░ ░ ░ ░ ░ ░ ░
benzine/php\:cli-7.0: setup
$(CMD_BUILD) -t benzine/php:cli-7.0 --target=php-cli --build-arg "PHP_VERSION=7.0" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_70)" . $(BUILDX_OUTPUT)
benzine/php\:cli-7.0-onbuild: setup
$(CMD_BUILD) -t benzine/php:cli-7.0-onbuild --target=php-cli-onbuild --build-arg "PHP_VERSION=7.0" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_70)" . $(BUILDX_OUTPUT)
benzine/php\:cli-7.1: setup
$(CMD_BUILD) -t benzine/php:cli-7.1 --target=php-cli --build-arg "PHP_VERSION=7.1" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_71)" . $(BUILDX_OUTPUT)
benzine/php\:cli-7.1-onbuild: setup
$(CMD_BUILD) -t benzine/php:cli-7.1-onbuild --target=php-cli-onbuild --build-arg "PHP_VERSION=7.1" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_71)" . $(BUILDX_OUTPUT)
benzine/php\:cli-7.2: setup
$(CMD_BUILD) -t benzine/php:cli-7.2 --target=php-cli --build-arg "PHP_VERSION=7.2" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_72)" . $(BUILDX_OUTPUT)
benzine/php\:cli-7.2-onbuild: setup
$(CMD_BUILD) -t benzine/php:cli-7.2-onbuild --target=php-cli-onbuild --build-arg "PHP_VERSION=7.2" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_72)" . $(BUILDX_OUTPUT)
benzine/php\:cli-7.3: setup
$(CMD_BUILD) -t benzine/php:cli-7.3 --target=php-cli --build-arg "PHP_VERSION=7.3" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_73)" . $(BUILDX_OUTPUT)
benzine/php\:cli-7.3-onbuild: setup
$(CMD_BUILD) -t benzine/php:cli-7.3-onbuild --target=php-cli-onbuild --build-arg "PHP_VERSION=7.3" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_73)" . $(BUILDX_OUTPUT)
benzine/php\:cli-7.4: setup
$(CMD_BUILD) -t benzine/php:cli-7.4 --target=php-cli --build-arg "PHP_VERSION=7.4" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_74)" . $(BUILDX_OUTPUT)
benzine/php\:cli-7.4-onbuild: setup
$(CMD_BUILD) -t benzine/php:cli-7.4-onbuild --target=php-cli-onbuild --build-arg "PHP_VERSION=7.4" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_74)" . $(BUILDX_OUTPUT)
benzine/php\:cli-8.0: setup
$(CMD_BUILD) -t benzine/php:cli-8.0 --target=php-cli --build-arg "PHP_VERSION=8.0" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_80)" . $(BUILDX_OUTPUT)
benzine/php\:cli-8.0-onbuild: setup
$(CMD_BUILD) -t benzine/php:cli-8.0-onbuild --target=php-cli-onbuild --build-arg "PHP_VERSION=8.0" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_80)" . $(BUILDX_OUTPUT)
php-cli:
$(MAKE) benzine/php\:cli-7.0
$(MAKE) benzine/php\:cli-7.0-onbuild
$(MAKE) benzine/php\:cli-7.1
$(MAKE) benzine/php\:cli-7.1-onbuild
$(MAKE) benzine/php\:cli-7.2
$(MAKE) benzine/php\:cli-7.2-onbuild
$(MAKE) benzine/php\:cli-7.3
$(MAKE) benzine/php\:cli-7.3-onbuild
$(MAKE) benzine/php\:cli-7.4
$(MAKE) benzine/php\:cli-7.4-onbuild
$(MAKE) benzine/php\:cli-8.0
$(MAKE) benzine/php\:cli-8.0-onbuild
# ██▓███ ██░ ██ ██▓███ ███▄ █ ▄████ ██▓ ███▄ █ ▒██ ██▒
# ▓██░ ██▒▓██░ ██▒▓██░ ██▒ ██ ▀█ █ ██▒ ▀█▒▓██▒ ██ ▀█ █ ▒▒ █ █ ▒░
# ▓██░ ██▓▒▒██▀▀██░▓██░ ██▓▒ ▓██ ▀█ ██▒▒██░▄▄▄░▒██▒▓██ ▀█ ██▒░░ █ ░
# ▒██▄█▓▒ ▒░▓█ ░██ ▒██▄█▓▒ ▒ ▓██▒ ▐▌██▒░▓█ ██▓░██░▓██▒ ▐▌██▒ ░ █ █ ▒
# ▒██▒ ░ ░░▓█▒░██▓▒██▒ ░ ░ ▒██░ ▓██░░▒▓███▀▒░██░▒██░ ▓██░▒██▒ ▒██▒
# ▒▓▒░ ░ ░ ▒ ░░▒░▒▒▓▒░ ░ ░ ░ ▒░ ▒ ▒ ░▒ ▒ ░▓ ░ ▒░ ▒ ▒ ▒▒ ░ ░▓ ░
# ░▒ ░ ▒ ░▒░ ░░▒ ░ ░ ░░ ░ ▒░ ░ ░ ▒ ░░ ░░ ░ ▒░░░ ░▒ ░
# ░░ ░ ░░ ░░░ ░ ░ ░ ░ ░ ░ ▒ ░ ░ ░ ░ ░ ░
# ░ ░ ░ ░ ░ ░ ░ ░ ░
benzine/php\:nginx-7.0: setup
$(CMD_BUILD) -t benzine/php:nginx-7.0 --target=php-nginx --build-arg "PHP_VERSION=7.0" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_70)" . $(BUILDX_OUTPUT)
benzine/php\:nginx-7.0-onbuild: setup
$(CMD_BUILD) -t benzine/php:nginx-7.0-onbuild --target=php-nginx-onbuild --build-arg "PHP_VERSION=7.0" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_70)" . $(BUILDX_OUTPUT)
benzine/php\:nginx-7.1: setup
$(CMD_BUILD) -t benzine/php:nginx-7.1 --target=php-nginx --build-arg "PHP_VERSION=7.1" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_71)" . $(BUILDX_OUTPUT)
benzine/php\:nginx-7.1-onbuild: setup
$(CMD_BUILD) -t benzine/php:nginx-7.1-onbuild --target=php-nginx-onbuild --build-arg "PHP_VERSION=7.1" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_71)" . $(BUILDX_OUTPUT)
benzine/php\:nginx-7.2: setup
$(CMD_BUILD) -t benzine/php:nginx-7.2 --target=php-nginx --build-arg "PHP_VERSION=7.2" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_72)" . $(BUILDX_OUTPUT)
benzine/php\:nginx-7.2-onbuild: setup
$(CMD_BUILD) -t benzine/php:nginx-7.2-onbuild --target=php-nginx-onbuild --build-arg "PHP_VERSION=7.2" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_72)" . $(BUILDX_OUTPUT)
benzine/php\:nginx-7.3: setup
$(CMD_BUILD) -t benzine/php:nginx-7.3 --target=php-nginx --build-arg "PHP_VERSION=7.3" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_73)" . $(BUILDX_OUTPUT)
benzine/php\:nginx-7.3-onbuild: setup
$(CMD_BUILD) -t benzine/php:nginx-7.3-onbuild --target=php-nginx-onbuild --build-arg "PHP_VERSION=7.3" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_73)" . $(BUILDX_OUTPUT)
benzine/php\:nginx-7.4: setup
$(CMD_BUILD) -t benzine/php:nginx-7.4 --target=php-nginx --build-arg "PHP_VERSION=7.4" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_74)" . $(BUILDX_OUTPUT)
benzine/php\:nginx-7.4-onbuild: setup
$(CMD_BUILD) -t benzine/php:nginx-7.4-onbuild --target=php-nginx-onbuild --build-arg "PHP_VERSION=7.4" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_74)" . $(BUILDX_OUTPUT)
benzine/php\:nginx-8.0: setup
$(CMD_BUILD) -t benzine/php:nginx-8.0 --target=php-nginx --build-arg "PHP_VERSION=8.0" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_80)" . $(BUILDX_OUTPUT)
benzine/php\:nginx-8.0-onbuild: setup
$(CMD_BUILD) -t benzine/php:nginx-8.0-onbuild --target=php-nginx-onbuild --build-arg "PHP_VERSION=8.0" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_80)" . $(BUILDX_OUTPUT)
php-nginx:
$(MAKE) benzine/php\:nginx-7.0
$(MAKE) benzine/php\:nginx-7.0-onbuild
$(MAKE) benzine/php\:nginx-7.1
$(MAKE) benzine/php\:nginx-7.1-onbuild
$(MAKE) benzine/php\:nginx-7.2
$(MAKE) benzine/php\:nginx-7.2-onbuild
$(MAKE) benzine/php\:nginx-7.3
$(MAKE) benzine/php\:nginx-7.3-onbuild
$(MAKE) benzine/php\:nginx-7.4
$(MAKE) benzine/php\:nginx-7.4-onbuild
$(MAKE) benzine/php\:nginx-8.0
$(MAKE) benzine/php\:nginx-8.0-onbuild
# ██▓███ ██░ ██ ██▓███ ▄▄▄ ██▓███ ▄▄▄ ▄████▄ ██░ ██ ▓█████
# ▓██░ ██▒▓██░ ██▒▓██░ ██▒ ▒████▄ ▓██░ ██▒▒████▄ ▒██▀ ▀█ ▓██░ ██▒▓█ ▀
# ▓██░ ██▓▒▒██▀▀██░▓██░ ██▓▒ ▒██ ▀█▄ ▓██░ ██▓▒▒██ ▀█▄ ▒▓█ ▄ ▒██▀▀██░▒███
# ▒██▄█▓▒ ▒░▓█ ░██ ▒██▄█▓▒ ▒ ░██▄▄▄▄██ ▒██▄█▓▒ ▒░██▄▄▄▄██ ▒▓▓▄ ▄██▒░▓█ ░██ ▒▓█ ▄
# ▒██▒ ░ ░░▓█▒░██▓▒██▒ ░ ░ ▓█ ▓██▒▒██▒ ░ ░ ▓█ ▓██▒▒ ▓███▀ ░░▓█▒░██▓░▒████▒
# ▒▓▒░ ░ ░ ▒ ░░▒░▒▒▓▒░ ░ ░ ▒▒ ▓▒█░▒▓▒░ ░ ░ ▒▒ ▓▒█░░ ░▒ ▒ ░ ▒ ░░▒░▒░░ ▒░ ░
# ░▒ ░ ▒ ░▒░ ░░▒ ░ ▒ ▒▒ ░░▒ ░ ▒ ▒▒ ░ ░ ▒ ▒ ░▒░ ░ ░ ░ ░
# ░░ ░ ░░ ░░░ ░ ▒ ░░ ░ ▒ ░ ░ ░░ ░ ░
# ░ ░ ░ ░ ░ ░ ░░ ░ ░ ░ ░ ░ ░
benzine/php\:apache-7.0: setup
$(CMD_BUILD) -t benzine/php:apache-7.0 --target=php-apache --build-arg "PHP_VERSION=7.0" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_70)" . $(BUILDX_OUTPUT)
benzine/php\:apache-7.0-onbuild: setup
$(CMD_BUILD) -t benzine/php:apache-7.0-onbuild --target=php-apache-onbuild --build-arg "PHP_VERSION=7.0" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_70)" . $(BUILDX_OUTPUT)
benzine/php\:apache-7.1: setup
$(CMD_BUILD) -t benzine/php:apache-7.1 --target=php-apache --build-arg "PHP_VERSION=7.1" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_71)" . $(BUILDX_OUTPUT)
benzine/php\:apache-7.1-onbuild: setup
$(CMD_BUILD) -t benzine/php:apache-7.1-onbuild --target=php-apache-onbuild --build-arg "PHP_VERSION=7.1" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_71)" . $(BUILDX_OUTPUT)
benzine/php\:apache-7.2: setup
$(CMD_BUILD) -t benzine/php:apache-7.2 --target=php-apache --build-arg "PHP_VERSION=7.2" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_72)" . $(BUILDX_OUTPUT)
benzine/php\:apache-7.2-onbuild: setup
$(CMD_BUILD) -t benzine/php:apache-7.2-onbuild --target=php-apache-onbuild --build-arg "PHP_VERSION=7.2" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_72)" . $(BUILDX_OUTPUT)
benzine/php\:apache-7.3: setup
$(CMD_BUILD) -t benzine/php:apache-7.3 --target=php-apache --build-arg "PHP_VERSION=7.3" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_73)" . $(BUILDX_OUTPUT)
benzine/php\:apache-7.3-onbuild: setup
$(CMD_BUILD) -t benzine/php:apache-7.3-onbuild --target=php-apache-onbuild --build-arg "PHP_VERSION=7.3" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_73)" . $(BUILDX_OUTPUT)
benzine/php\:apache-7.4: setup
$(CMD_BUILD) -t benzine/php:apache-7.4 --target=php-apache --build-arg "PHP_VERSION=7.4" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_74)" . $(BUILDX_OUTPUT)
benzine/php\:apache-7.4-onbuild: setup
$(CMD_BUILD) -t benzine/php:apache-7.4-onbuild --target=php-apache-onbuild --build-arg "PHP_VERSION=7.4" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_74)" . $(BUILDX_OUTPUT)
benzine/php\:apache-8.0: setup
$(CMD_BUILD) -t benzine/php:apache-8.0 --target=php-apache --build-arg "PHP_VERSION=8.0" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_74)" . $(BUILDX_OUTPUT)
benzine/php\:apache-8.0-onbuild: setup
$(CMD_BUILD) -t benzine/php:apache-8.0-onbuild --target=php-apache-onbuild --build-arg "PHP_VERSION=8.0" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_74)" . $(BUILDX_OUTPUT)
php-apache:
$(MAKE) benzine/php\:apache-7.0
$(MAKE) benzine/php\:apache-7.0-onbuild
$(MAKE) benzine/php\:apache-7.1
$(MAKE) benzine/php\:apache-7.1-onbuild
$(MAKE) benzine/php\:apache-7.2
$(MAKE) benzine/php\:apache-7.2-onbuild
$(MAKE) benzine/php\:apache-7.3
$(MAKE) benzine/php\:apache-7.3-onbuild
$(MAKE) benzine/php\:apache-7.4
$(MAKE) benzine/php\:apache-7.4-onbuild
$(MAKE) benzine/php\:apache-8.0
$(MAKE) benzine/php\:apache-8.0-onbuild
# ███▄ █ ▒█████ ▓█████▄ ▓█████ ▄▄▄██▀▀▀██████
# ██ ▀█ █ ▒██▒ ██▒▒██▀ ██▌▓█ ▀ ▒██ ▒██ ▒
#▓██ ▀█ ██▒▒██░ ██▒░██ █▌▒███ ░██ ░ ▓██▄
#▓██▒ ▐▌██▒▒██ ██░░▓█▄ ▌▒▓█ ▄ ▓██▄██▓ ▒ ██▒
#▒██░ ▓██░░ ████▓▒░░▒████▓ ░▒████▒ ▓███▒ ▒██████▒▒
#░ ▒░ ▒ ▒ ░ ▒░▒░▒░ ▒▒▓ ▒ ░░ ▒░ ░ ▒▓▒▒░ ▒ ▒▓▒ ▒ ░
#░ ░░ ░ ▒░ ░ ▒ ▒░ ░ ▒ ▒ ░ ░ ░ ▒ ░▒░ ░ ░▒ ░ ░
# ░ ░ ░ ░ ░ ░ ▒ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
# ░ ░ ░ ░ ░ ░ ░ ░ ░
benzine/node\:8: setup
$(CMD_BUILD) -t benzine/node:8 --target=nodejs --build-arg NODE_VERSION=8.16.0 --build-arg YARN_VERSION=1.15.2 . $(BUILDX_OUTPUT)
benzine/node\:8-onbuild: setup
$(CMD_BUILD) -t benzine/node:8-onbuild --target=nodejs-onbuild --build-arg NODE_VERSION=8.16.0 --build-arg YARN_VERSION=1.15.2 . $(BUILDX_OUTPUT)
benzine/node\:8-compiler: setup
$(CMD_BUILD) -t benzine/node:8-compiler --target=nodejs-compiler --build-arg NODE_VERSION=8.16.0 --build-arg YARN_VERSION=1.15.2 . $(BUILDX_OUTPUT)
benzine/node\:8-compiler-onbuild: setup
$(CMD_BUILD) -t benzine/node:8-compiler-onbuild --target=nodejs-compiler-onbuild --build-arg NODE_VERSION=8.16.0 --build-arg YARN_VERSION=1.15.2 . $(BUILDX_OUTPUT)
benzine/node\:10: setup
$(CMD_BUILD) -t benzine/node:10 --target=nodejs --build-arg NODE_VERSION=10.16.0 --build-arg YARN_VERSION=1.16.0 . $(BUILDX_OUTPUT)
benzine/node\:10-onbuild: setup
$(CMD_BUILD) -t benzine/node:10-onbuild --target=nodejs-onbuild --build-arg NODE_VERSION=10.16.0 --build-arg YARN_VERSION=1.16.0 . $(BUILDX_OUTPUT)
benzine/node\:10-compiler: setup
$(CMD_BUILD) -t benzine/node:10-compiler --target=nodejs-compiler --build-arg NODE_VERSION=10.16.0 --build-arg YARN_VERSION=1.16.0 . $(BUILDX_OUTPUT)
benzine/node\:10-compiler-onbuild: setup
$(CMD_BUILD) -t benzine/node:10-compiler-onbuild --target=nodejs-compiler-onbuild --build-arg NODE_VERSION=10.16.0 --build-arg YARN_VERSION=1.16.0 . $(BUILDX_OUTPUT)
benzine/node\:11: setup
$(CMD_BUILD) -t benzine/node:11 --target=nodejs --build-arg NODE_VERSION=11.15.0 --build-arg YARN_VERSION=1.16.0 . $(BUILDX_OUTPUT)
benzine/node\:11-onbuild: setup
$(CMD_BUILD) -t benzine/node:11-onbuild --target=nodejs-onbuild --build-arg NODE_VERSION=11.15.0 --build-arg YARN_VERSION=1.16.0 . $(BUILDX_OUTPUT)
benzine/node\:11-compiler: setup
$(CMD_BUILD) -t benzine/node:11-compiler --target=nodejs-compiler --build-arg NODE_VERSION=11.15.0 --build-arg YARN_VERSION=1.16.0 . $(BUILDX_OUTPUT)
benzine/node\:11-compiler-onbuild: setup
$(CMD_BUILD) -t benzine/node:11-compiler-onbuild --target=nodejs-compiler-onbuild --build-arg NODE_VERSION=11.15.0 --build-arg YARN_VERSION=1.16.0 . $(BUILDX_OUTPUT)
benzine/node\:12: setup
$(CMD_BUILD) -t benzine/node:12 --target=nodejs --build-arg NODE_VERSION=12.3.1 --build-arg YARN_VERSION=1.16.0 . $(BUILDX_OUTPUT)
benzine/node\:12-onbuild: setup
$(CMD_BUILD) -t benzine/node:12-onbuild --target=nodejs-onbuild --build-arg NODE_VERSION=12.3.1 --build-arg YARN_VERSION=1.16.0 . $(BUILDX_OUTPUT)
benzine/node\:12-compiler: setup
$(CMD_BUILD) -t benzine/node:12-compiler --target=nodejs-compiler --build-arg NODE_VERSION=12.3.1 --build-arg YARN_VERSION=1.16.0 . $(BUILDX_OUTPUT)
benzine/node\:12-compiler-onbuild: setup
$(CMD_BUILD) -t benzine/node:12-compiler-onbuild --target=nodejs-compiler-onbuild --build-arg NODE_VERSION=12.3.1 --build-arg YARN_VERSION=1.16.0 . $(BUILDX_OUTPUT)
node:
$(MAKE) benzine/node\:8
$(MAKE) benzine/node\:8-onbuild
$(MAKE) benzine/node\:8-compiler
$(MAKE) benzine/node\:8-compiler-onbuild
$(MAKE) benzine/node\:10
$(MAKE) benzine/node\:10-onbuild
$(MAKE) benzine/node\:10-compiler
$(MAKE) benzine/node\:10-compiler-onbuild
$(MAKE) benzine/node\:11
$(MAKE) benzine/node\:11-onbuild
$(MAKE) benzine/node\:11-compiler
$(MAKE) benzine/node\:11-compiler-onbuild
$(MAKE) benzine/node\:12
$(MAKE) benzine/node\:12-onbuild
$(MAKE) benzine/node\:12-compiler
$(MAKE) benzine/node\:12-compiler-onbuild
# ██▓ ▄▄▄ ▄▄▄█████▓▓█████ ██████ ▄▄▄█████▓ ▄▄▄▄ █ ██ ██▓ ██▓ ▓█████▄ ██████
# ▓██▒ ▒████▄ ▓ ██▒ ▓▒▓█ ▀ ▒██ ▒ ▓ ██▒ ▓▒ ▓█████▄ ██ ▓██▒▓██▒▓██▒ ▒██▀ ██▌▒██ ▒
# ▒██░ ▒██ ▀█▄ ▒ ▓██░ ▒░▒███ ░ ▓██▄ ▒ ▓██░ ▒░ ▒██▒ ▄██▓██ ▒██░▒██▒▒██░ ░██ █▌░ ▓██▄
# ▒██░ ░██▄▄▄▄██░ ▓██▓ ░ ▒▓█ ▄ ▒ ██▒░ ▓██▓ ░ ▒██░█▀ ▓▓█ ░██░░██░▒██░ ░▓█▄ ▌ ▒ ██▒
# ░██████▒▓█ ▓██▒ ▒██▒ ░ ░▒████▒▒██████▒▒ ▒██▒ ░ ░▓█ ▀█▓▒▒█████▓ ░██░░██████▒░▒████▓ ▒██████▒▒
# ░ ▒░▓ ░▒▒ ▓▒█░ ▒ ░░ ░░ ▒░ ░▒ ▒▓▒ ▒ ░ ▒ ░░ ░▒▓███▀▒░▒▓▒ ▒ ▒ ░▓ ░ ▒░▓ ░ ▒▒▓ ▒ ▒ ▒▓▒ ▒ ░
# ░ ░ ▒ ░ ▒ ▒▒ ░ ░ ░ ░ ░░ ░▒ ░ ░ ░ ▒░▒ ░ ░░▒░ ░ ░ ▒ ░░ ░ ▒ ░ ░ ▒ ▒ ░ ░▒ ░ ░
# ░ ░ ░ ▒ ░ ░ ░ ░ ░ ░ ░ ░ ░░░ ░ ░ ▒ ░ ░ ░ ░ ░ ░ ░ ░ ░
# ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
benzine/php\:cli: setup
$(CMD_BUILD) -t benzine/php:cli --target=php-cli --build-arg "PHP_VERSION=7.3" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_73)" . $(BUILDX_OUTPUT)
benzine/php\:cli-onbuild: setup
$(CMD_BUILD) -t benzine/php:cli-onbuild --target=php-cli-onbuild --build-arg "PHP_VERSION=7.3" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_73)" . $(BUILDX_OUTPUT)
benzine/php\:apache: setup
$(CMD_BUILD) -t benzine/php:apache --target=php-apache --build-arg "PHP_VERSION=7.3" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_73)" . $(BUILDX_OUTPUT)
benzine/php\:apache-onbuild: setup
$(CMD_BUILD) -t benzine/php:apache-onbuild --target=php-apache-onbuild --build-arg "PHP_VERSION=7.3" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_73)" . $(BUILDX_OUTPUT)
benzine/php\:nginx: setup
$(CMD_BUILD) -t benzine/php:nginx --target=php-nginx --build-arg "PHP_VERSION=7.3" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_73)" . $(BUILDX_OUTPUT)
benzine/php\:nginx-onbuild: setup
$(CMD_BUILD) -t benzine/php:nginx-onbuild --target=php-nginx-onbuild --build-arg "PHP_VERSION=7.3" --build-arg "PHP_PACKAGES=$(PHP_PACKAGES_73)" . $(BUILDX_OUTPUT)
benzine/node: setup
$(CMD_BUILD) -t benzine/node --target=nodejs --build-arg NODE_VERSION=12.3.1 --build-arg YARN_VERSION=1.16.0 . $(BUILDX_OUTPUT)
benzine/node\:onbuild: setup
$(CMD_BUILD) -t benzine/node-onbuild --target=nodejs-onbuild --build-arg NODE_VERSION=12.3.1 --build-arg YARN_VERSION=1.16.0 . $(BUILDX_OUTPUT)
latest:
$(MAKE) benzine/php\:cli
$(MAKE) benzine/php\:cli-onbuild
$(MAKE) benzine/php\:apache
$(MAKE) benzine/php\:apache-onbuild
$(MAKE) benzine/php\:nginx
$(MAKE) benzine/php\:nginx-onbuild
$(MAKE) benzine/node
$(MAKE) benzine/node:onbuild
all:
$(MAKE) benzine/marshall
#$(MAKE) php-core # Nobody actually uses the core as-is, everything is baked off of cli & nginx honestly.
$(MAKE) php-cli
$(MAKE) php-nginx
$(MAKE) php-apache
$(MAKE) latest
# ▓█████▄ ▒█████ ▄████▄ ██████
# ▒██▀ ██▌▒██▒ ██▒▒██▀ ▀█ ▒██ ▒
# ░██ █▌▒██░ ██▒▒▓█ ▄ ░ ▓██▄
# ░▓█▄ ▌▒██ ██░▒▓▓▄ ▄██▒ ▒ ██▒
# ░▒████▓ ░ ████▓▒░▒ ▓███▀ ░▒██████▒▒
# ▒▒▓ ▒ ░ ▒░▒░▒░ ░ ░▒ ▒ ░▒ ▒▓▒ ▒ ░
# ░ ▒ ▒ ░ ▒ ▒░ ░ ▒ ░ ░▒ ░ ░
# ░▄████ ▓█████▒ ███▄ █ ▓█████░ ██▀███ ▄▄▄ ▄▄▄█████▓ ▒█████ ██▀███
# ██▒ ▀█▒▓█ ▀░ ██ ▀█ █ ▓█ ▀░▓██ ▒ ██▒▒████▄ ▓ ██▒ ▓▒▒██▒ ██▒▓██ ▒ ██▒
# ▒██░▄▄▄░▒███ ▓██ ▀█ ██▒▒███ ▓██ ░▄█ ▒▒██ ▀█▄ ▒ ▓██░ ▒░▒██░ ██▒▓██ ░▄█ ▒
# ░▓█ ██▓▒▓█ ▄ ▓██▒ ▐▌██▒▒▓█ ▄ ▒██▀▀█▄ ░██▄▄▄▄██░ ▓██▓ ░ ▒██ ██░▒██▀▀█▄
# ░▒▓███▀▒░▒████▒▒██░ ▓██░░▒████▒░██▓ ▒██▒ ▓█ ▓██▒ ▒██▒ ░ ░ ████▓▒░░██▓ ▒██▒
# ░▒ ▒ ░░ ▒░ ░░ ▒░ ▒ ▒ ░░ ▒░ ░░ ▒▓ ░▒▓░ ▒▒ ▓▒█░ ▒ ░░ ░ ▒░▒░▒░ ░ ▒▓ ░▒▓░
# ░ ░ ░ ░ ░░ ░░ ░ ▒░ ░ ░ ░ ░▒ ░ ▒░ ▒ ▒▒ ░ ░ ░ ▒ ▒░ ░▒ ░ ▒░
# ░ ░ ░ ░ ░ ░ ░ ░ ░░ ░ ░ ▒ ░ ░ ░ ░ ▒ ░░ ░
.PHONY: docs
docs:
composer install -d doc/ --ignore-platform-reqs
./doc/gen
gen-transmute:
cat .github/workflows/build-x86_64-php.yml | sed 's|x86_64|arm64v8|g' > .github/workflows/build-arm64v8-php.yml
all: bake

View file

@ -1,20 +1,113 @@
version: "2.3"
version: "3.4"
services:
test-nginx-7.3:
marshall:
image: benzine/marshall:latest
build:
target: marshall
dockerfile: Dockerfile.Marshall
context: .
php-core-7.3:
image: benzine/php:core-7.3
build:
target: php-core
dockerfile: Dockerfile.Core
context: .
args:
PHP_VERSION: 7.3
PHP_PACKAGES: git mariadb-client php7.3-apcu php7.3-bcmath php7.3-bz2 php7.3-cli php7.3-curl php7.3-gd php7.3-imap php7.3-imagick php7.3-intl php7.3-ldap php7.3-mbstring php7.3-memcache php7.3-mysql php7.3-opcache php7.3-pgsql php7.3-phpdbg php7.3-pspell php7.3-redis php7.3-soap php7.3-sqlite php7.3-xdebug php7.3-xml php7.3-zip postgresql-client
php-core-7.4:
image: benzine/php:core-7.4
build:
target: php-core
dockerfile: Dockerfile.Core
context: .
args:
PHP_VERSION: 7.4
PHP_PACKAGES: git mariadb-client php7.4-apcu php7.4-bcmath php7.4-bz2 php7.4-cli php7.4-curl php7.4-gd php7.4-imap php7.4-imagick php7.4-intl php7.4-ldap php7.4-mbstring php7.4-memcache php7.4-mysql php7.4-opcache php7.4-pgsql php7.4-phpdbg php7.4-pspell php7.4-redis php7.4-soap php7.4-sqlite php7.4-xdebug php7.4-xml php7.4-zip postgresql-client
php-core-8.0:
image: benzine/php:core-8.0
build:
target: php-core
dockerfile: Dockerfile.Core
context: .
args:
PHP_VERSION: 8.0
PHP_PACKAGES: git mariadb-client php8.0-apcu php8.0-bcmath php8.0-bz2 php8.0-cli php8.0-curl php8.0-gd php8.0-imap php8.0-imagick php8.0-intl php8.0-ldap php8.0-mbstring php8.0-memcache php8.0-mysql php8.0-opcache php8.0-pgsql php8.0-phpdbg php8.0-pspell php8.0-redis php8.0-soap php8.0-sqlite php8.0-xdebug php8.0-xml php8.0-zip postgresql-client
php-cli-7.3:
image: benzine/php:cli-7.3
build:
target: php-cli
dockerfile: Dockerfile.Flavours
context: .
args:
PHP_CORE_VERSION: benzine/php:core-7.3
php-cli-7.4:
image: benzine/php:cli-7.4
build:
target: php-cli
dockerfile: Dockerfile.Flavours
context: .
args:
PHP_CORE_VERSION: benzine/php:core-7.4
php-cli-8.0:
image: benzine/php:cli-8.0
build:
target: php-cli
dockerfile: Dockerfile.Flavours
context: .
args:
PHP_CORE_VERSION: benzine/php:core-8.0
php-nginx-7.3:
image: benzine/php:nginx-7.3
volumes:
- ./test-webapp/php:/app/public
ports:
- 127.0.0.73:80:80
- 127.0.0.73:443:443
test-nginx-7.4:
build:
target: php-nginx
dockerfile: Dockerfile.Flavours
context: .
args:
PHP_CORE_VERSION: benzine/php:core-7.3
php-nginx-7.4:
image: benzine/php:nginx-7.4
volumes:
- ./test-webapp/php:/app/public
ports:
- 127.0.0.74:80:80
- 127.0.0.74:443:443
environment:
DEBUG_MODE: "on"
XDEBUG_CONFIG: "client_host=172.17.0.1 log=/tmp/xdebug.log"
build:
target: php-nginx
dockerfile: Dockerfile.Flavours
context: .
args:
PHP_CORE_VERSION: benzine/php:core-7.4
php-nginx-8.0:
image: benzine/php:nginx-8.0
build:
target: php-nginx
dockerfile: Dockerfile.Flavours
context: .
args:
PHP_CORE_VERSION: benzine/php:core-8.0
php-apache-7.3:
image: benzine/php:apache-7.3
build:
target: php-apache
dockerfile: Dockerfile.Flavours
context: .
args:
PHP_CORE_VERSION: benzine/php:core-7.3
php-apache-7.4:
image: benzine/php:apache-7.4
build:
target: php-apache
dockerfile: Dockerfile.Flavours
context: .
args:
PHP_CORE_VERSION: benzine/php:core-7.4
php-apache-8.0:
image: benzine/php:apache-8.0
build:
target: php-apache
dockerfile: Dockerfile.Flavours
context: .
args:
PHP_CORE_VERSION: benzine/php:core-8.0

18
marshall/installers/000_apt.sh Normal file → Executable file
View file

@ -2,12 +2,18 @@
source /installers/config
echo "force-unsafe-io" > /etc/dpkg/dpkg.cfg.d/force-unsafe-io
# We're gonna move the sources to .d/ubuntu-upstream.list, then copy it, then manipulate it for a mirror list.
mv /etc/apt/sources.list /etc/apt/sources.list.d/ubuntu-upstream.list
cp /etc/apt/sources.list.d/ubuntu-upstream.list /etc/apt/sources.list.d/ubuntu-mirrors.list
touch /etc/apt/sources.list
sed -i 's/http\:\/\/archive\.ubuntu\.com\/ubuntu\//mirror\:\/\/mirrors.ubuntu.com\/mirrors.txt/g' /etc/apt/sources.list.d/ubuntu-mirrors.list
sed -i "s|deb http://security.ubuntu.com|# deb http://security.ubuntu.com|g" /etc/apt/sources.list.d/ubuntu-mirrors.list
# We're gonna move the sources to .d/ubuntu.list, then copy it, then manipulate it for a mirror list.
(
cat /etc/apt/sources.list;
cat /etc/apt/sources.list \
| sed 's/http\:\/\/archive\.ubuntu\.com\/ubuntu\//mirror\:\/\/mirrors.ubuntu.com\/mirrors.txt/g' \
| sed "s|deb http://security.ubuntu.com|# deb http://security.ubuntu.com|g"
) \
| sed '/^#/d' \
| sed '/^$/d' \
| uniq \
> /etc/apt/sources.list.d/ubuntu.list
rm /etc/apt/sources.list; touch /etc/apt/sources.list;
# Update apt repos
apt-get -qq update

0
marshall/installers/001_bash.sh Normal file → Executable file
View file

0
marshall/installers/002_timezone.sh Normal file → Executable file
View file

0
marshall/installers/003_dos2unix.sh Normal file → Executable file
View file

0
marshall/installers/050_runit.sh Normal file → Executable file
View file

0
marshall/installers/100_cron.sh Normal file → Executable file
View file

0
marshall/installers/101_rsyslog.sh Normal file → Executable file
View file

0
marshall/installers/102_logrotate.sh Normal file → Executable file
View file

0
marshall/installers/900_utils.sh Normal file → Executable file
View file

0
marshall/installers/901_package_report.sh Normal file → Executable file
View file

0
marshall/installers/999_cleanup.sh Normal file → Executable file
View file

6
marshall/installers/install Normal file → Executable file
View file

@ -1,9 +1,7 @@
#!/bin/bash
set -e
cd "$(dirname "$0")"
for file in /installers/*.sh
do
for file in *.sh; do
/bin/bash $file
done