From 7098da809f933d1e707e3c80c45c3272b6d1e36c Mon Sep 17 00:00:00 2001 From: Roxedus Date: Sun, 22 Aug 2021 01:18:52 +0200 Subject: [PATCH] Rebase to Alpine 3.14 and PHP 8 --- Dockerfile | 33 +++++++++++++++++---------------- Dockerfile.aarch64 | 33 +++++++++++++++++---------------- Dockerfile.armhf | 33 +++++++++++++++++---------------- README.md | 1 + readme-vars.yml | 1 + 5 files changed, 53 insertions(+), 48 deletions(-) diff --git a/Dockerfile b/Dockerfile index e135a3f..cbd5c96 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.13 +FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.14-php8 # set version label ARG BUILD_DATE @@ -7,26 +7,29 @@ ARG GROCY_RELEASE LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="alex-phillips, homerr" -##FIXME: Once PHP8 is integrated, remove the sed statements for composer! RUN \ echo "**** install build packages ****" && \ apk add --no-cache --virtual=build-dependencies \ git \ - composer \ yarn && \ echo "**** install runtime packages ****" && \ apk add --no-cache \ curl \ - php7 \ - php7-ctype \ - php7-intl \ - php7-ldap \ - php7-gd \ - php7-json \ - php7-pdo \ - php7-pdo_sqlite \ - php7-tokenizer \ - php7-zlib && \ + php8-ctype \ + php8-curl \ + php8-gd \ + php8-iconv \ + php8-intl \ + php8-json \ + php8-ldap \ + php8-pdo \ + php8-pdo_sqlite \ + php8-phar \ + php8-tokenizer \ + php8-zip && \ + echo "**** install composer ****" && \ + php8 -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ + php8 composer-setup.php --install-dir=/tmp --filename=composer && \ echo "**** install grocy ****" && \ mkdir -p /app/grocy && \ if [ -z ${GROCY_RELEASE+x} ]; then \ @@ -42,9 +45,7 @@ RUN \ cp -R /app/grocy/data/plugins \ /defaults/plugins && \ echo "**** install composer packages ****" && \ - sed -i 's/[[:blank:]]*"php": ">=8.0",/"php": ">=7.4",/g' /app/grocy/composer.json && \ - sed -i 's/[[:blank:]]*"php": ">=8.0"/"php": ">=7.4"/g' /app/grocy/composer.lock && \ - composer install -d /app/grocy --no-dev && \ + php8 /tmp/composer install -d /app/grocy --no-dev && \ echo "**** install yarn packages ****" && \ cd /app/grocy && \ yarn --production && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index e5dae34..5ca1072 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,4 +1,4 @@ -FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.13 +FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.14-php8 # set version label ARG BUILD_DATE @@ -7,26 +7,29 @@ ARG GROCY_RELEASE LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="alex-phillips, homerr" -##FIXME: Once PHP8 is integrated, remove the sed statements for composer! RUN \ echo "**** install build packages ****" && \ apk add --no-cache --virtual=build-dependencies \ git \ - composer \ yarn && \ echo "**** install runtime packages ****" && \ apk add --no-cache \ curl \ - php7 \ - php7-ctype \ - php7-intl \ - php7-ldap \ - php7-gd \ - php7-json \ - php7-pdo \ - php7-pdo_sqlite \ - php7-tokenizer \ - php7-zlib && \ + php8-ctype \ + php8-curl \ + php8-gd \ + php8-iconv \ + php8-intl \ + php8-json \ + php8-ldap \ + php8-pdo \ + php8-pdo_sqlite \ + php8-phar \ + php8-tokenizer \ + php8-zip && \ + echo "**** install composer ****" && \ + php8 -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ + php8 composer-setup.php --install-dir=/tmp --filename=composer && \ echo "**** install grocy ****" && \ mkdir -p /app/grocy && \ if [ -z ${GROCY_RELEASE+x} ]; then \ @@ -42,9 +45,7 @@ RUN \ cp -R /app/grocy/data/plugins \ /defaults/plugins && \ echo "**** install composer packages ****" && \ - sed -i 's/[[:blank:]]*"php": ">=8.0",/"php": ">=7.4",/g' /app/grocy/composer.json && \ - sed -i 's/[[:blank:]]*"php": ">=8.0"/"php": ">=7.4"/g' /app/grocy/composer.lock && \ - composer install -d /app/grocy --no-dev && \ + php8 /tmp/composer install -d /app/grocy --no-dev && \ echo "**** install yarn packages ****" && \ cd /app/grocy && \ yarn --production && \ diff --git a/Dockerfile.armhf b/Dockerfile.armhf index 3d0c521..10492c8 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -1,4 +1,4 @@ -FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.13 +FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.14-php8 # set version label ARG BUILD_DATE @@ -7,26 +7,29 @@ ARG GROCY_RELEASE LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="alex-phillips, homerr" -##FIXME: Once PHP8 is integrated, remove the sed statements for composer! RUN \ echo "**** install build packages ****" && \ apk add --no-cache --virtual=build-dependencies \ git \ - composer \ yarn && \ echo "**** install runtime packages ****" && \ apk add --no-cache \ curl \ - php7 \ - php7-ctype \ - php7-intl \ - php7-ldap \ - php7-gd \ - php7-json \ - php7-pdo \ - php7-pdo_sqlite \ - php7-tokenizer \ - php7-zlib && \ + php8-ctype \ + php8-curl \ + php8-gd \ + php8-iconv \ + php8-intl \ + php8-json \ + php8-ldap \ + php8-pdo \ + php8-pdo_sqlite \ + php8-phar \ + php8-tokenizer \ + php8-zip && \ + echo "**** install composer ****" && \ + php8 -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ + php8 composer-setup.php --install-dir=/tmp --filename=composer && \ echo "**** install grocy ****" && \ mkdir -p /app/grocy && \ if [ -z ${GROCY_RELEASE+x} ]; then \ @@ -42,9 +45,7 @@ RUN \ cp -R /app/grocy/data/plugins \ /defaults/plugins && \ echo "**** install composer packages ****" && \ - sed -i 's/[[:blank:]]*"php": ">=8.0",/"php": ">=7.4",/g' /app/grocy/composer.json && \ - sed -i 's/[[:blank:]]*"php": ">=8.0"/"php": ">=7.4"/g' /app/grocy/composer.lock && \ - composer install -d /app/grocy --no-dev && \ + php8 /tmp/composer install -d /app/grocy --no-dev && \ echo "**** install yarn packages ****" && \ cd /app/grocy && \ yarn --production && \ diff --git a/README.md b/README.md index 7c2167e..61df8ae 100644 --- a/README.md +++ b/README.md @@ -224,6 +224,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **22.08.21:** - Rebase to Alpine 3.14 and PHP 8. * **25.07.21:** - Add 'int','json' and 'zlib' PHP extensions. * **10.05.21:** - Reduce image size. * **08.04.21:** - Update docs to reflect jenkins builder changes. diff --git a/readme-vars.yml b/readme-vars.yml index fb27245..fa9dc1b 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -39,6 +39,7 @@ app_setup_block: | # changelog changelogs: + - { date: "22.08.21:", desc: "Rebase to Alpine 3.14 and PHP 8." } - { date: "25.07.21:", desc: "Add 'int','json' and 'zlib' PHP extensions." } - { date: "10.05.21:", desc: "Reduce image size." } - { date: "08.04.21:", desc: "Update docs to reflect jenkins builder changes." }