Commit 956ea492 authored by Dom Sekotill's avatar Dom Sekotill
Browse files

Move much of the Dockerfile RUN lines into scripts

If it wasn't before, Buildkit with Docker is now a firm requirement for
building.

https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/experimental.md
parent d8f6d88d
Loading
Loading
Loading
Loading
+4 −42
Original line number Diff line number Diff line
@@ -7,43 +7,10 @@ COPY nginx.conf /etc/nginx/conf.d/default.conf


FROM php:7.3-fpm-alpine as deps
RUN apk update \
 && apk add \
    bash \
    imagemagick-libs \
    libgmpxx \
    libjpeg \
    libpng \
    libzip \
    rsync \
 &&:

RUN --mount=type=bind,source=scripts,target=/scripts /scripts/install-deps.sh

FROM deps as compile
RUN apk update \
 && apk add \
    autoconf \
    build-base \
    gmp-dev \
    imagemagick-dev \
    jpeg-dev \
    libpng-dev \
    libzip-dev \
 && docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
 && docker-php-ext-install \
    bcmath \
    exif \
    gd \
    gmp \
    mysqli \
    opcache \
    sockets \
    zip \
 && pecl install \
    imagick \
 && echo "extension=imagick.so" > /usr/local/etc/php/conf.d/imagick.ini \
 &&:

RUN --mount=type=bind,source=scripts,target=/scripts /scripts/compile.sh

FROM deps

@@ -59,13 +26,8 @@ ADD https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \
COPY wp.sh /usr/local/bin/wp
COPY --from=compile /usr/local/etc/php /usr/local/etc/php
COPY --from=compile /usr/local/lib/php /usr/local/lib/php
RUN wp core download --skip-content --locale=en_GB --version=${wp_version} \
 && rm wp-config-sample.php \
 && mkdir --mode=go+w media \
 && mkdir -p wp-content/mu-plugins \
 && curl https://raw.githubusercontent.com/Ayesh/WordPress-Password-Hash/1.5.1/wp-php-password-hash.php \
  > wp-content/mu-plugins/password-hash.php \
 &&:
RUN --mount=type=bind,source=scripts,target=/scripts \
    /scripts/install-wp.sh ${wp_version}

COPY opcache.ini /usr/local/etc/php/conf.d/opcache-recommended.ini
COPY entrypoint.sh /bin/entrypoint

scripts/compile.sh

0 → 100755
+37 −0
Original line number Diff line number Diff line
#!/bin/bash
set -eux

# Packaged build dependencies
BUILD_DEPS=(
	autoconf
	build-base
	gmp-dev
	imagemagick-dev
	jpeg-dev
	libpng-dev
	libzip-dev
)

# Distributed extensions
PHP_EXT=(
	bcmath
	exif
	gd
	gmp
	mysqli
	opcache
	sockets
	zip
)

# Install packaged dependencies
apk update
apk add "${BUILD_DEPS[@]}"

# Build & install distributed extensions
docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr
docker-php-ext-install "${PHP_EXT[@]}"

# Download, build & install the Image Magick extension
pecl install imagick
echo "extension=imagick.so" > /usr/local/etc/php/conf.d/imagick.ini
+13 −0
Original line number Diff line number Diff line
#!/bin/sh
set -eux

# Install packaged dependencies
apk update
apk add \
	bash \
	imagemagick-libs \
	libgmpxx \
	libjpeg \
	libpng \
	libzip \
	rsync \

scripts/install-wp.sh

0 → 100755
+18 −0
Original line number Diff line number Diff line
#!/bin/bash
set -eux

WP_PASSWORD_HASH=https://raw.githubusercontent.com/Ayesh/WordPress-Password-Hash/1.5.1

# Install Wordpress core
wp core download --skip-content --locale=en_GB --version=$1

# Clear away template PHP clutter
rm wp-config-sample.php

# Ensure needed directories are made with the correct permissions
mkdir --mode=go+w media
mkdir -p wp-content/mu-plugins

# Install non-optional plugins
curl ${WP_PASSWORD_HASH}/wp-php-password-hash.php \
	>wp-content/mu-plugins/password-hash.php