From a1b8a7fd441d51b8bf2f1c887f87fdf16f4fc297 Mon Sep 17 00:00:00 2001 From: "Arnaud G. GIBERT" Date: Sat, 5 Oct 2024 18:19:58 +0200 Subject: [PATCH] - Now use rx3/php-apache-mga9:1.3.3 image: - PHP memory limit increased from 128M to 512M, - mpm support, - pwauth support, - Remove now unneeded pwauth install & PHP config. - Now use rx3/mariadb-mga9:1.0.2 - Variabilization of external server ports in env & compose file, - Now use docker_tools for .env building, - local directory normalization, - fix ampache.cfg.php.dist initialization. --- .env | 37 ----------- Dockerfile | 44 ++++++------- ReadMe.txt | 2 +- ReleaseNotes.txt | 17 +++++ compose.yaml | 82 ++++++++++++------------ env.dist | 97 +++++++++++++++++++++++++++++ etc/ampache-external/.gitignore | 4 ++ etc/ampache-internal/.gitignore | 4 ++ etc/cron.d/.gitignore | 4 ++ opt/music/.gitignore | 4 ++ opt/video/.gitignore | 4 ++ var/lib/.gitignore | 4 ++ var/log/ampache-external/.gitignore | 4 ++ var/log/ampache-internal/.gitignore | 4 ++ 14 files changed, 208 insertions(+), 103 deletions(-) delete mode 100644 .env create mode 100644 env.dist create mode 100644 etc/ampache-external/.gitignore create mode 100644 etc/ampache-internal/.gitignore create mode 100644 etc/cron.d/.gitignore create mode 100644 opt/music/.gitignore create mode 100644 opt/video/.gitignore create mode 100644 var/lib/.gitignore create mode 100644 var/log/ampache-external/.gitignore create mode 100644 var/log/ampache-internal/.gitignore diff --git a/.env b/.env deleted file mode 100644 index 337dac7..0000000 --- a/.env +++ /dev/null @@ -1,37 +0,0 @@ -# Rx3 Ampache Mageia-9 Docker Image -#------------------------------------------------------------------------------- - -#------------------------------------------------------------------------------- -# Global Settings -#------------------------------------------------------------------------------- - -IMG_ORG="rx3" -IMG_REGISTRY="docker.xor.rx3:5000" -IMG_URL_PREFIX="${IMG_REGISTRY}/${IMG_ORG}" - - - -#------------------------------------------------------------------------------- -# Image Settings -#------------------------------------------------------------------------------- - - -IMG_NAME="ampache-mga9" -IMG_FULL_NAME="Rx3 Ampache Mageia-9 Docker Image" -IMG_VERSION="1.2.1" -IMG_URL="${IMG_URL_PREFIX}/${IMG_NAME}:${IMG_VERSION}" -IMG_MAINTAINER='"Arnaud G. GIBERT" ' - - - -#------------------------------------------------------------------------------- -# User Settings -#------------------------------------------------------------------------------- - -MARIADB_UID=983 -MARIADB_GID=981 -MARIADB_ROOT_HOST='%' # needs to be enclosed with quotes -MARIADB_ROOT_PASSWORD="mysqladmin" -MARIADB_DATABASE="ampache" -MARIADB_USER="ampache" -MARIADB_PASSWORD="ampacheadmin" diff --git a/Dockerfile b/Dockerfile index 82e958d..e67f806 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ ARG IMG_URL_PREFIX="rx3" -FROM ${IMG_URL_PREFIX}/php-apache-mga9:1.3.2 +FROM ${IMG_URL_PREFIX}/php-apache-mga9:1.3.3 ARG IMG_NAME ARG IMG_FULL_NAME @@ -12,7 +12,7 @@ ARG IMG_MAINTAINER ARG AMPACHE_VERSION=6.6.0 -ENV DISABLE_INOTIFYWAIT_CLEAN 0 +ENV DISABLE_INOTIFYWAIT_CLEAN=0 LABEL org.rx3.${IMG_NAME}.name=${IMG_FULL_NAME} LABEL org.rx3.${IMG_NAME}.version=${IMG_VERSION} @@ -24,11 +24,9 @@ LABEL maintainer=${IMG_MAINTAINER} #--------------------------------------------------------------------------------------------------- ARG AMPACHE='#!/bin/bash \n\ \n\ -cp -f /var/www/config/ampache.cfg.php.dist /var/www/config \n\ +cp -f /var/tmp/ampache.cfg.php.dist /var/www/config \n\ \n\ -chown -R apache:apache /var/www/config /var/log/ampache \n\ -chgrp apache /usr/bin/pwauth \n\ -chmod u+s /usr/bin/pwauth' +chown -R apache:apache /var/www/config /var/log/ampache' #--------------------------------------------------------------------------------------------------- #--------------------------------------------------------------------------------------------------- @@ -41,24 +39,22 @@ PATH=/bin:/usr/bin:/usr/local/bin:/usr/local/sbin -RUN urpmi --force wget ffmpeg lib64opencl1 flac inotify-tools lame lib64avcodec59 lib64event7 lib64mp3lame-devel lib64theora-devel lib64vorbis-devel lib64vpx-devel php-iconv php-curl php-gd php-intl php-ldap php-sabre-xml php-zip supervisor vorbis-tools zip unzip pwauth \ - && mkdir -p /var/log/ampache \ - && wget -q -O /tmp/ampache.zip https://github.com/ampache/ampache/releases/download/${AMPACHE_VERSION}/ampache-${AMPACHE_VERSION}_all_php8.2.zip \ - && unzip /tmp/ampache.zip -d /var/www \ - && sed -i -e 's/$transcode_cfg != '"'"'never'"'"'/$transcode_cfg != '"'"'ever'"'"'/' /var/www/src/Module/Util/Waveform.php \ - && sed -i -e 's/ || static::getUserRepository()->idByEmail($email) > 0//' /var/www/src/Repository/Model/User.php \ - && cp -f /var/www/public/rest/.htaccess.dist /var/www/public/rest/.htaccess \ - && cp -f /var/www/public/play/.htaccess.dist /var/www/public/play/.htaccess \ - && cp -f /var/www/config/ampache.cfg.php.dist /var/tmp \ - && rm -f /tmp/ampache.zip /var/www/public/.php*cs* /var/www/public/.sc /var/www/public/.scrutinizer.yml /var/www/public/.tgitconfig /var/www/public/.travis.yml /var/www/public/*.md \ - && find /var/www -type d -name ".git*" -print0 | xargs -0 rm -rf {} \ - && chown -R root:root /var/www \ - && chmod -R 775 /var/www \ - && echo -e "${AMPACHE}" | sed -e "s/\`/'/g" -e 's/ *$//' > /etc/init.d/ampache \ - && chmod a+x /etc/init.d/ampache \ - && ln -s /etc/init.d/ampache /etc/rcD.d/S40ampache \ - && sed -i -e "s/upload_max_filesize = 16M/upload_max_filesize = 32M/" /etc/php.d/01_fileuploads.ini \ - && sed -i -e "s/post_max_size = 8M/post_max_size = 32M/" /etc/php.d/01_datahandling.ini +RUN urpmi --force wget ffmpeg lib64opencl1 flac inotify-tools lame lib64avcodec59 lib64event7 lib64mp3lame-devel lib64theora-devel lib64vorbis-devel lib64vpx-devel php-iconv php-curl php-gd php-intl php-ldap php-sabre-xml php-zip vorbis-tools zip unzip \ + && mkdir -p /var/log/ampache \ + && wget -q -O /tmp/ampache.zip https://github.com/ampache/ampache/releases/download/${AMPACHE_VERSION}/ampache-${AMPACHE_VERSION}_all_php8.2.zip \ + && unzip /tmp/ampache.zip -d /var/www \ + && sed -i -e 's/$transcode_cfg != '"'"'never'"'"'/$transcode_cfg != '"'"'ever'"'"'/' /var/www/src/Module/Util/Waveform.php \ + && sed -i -e 's/ || static::getUserRepository()->idByEmail($email) > 0//' /var/www/src/Repository/Model/User.php \ + && cp -f /var/www/public/rest/.htaccess.dist /var/www/public/rest/.htaccess \ + && cp -f /var/www/public/play/.htaccess.dist /var/www/public/play/.htaccess \ + && cp -f /var/www/config/ampache.cfg.php.dist /var/tmp \ + && rm -f /tmp/ampache.zip /var/www/public/.php*cs* /var/www/public/.sc /var/www/public/.scrutinizer.yml /var/www/public/.tgitconfig /var/www/public/.travis.yml /var/www/public/*.md \ + && find /var/www -type d -name ".git*" -print0 | xargs -0 rm -rf {} \ + && chown -R root:root /var/www \ + && chmod -R 775 /var/www \ + && echo -e "${AMPACHE}" | sed -e "s/\`/'/g" -e 's/ *$//' > /etc/init.d/ampache \ + && chmod a+x /etc/init.d/ampache \ + && ln -s /etc/init.d/ampache /etc/rcD.d/S40ampache VOLUME ["/var/www/html/config"] diff --git a/ReadMe.txt b/ReadMe.txt index 66f6835..5934ffd 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -5,7 +5,7 @@ Welcome to Rx3/Ampache-Mga9 docker image! This is project aims to build a Ampache + Mageia 9 docker image. Features: - - Based on rx3/php-apache-mga9:1.3.2 & rx3/mariadb-mga9:1.0.1 images, + - Based on rx3/php-apache-mga9:1.3.3 & rx3/mariadb-mga9:1.0.2 images, - Support mysql & external pwauth authentication. diff --git a/ReleaseNotes.txt b/ReleaseNotes.txt index 5b7fd65..0f3c502 100644 --- a/ReleaseNotes.txt +++ b/ReleaseNotes.txt @@ -1,3 +1,20 @@ +------------------------------------------------------------------------------------------------------------------------------------ +Rx3/Ampache-Mga9 V 1.2.2 - A. GIBERT - 2024/10/06 +------------------------------------------------------------------------------------------------------------------------------------ + +- Now use rx3/php-apache-mga9:1.3.3 image: + - PHP memory limit increased from 128M to 512M, + - mpm support, + - pwauth support, +- Remove now unneeded pwauth install & PHP config. +- Now use rx3/mariadb-mga9:1.0.2 +- Variabilization of external server ports in env & compose file, +- Now use docker_tools for .env building, +- local directory normalization, +- fix ampache.cfg.php.dist initialization. + + + ------------------------------------------------------------------------------------------------------------------------------------ Rx3/Ampache-Mga9 V 1.2.1 - A. GIBERT - 2024/08/28 ------------------------------------------------------------------------------------------------------------------------------------ diff --git a/compose.yaml b/compose.yaml index 367f2c3..4568826 100644 --- a/compose.yaml +++ b/compose.yaml @@ -1,13 +1,13 @@ # Rx3 Ampache Mageia-9 Docker Image #------------------------------------------------------------------------------- -name: ${IMG_NAME} +name: ${APPL_NAME} services: database: - container_name: ${IMG_NAME}-mysql + container_name: ${DATABASE_CONT_NAME} - image: ${IMG_URL_PREFIX}/mariadb-mga9:1.0.1 + image: ${DATABASE_IMG} environment: MARIADB_UID: ${MARIADB_UID} @@ -19,86 +19,86 @@ services: MARIADB_PASSWORD: ${MARIADB_PASSWORD} volumes: - - ./mysql:/var/lib/mysql + - ./var/lib/mysql:/var/lib/mysql networks: - - ampache + - appl ports: - - "127.0.0.1:9006:9001" - - "127.0.0.1:8006:3306" + - "127.0.0.1:${DATABASE_SV_PORT}:9001" + - "127.0.0.1:${DATABASE_PORT}:3306" webapp-internal: - container_name: ${IMG_NAME}-internal + container_name: ${WEBAPP_INT_CONT_NAME} - image: ${IMG_URL} + image: ${WEBAPP_IMG} build: context: . args: - - IMG_NAME=${IMG_NAME} - - IMG_FULL_NAME=${IMG_FULL_NAME} - - IMG_VERSION=${IMG_VERSION} - - IMG_MAINTAINER=${IMG_MAINTAINER} - - IMG_URL_PREFIX=${IMG_URL_PREFIX} + - IMG_NAME=${APPL_NAME} + - IMG_FULL_NAME=${APPL_FULL_NAME} + - IMG_VERSION=${APPL_VERSION} + - IMG_MAINTAINER=${APPL_MAINTAINER} + - IMG_URL_PREFIX=${APPL_URL_PREFIX} restart: unless-stopped environment: - - APACHE_UID=980 - - APACHE_GID=977 - - APACHE_DOC_ROOT=/var/www/public - - DISABLE_INOTIFYWAIT_CLEAN=1 + APACHE_UID: ${APACHE_UID} + APACHE_GID: ${APACHE_GID} + APACHE_DOC_ROOT: ${APACHE_DOC_ROOT} volumes: - - ./ampache-internal/config:/var/www/config - - ./ampache-internal/log:/var/log/ampache + - ./etc/ampache-internal:/var/www/config + - ./var/log/ampache-internal:/var/log/ampache - ./etc/cron.d/ampache:/etc/cron.d/ampache:ro - /etc/passwd:/etc/passwd:ro - /etc/group:/etc/group:ro - /etc/shadow:/etc/shadow:ro - - ./media/music:/media/music - - ./media/video:/media/video + - ${MUSIC_REPO}:/media/music + - ${VIDEO_REPO}:/media/video networks: - - ampache + - appl + ports: - - "127.0.0.1:9085:9001" - - "127.0.0.1:8085:80" + - "127.0.0.1:${WEBAPP_INT_SV_PORT}:9001" + - "127.0.0.1:${WEBAPP_INT_PORT}:80" webapp-external: - container_name: ${IMG_NAME}-external + container_name: ${WEBAPP_EXT_CONT_NAME} - image: ${IMG_URL} + image: ${WEBAPP_IMG} restart: unless-stopped environment: - - APACHE_UID=980 - - APACHE_GID=977 - - APACHE_DOC_ROOT=/var/www/public - - DISABLE_INOTIFYWAIT_CLEAN=1 + APACHE_UID: ${APACHE_UID} + APACHE_GID: ${APACHE_GID} + APACHE_DOC_ROOT: ${APACHE_DOC_ROOT} volumes: - - ./ampache-external/config:/var/www/config - - ./ampache-external/log:/var/log/ampache + - ./etc/ampache-external:/var/www/config + - ./var/log/ampache-external:/var/log/ampache - /etc/passwd:/etc/passwd:ro - /etc/group:/etc/group:ro - - ./media/music:/media/music - - ./media/video:/media/video + - ${MUSIC_REPO}:/media/music + - ${VIDEO_REPO}:/media/video networks: - - ampache + - appl + ports: - - "127.0.0.1:9086:9001" - - "127.0.0.1:8086:80" + - "127.0.0.1:${WEBAPP_EXT_SV_PORT}:9001" + - "127.0.0.1:${WEBAPP_EXT_PORT}:80" networks: - ampache: - name: ampache + appl: + name: ${NETWORK_NAME} driver: bridge driver_opts: - com.docker.network.bridge.name: br-ampache + com.docker.network.bridge.name: ${NETWORK_IF_NAME} ipam: config: - subnet: 10.2.33.0/24 diff --git a/env.dist b/env.dist new file mode 100644 index 0000000..46c3389 --- /dev/null +++ b/env.dist @@ -0,0 +1,97 @@ +# Rx3 Ampache Mageia-9 Docker Image +#------------------------------------------------------------------------------- + +#------------------------------------------------------------------------------- +# Global Settings +#------------------------------------------------------------------------------- + +APPL_ORG="rx3" +APPL_REGISTRY="docker.xor.rx3:5000" +APPL_URL_PREFIX="${APPL_REGISTRY}/${APPL_ORG}" + + + +#------------------------------------------------------------------------------- +# Image Settings +#------------------------------------------------------------------------------- + +APPL_NAME="ampache-mga9" +APPL_FULL_NAME="Rx3 Ampache Mageia-9 Docker Image" +APPL_SHORT_NAME="ampache" +APPL_VERSION="1.2.2" +APPL_URL="${APPL_URL_PREFIX}/${APPL_NAME}:${APPL_VERSION}" +APPL_MAINTAINER='"Arnaud G. GIBERT" ' + + + +#------------------------------------------------------------------------------- +# User Settings +#------------------------------------------------------------------------------- + +#APPL_ENV="prd" +#APPL_ENV="tst" +#APPL_ENV="int" +APPL_ENV="dvp" + +MUSIC_REPO="./opt/music" +VIDEO_REPO="./opt/video" + + + +#------------------------------------------------------------------------------- +# Common +#------------------------------------------------------------------------------- + +if [[ "${APPL_ENV}" != "prod" ]] +then + APPL_SUFFIX="-${APPL_ENV}" + ENV_PORT_OFFSET=100 +else + APPL_SUFFIX="" + ENV_PORT_OFFSET=0 +fi + +CONT_NAME_PREFIX=${APPL_NAME/-mga9}${APPL_SUFFIX} + +SV_PORT_OFFSET=1000 +NETWORK_NAME=${CONT_NAME_PREFIX} +NETWORK_IF_NAME=br-${APPL_SHORT_NAME}-${APPL_ENV} + + + +#------------------------------------------------------------------------------- +# Database +#------------------------------------------------------------------------------- + +DATABASE_IMG=${APPL_URL_PREFIX}/mariadb-mga9:1.0.2 +DATABASE_CONT_NAME="${CONT_NAME_PREFIX}-database" +DATABASE_PORT=$(( 8006 + ${ENV_PORT_OFFSET})) +DATABASE_SV_PORT=$(( ${DATABASE_PORT} + ${SV_PORT_OFFSET})) + +MARIADB_UID=983 +MARIADB_GID=981 +MARIADB_ROOT_HOST='%' # needs to be enclosed with quotes +MARIADB_ROOT_PASSWORD="mysqladmin" +MARIADB_DATABASE="ampache" +MARIADB_USER="ampache" +MARIADB_PASSWORD="ampacheadmin" + + + +#------------------------------------------------------------------------------- +# WebApp +#------------------------------------------------------------------------------- + +WEBAPP_IMG=${APPL_URL} + +WEBAPP_INT_CONT_NAME="${CONT_NAME_PREFIX}-webapp-internal" +WEBAPP_INT_PORT=$(( 8085 + ${ENV_PORT_OFFSET})) +WEBAPP_INT_SV_PORT=$(( ${WEBAPP_INT_PORT} + ${SV_PORT_OFFSET})) + +WEBAPP_EXT_CONT_NAME="${CONT_NAME_PREFIX}-webapp-external" +WEBAPP_EXT_PORT=$(( ${WEBAPP_INT_PORT} + 1)) +WEBAPP_EXT_SV_PORT=$(( ${WEBAPP_EXT_PORT} + ${SV_PORT_OFFSET})) + +APACHE_UID=980 +APACHE_GID=977 +APACHE_DOC_ROOT=/var/www/public diff --git a/etc/ampache-external/.gitignore b/etc/ampache-external/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/etc/ampache-external/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/etc/ampache-internal/.gitignore b/etc/ampache-internal/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/etc/ampache-internal/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/etc/cron.d/.gitignore b/etc/cron.d/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/etc/cron.d/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/opt/music/.gitignore b/opt/music/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/opt/music/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/opt/video/.gitignore b/opt/video/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/opt/video/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/var/lib/.gitignore b/var/lib/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/var/lib/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/var/log/ampache-external/.gitignore b/var/log/ampache-external/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/var/log/ampache-external/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/var/log/ampache-internal/.gitignore b/var/log/ampache-internal/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/var/log/ampache-internal/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore