Rebase to 3.15, validate gpg signatures, change version detection.

This commit is contained in:
TheSpad 2022-08-19 17:33:28 +01:00
parent 8197063dca
commit e90dd4fd35
No known key found for this signature in database
GPG Key ID: 08F06191F4587860
8 changed files with 143 additions and 78 deletions

View File

@ -18,7 +18,7 @@ jobs:
fi
echo "**** External trigger running off of main branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_PHPMYADMIN_MAIN\". ****"
echo "**** Retrieving external version ****"
EXT_RELEASE=$(curl -u ${{ secrets.CR_USER }}:${{ secrets.CR_PAT }} -sX GET 'https://api.github.com/repos/phpmyadmin/phpmyadmin/releases' | jq -r '.[] | select (.prerelease==false)' | jq -rs 'max_by(.name | split(".") | map(tonumber)) | .name')
EXT_RELEASE=$(curl -sL 'https://www.phpmyadmin.net/home_page/version.txt' | head -n 1 | cut -d ' ' -f 1)
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
echo "**** Can't retrieve external version, exiting ****"
FAILURE_REASON="Can't retrieve external version for phpmyadmin branch main"

View File

@ -1,4 +1,4 @@
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.14
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.15
ARG BUILD_DATE
ARG VERSION
@ -6,35 +6,45 @@ ARG PHPMYADMIN_VERSION
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="TheSpad"
ARG PHPMYADMIN_RELEASE_GPG_KEY="3D06A59ECE730EB71B511C17CE752F178259BD92"
ENV MAX_EXECUTION_TIME 600
ENV MEMORY_LIMIT 512M
ENV UPLOAD_LIMIT 8192K
RUN \
apk add --no-cache --virtual=build-dependencies \
gpg \
gpg-agent \
gnupg-dirmngr && \
apk add -U --upgrade --no-cache \
curl \
jq \
php7-gd \
php7-bz2 \
php7-mysqli \
php7-opcache \
php7-iconv \
php7-dom \
php7-tokenizer \
php7-curl \
php7-zip && \
php8-gd \
php8-bz2 \
php8-mysqli \
php8-opcache \
php8-iconv \
php8-dom \
php8-tokenizer \
php8-curl \
php8-zip && \
echo "**** configure php-fpm to pass env vars ****" && \
sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php8/php-fpm.d/www.conf && \
grep -qxF 'clear_env = no' /etc/php8/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php8/php-fpm.d/www.conf && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php8/php-fpm.conf && \
echo "**** setup php opcache ****" && \
{ \
echo 'opcache.memory_consumption=128'; \
echo 'opcache.interned_strings_buffer=8'; \
echo 'opcache.max_accelerated_files=4000'; \
echo 'opcache.revalidate_freq=2'; \
echo 'opcache.fast_shutdown=1'; \
} > /etc/php7/conf.d/opcache-recommended.ini; \
} > /etc/php8/conf.d/opcache-recommended.ini; \
\
{ \
echo 'session.cookie_httponly=1'; \
echo 'session.use_strict_mode=1'; \
} > /etc/php7/conf.d/session-strict.ini; \
} > /etc/php8/conf.d/session-strict.ini; \
\
{ \
echo 'allow_url_fopen=Off'; \
@ -43,27 +53,38 @@ RUN \
echo 'memory_limit=${MEMORY_LIMIT}'; \
echo 'post_max_size=${UPLOAD_LIMIT}'; \
echo 'upload_max_filesize=${UPLOAD_LIMIT}'; \
} > /etc/php7/conf.d/phpmyadmin-misc.ini && \
} > /etc/php8/conf.d/phpmyadmin-misc.ini && \
echo "**** install phpmyadmin ****" && \
mkdir -p /app/phpmyadmin && \
mkdir -p /app/www/public && \
if [ -z ${PHPMYADMIN_VERSION+x} ]; then \
PHPMYADMIN_VERSION=$(curl -sX GET 'https://api.github.com/repos/phpmyadmin/phpmyadmin/releases' \
| jq -r '.[] | select (.prerelease==false)' \
| jq -rs 'max_by(.name | split(".") | map(tonumber)) | .name'); \
PHPMYADMIN_VERSION=$(curl -sL 'https://www.phpmyadmin.net/home_page/version.txt' \
| head -n 1 | cut -d ' ' -f 1); \
fi && \
curl -s -o \
/tmp/phpmyadmin.tar.xz -L \
"https://files.phpmyadmin.net/phpMyAdmin/${PHPMYADMIN_VERSION}/phpMyAdmin-${PHPMYADMIN_VERSION}-all-languages.tar.xz" && \
curl -s -o \
"/tmp/phpmyadmin.tar.xz.asc" -L \
"https://files.phpmyadmin.net/phpMyAdmin/${PHPMYADMIN_VERSION}/phpMyAdmin-${PHPMYADMIN_VERSION}-all-languages.tar.xz.asc" && \
export GNUPGHOME="$(mktemp -d)" && \
gpg --batch -q --keyserver keyserver.ubuntu.com --recv-keys "$PHPMYADMIN_RELEASE_GPG_KEY" \
|| gpg --batch -q --keyserver pgp.mit.edu --recv-keys "$PHPMYADMIN_RELEASE_GPG_KEY" \
|| gpg --batch -q --keyserver keyserver.pgp.com --recv-keys "$PHPMYADMIN_RELEASE_GPG_KEY" \
|| gpg --batch -q --keyserver keys.openpgp.org --recv-keys "$PHPMYADMIN_RELEASE_GPG_KEY" && \
if ! gpg --batch -q --verify "/tmp/phpmyadmin.tar.xz.asc" "/tmp/phpmyadmin.tar.xz"; then \
echo "File signature mismatch" \
exit 1; \
fi && \
tar xf \
/tmp/phpmyadmin.tar.xz -C \
/app/phpmyadmin/ --strip-components=1 && \
sed -i "s@'configFile' =>.*@'configFile' => '/config/phpmyadmin/config.inc.php',@" "/app/phpmyadmin/libraries/vendor_config.php" && \
sed -i 's@;clear_env = no@clear_env = no@' "/etc/php7/php-fpm.d/www.conf" && \
/app/www/public/ --strip-components=1 && \
sed -i "s@'configFile' =>.*@'configFile' => '/config/phpmyadmin/config.inc.php',@" "/app/www/public/libraries/vendor_config.php" && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/tmp/*
COPY root/ /
EXPOSE 80
VOLUME /config
EXPOSE 80 443

View File

@ -1,40 +1,49 @@
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.14
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.15
ARG BUILD_DATE
ARG VERSION
ARG PHPMYADMIN_VERSION
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="TheSpad"
ARG PHPMYADMIN_RELEASE_GPG_KEY="3D06A59ECE730EB71B511C17CE752F178259BD92"
ENV MAX_EXECUTION_TIME 600
ENV MEMORY_LIMIT 512M
ENV UPLOAD_LIMIT 8192K
RUN \
apk add --no-cache --virtual=build-dependencies \
gpg \
gpg-agent \
gnupg-dirmngr && \
apk add -U --upgrade --no-cache \
curl \
jq \
php7-gd \
php7-bz2 \
php7-mysqli \
php7-opcache \
php7-iconv \
php7-dom \
php7-tokenizer \
php7-curl \
php7-zip && \
php8-gd \
php8-bz2 \
php8-mysqli \
php8-opcache \
php8-iconv \
php8-dom \
php8-tokenizer \
php8-curl \
php8-zip && \
echo "**** configure php-fpm to pass env vars ****" && \
sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php8/php-fpm.d/www.conf && \
grep -qxF 'clear_env = no' /etc/php8/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php8/php-fpm.d/www.conf && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php8/php-fpm.conf && \
echo "**** setup php opcache ****" && \
{ \
echo 'opcache.memory_consumption=128'; \
echo 'opcache.interned_strings_buffer=8'; \
echo 'opcache.max_accelerated_files=4000'; \
echo 'opcache.revalidate_freq=2'; \
echo 'opcache.fast_shutdown=1'; \
} > /etc/php7/conf.d/opcache-recommended.ini; \
} > /etc/php8/conf.d/opcache-recommended.ini; \
\
{ \
echo 'session.cookie_httponly=1'; \
echo 'session.use_strict_mode=1'; \
} > /etc/php7/conf.d/session-strict.ini; \
} > /etc/php8/conf.d/session-strict.ini; \
\
{ \
echo 'allow_url_fopen=Off'; \
@ -43,27 +52,38 @@ RUN \
echo 'memory_limit=${MEMORY_LIMIT}'; \
echo 'post_max_size=${UPLOAD_LIMIT}'; \
echo 'upload_max_filesize=${UPLOAD_LIMIT}'; \
} > /etc/php7/conf.d/phpmyadmin-misc.ini && \
} > /etc/php8/conf.d/phpmyadmin-misc.ini && \
echo "**** install phpmyadmin ****" && \
mkdir -p /app/phpmyadmin && \
mkdir -p /app/www/public && \
if [ -z ${PHPMYADMIN_VERSION+x} ]; then \
PHPMYADMIN_VERSION=$(curl -sX GET 'https://api.github.com/repos/phpmyadmin/phpmyadmin/releases' \
| jq -r '.[] | select (.prerelease==false)' \
| jq -rs 'max_by(.name | split(".") | map(tonumber)) | .name'); \
PHPMYADMIN_VERSION=$(curl -sL 'https://www.phpmyadmin.net/home_page/version.txt' \
| head -n 1 | cut -d ' ' -f 1); \
fi && \
curl -s -o \
/tmp/phpmyadmin.tar.xz -L \
"https://files.phpmyadmin.net/phpMyAdmin/${PHPMYADMIN_VERSION}/phpMyAdmin-${PHPMYADMIN_VERSION}-all-languages.tar.xz" && \
curl -s -o \
"/tmp/phpmyadmin.tar.xz.asc" -L \
"https://files.phpmyadmin.net/phpMyAdmin/${PHPMYADMIN_VERSION}/phpMyAdmin-${PHPMYADMIN_VERSION}-all-languages.tar.xz.asc" && \
export GNUPGHOME="$(mktemp -d)" && \
gpg --batch -q --keyserver keyserver.ubuntu.com --recv-keys "$PHPMYADMIN_RELEASE_GPG_KEY" \
|| gpg --batch -q --keyserver pgp.mit.edu --recv-keys "$PHPMYADMIN_RELEASE_GPG_KEY" \
|| gpg --batch -q --keyserver keyserver.pgp.com --recv-keys "$PHPMYADMIN_RELEASE_GPG_KEY" \
|| gpg --batch -q --keyserver keys.openpgp.org --recv-keys "$PHPMYADMIN_RELEASE_GPG_KEY" && \
if ! gpg --batch -q --verify "/tmp/phpmyadmin.tar.xz.asc" "/tmp/phpmyadmin.tar.xz"; then \
echo "File signature mismatch" \
exit 1; \
fi && \
tar xf \
/tmp/phpmyadmin.tar.xz -C \
/app/phpmyadmin/ --strip-components=1 && \
sed -i "s@'configFile' =>.*@'configFile' => '/config/phpmyadmin/config.inc.php',@" "/app/phpmyadmin/libraries/vendor_config.php" && \
sed -i 's@;clear_env = no@clear_env = no@' "/etc/php7/php-fpm.d/www.conf" && \
/app/www/public/ --strip-components=1 && \
sed -i "s@'configFile' =>.*@'configFile' => '/config/phpmyadmin/config.inc.php',@" "/app/www/public/libraries/vendor_config.php" && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/tmp/*
COPY root/ /
EXPOSE 80
VOLUME /config
EXPOSE 80 443

View File

@ -1,40 +1,49 @@
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.14
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.15
ARG BUILD_DATE
ARG VERSION
ARG PHPMYADMIN_VERSION
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="TheSpad"
ARG PHPMYADMIN_RELEASE_GPG_KEY="3D06A59ECE730EB71B511C17CE752F178259BD92"
ENV MAX_EXECUTION_TIME 600
ENV MEMORY_LIMIT 512M
ENV UPLOAD_LIMIT 8192K
RUN \
apk add --no-cache --virtual=build-dependencies \
gpg \
gpg-agent \
gnupg-dirmngr && \
apk add -U --upgrade --no-cache \
curl \
jq \
php7-gd \
php7-bz2 \
php7-mysqli \
php7-opcache \
php7-iconv \
php7-dom \
php7-tokenizer \
php7-curl \
php7-zip && \
php8-gd \
php8-bz2 \
php8-mysqli \
php8-opcache \
php8-iconv \
php8-dom \
php8-tokenizer \
php8-curl \
php8-zip && \
echo "**** configure php-fpm to pass env vars ****" && \
sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php8/php-fpm.d/www.conf && \
grep -qxF 'clear_env = no' /etc/php8/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php8/php-fpm.d/www.conf && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php8/php-fpm.conf && \
echo "**** setup php opcache ****" && \
{ \
echo 'opcache.memory_consumption=128'; \
echo 'opcache.interned_strings_buffer=8'; \
echo 'opcache.max_accelerated_files=4000'; \
echo 'opcache.revalidate_freq=2'; \
echo 'opcache.fast_shutdown=1'; \
} > /etc/php7/conf.d/opcache-recommended.ini; \
} > /etc/php8/conf.d/opcache-recommended.ini; \
\
{ \
echo 'session.cookie_httponly=1'; \
echo 'session.use_strict_mode=1'; \
} > /etc/php7/conf.d/session-strict.ini; \
} > /etc/php8/conf.d/session-strict.ini; \
\
{ \
echo 'allow_url_fopen=Off'; \
@ -43,27 +52,38 @@ RUN \
echo 'memory_limit=${MEMORY_LIMIT}'; \
echo 'post_max_size=${UPLOAD_LIMIT}'; \
echo 'upload_max_filesize=${UPLOAD_LIMIT}'; \
} > /etc/php7/conf.d/phpmyadmin-misc.ini && \
} > /etc/php8/conf.d/phpmyadmin-misc.ini && \
echo "**** install phpmyadmin ****" && \
mkdir -p /app/phpmyadmin && \
mkdir -p /app/www/public && \
if [ -z ${PHPMYADMIN_VERSION+x} ]; then \
PHPMYADMIN_VERSION=$(curl -sX GET 'https://api.github.com/repos/phpmyadmin/phpmyadmin/releases' \
| jq -r '.[] | select (.prerelease==false)' \
| jq -rs 'max_by(.name | split(".") | map(tonumber)) | .name'); \
PHPMYADMIN_VERSION=$(curl -sL 'https://www.phpmyadmin.net/home_page/version.txt' \
| head -n 1 | cut -d ' ' -f 1); \
fi && \
curl -s -o \
/tmp/phpmyadmin.tar.xz -L \
"https://files.phpmyadmin.net/phpMyAdmin/${PHPMYADMIN_VERSION}/phpMyAdmin-${PHPMYADMIN_VERSION}-all-languages.tar.xz" && \
curl -s -o \
"/tmp/phpmyadmin.tar.xz.asc" -L \
"https://files.phpmyadmin.net/phpMyAdmin/${PHPMYADMIN_VERSION}/phpMyAdmin-${PHPMYADMIN_VERSION}-all-languages.tar.xz.asc" && \
export GNUPGHOME="$(mktemp -d)" && \
gpg --batch -q --keyserver keyserver.ubuntu.com --recv-keys "$PHPMYADMIN_RELEASE_GPG_KEY" \
|| gpg --batch -q --keyserver pgp.mit.edu --recv-keys "$PHPMYADMIN_RELEASE_GPG_KEY" \
|| gpg --batch -q --keyserver keyserver.pgp.com --recv-keys "$PHPMYADMIN_RELEASE_GPG_KEY" \
|| gpg --batch -q --keyserver keys.openpgp.org --recv-keys "$PHPMYADMIN_RELEASE_GPG_KEY" && \
if ! gpg --batch -q --verify "/tmp/phpmyadmin.tar.xz.asc" "/tmp/phpmyadmin.tar.xz"; then \
echo "File signature mismatch" \
exit 1; \
fi && \
tar xf \
/tmp/phpmyadmin.tar.xz -C \
/app/phpmyadmin/ --strip-components=1 && \
sed -i "s@'configFile' =>.*@'configFile' => '/config/phpmyadmin/config.inc.php',@" "/app/phpmyadmin/libraries/vendor_config.php" && \
sed -i 's@;clear_env = no@clear_env = no@' "/etc/php7/php-fpm.d/www.conf" && \
/app/www/public/ --strip-components=1 && \
sed -i "s@'configFile' =>.*@'configFile' => '/config/phpmyadmin/config.inc.php',@" "/app/www/public/libraries/vendor_config.php" && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/tmp/*
COPY root/ /
EXPOSE 80
VOLUME /config
EXPOSE 80 443

2
Jenkinsfile vendored
View File

@ -107,7 +107,7 @@ pipeline {
steps{
script{
env.EXT_RELEASE = sh(
script: ''' curl -sX GET 'https://api.github.com/repos/phpmyadmin/phpmyadmin/releases' | jq -r '.[] | select (.prerelease==false)' | jq -rs 'max_by(.name | split(".") | map(tonumber)) | .name' ''',
script: ''' curl -sL 'https://www.phpmyadmin.net/home_page/version.txt' | head -n 1 | cut -d ' ' -f 1 ''',
returnStdout: true).trim()
env.RELEASE_LINK = 'custom_command'
}

View File

@ -60,11 +60,11 @@ The architectures supported by this image are:
## Application Setup
For more information check out the [phpmyadmin documentation](https://www.phpmyadmin.net/docs/).
This image uses nginx, in contrast to the official images which offer fpm-only or Apache variants.
We support all of the official [environment variables](https://docs.phpmyadmin.net/en/latest/setup.html#docker-environment-variables) for configuration as well as directly editing the config files.
# changelog
For more information check out the [phpmyadmin documentation](https://www.phpmyadmin.net/docs/).
## Usage
@ -231,5 +231,6 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
* **20.08.22:** - Rebasing to Alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base)).
* **23.01.22:** - Pin versions to 5.x.x.
* **14.06.21:** - Initial Release.

View File

@ -3,7 +3,7 @@
# jenkins variables
project_name: docker-phpmyadmin
external_type: na
custom_version_command: "curl -sX GET 'https://api.github.com/repos/phpmyadmin/phpmyadmin/releases' | jq -r '.[] | select (.prerelease==false)' | jq -rs 'max_by(.name | split(\".\") | map(tonumber)) | .name'"
custom_version_command: "curl -sL 'https://www.phpmyadmin.net/home_page/version.txt' | head -n 1 | cut -d ' ' -f 1"
release_type: stable
release_tag: latest
ls_branch: main

View File

@ -39,11 +39,14 @@ param_volumes:
# application setup block
app_setup_block_enabled: true
app_setup_block: |
For more information check out the [phpmyadmin documentation](https://www.phpmyadmin.net/docs/).
This image uses nginx, in contrast to the official images which offer fpm-only or Apache variants.
We support all of the official [environment variables](https://docs.phpmyadmin.net/en/latest/setup.html#docker-environment-variables) for configuration as well as directly editing the config files.
# changelog
For more information check out the [phpmyadmin documentation](https://www.phpmyadmin.net/docs/).
# changelog
changelogs:
- { date: "20.08.22:", desc: "Rebasing to Alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base))." }
- { date: "23.01.22:", desc: "Pin versions to 5.x.x." }
- { date: "14.06.21:", desc: "Initial Release." }