diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0ab0904..6601e29 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,24 +13,40 @@ jobs: strategy: matrix: mediawiki_version: [1.31, 1.35, 1.36, 1.37] - dbtype: [sqlite, mysql] + database_type: [sqlite, mysql] + + services: + mysql: + image: mariadb:latest + env: + MYSQL_ROOT_PASSWORD: database + ports: + - 3306 + options: --name mysql --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=10 steps: + - name: Check MySQL + run: | + mysql --version + mysql --host 127.0.0.1 --port ${{ job.services.mysql.ports['3306'] }} -uroot -pdatabase -e "SELECT @@VERSION" + - name: Checkout uses: actions/checkout@v2 - name: Retrieve MediaWiki version run: | - echo "TAG_NAME=$(cat ./${{ matrix.mediawiki_version }}/Dockerfile | sed -n -e 's/^.*FROM mediawiki://p')" >> $GITHUB_ENV + echo "TAG_NAME=$(cat ./${{ matrix.mediawiki_version }}/${{ matrix.database_type }}/Dockerfile | sed -n -e 's/^.*FROM mediawiki://p')" >> $GITHUB_ENV - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v1 + with: + driver-opts: network=host - name: Cache Docker layers uses: actions/cache@v2 with: - path: /tmp/.buildx-cache/${{ matrix.mediawiki_version }} + path: /tmp/.buildx-cache/${{ matrix.mediawiki_version }}/${{ matrix.database_type }} key: ${{ runner.os }}-buildx-${{ github.sha }} restore-keys: | ${{ runner.os }}-buildx- @@ -40,17 +56,43 @@ jobs: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} + ## Create a timestamp to disable cache for install.php RUN to force populating the database + - name: Get timestamp + id: date + run: echo "::set-output name=date::$(date +%s)" + - name: Build and push id: docker_build uses: docker/build-push-action@v2 with: context: ./ - file: ./${{ matrix.mediawiki_version }}/Dockerfile + file: ./${{ matrix.mediawiki_version }}/${{ matrix.database_type }}/Dockerfile + network: host + allow: network.host + build-args: | + MYSQL_PORT=${{ job.services.mysql.ports['3306'] }} + CACHEBUST=${{ steps.date.outputs.date }} builder: ${{ steps.buildx.outputs.name }} push: true - tags: gesinn/docker-mediawiki:${{ matrix.mediawiki_version }}, gesinn/docker-mediawiki:${{ env.TAG_NAME }} - cache-from: type=local,src=/tmp/.buildx-cache/${{ matrix.mediawiki_version }} - cache-to: type=local,dest=/tmp/.buildx-cache/${{ matrix.mediawiki_version }} + tags: gesinn/docker-mediawiki-${{ matrix.database_type }}:${{ matrix.mediawiki_version }}, gesinn/docker-mediawiki-${{ matrix.database_type }}:${{ env.TAG_NAME }} + cache-from: type=local,src=/tmp/.buildx-cache/${{ matrix.mediawiki_version }}/${{ matrix.database_type }} + cache-to: type=local,dest=/tmp/.buildx-cache/${{ matrix.mediawiki_version }}/${{ matrix.database_type }} - name: Image digest run: echo ${{ steps.docker_build.outputs.digest }} + + - name: Dump MySQL database + run: | + mysql --host 127.0.0.1 --port ${{ job.services.mysql.ports['3306'] }} -uroot -pdatabase -e "SHOW DATABASES" + mysql --host 127.0.0.1 --port ${{ job.services.mysql.ports['3306'] }} -uroot -pdatabase -e "SHOW TABLES FROM wiki" + mysqldump -uroot -pdatabase --host 127.0.0.1 --port ${{ job.services.mysql.ports['3306'] }} --default-character-set=utf8 --single-transaction --quick --column-statistics=0 wiki -c | bzip2 -cz9 > mediawiki-mysql-${{ env.TAG_NAME }}.sql.bz2 + if: matrix.database_type == 'mysql' + + - name: Create Tag and upload MySQL dump as artifact + uses: ncipollo/release-action@v1 + with: + tag: ${{ env.TAG_NAME }} + allowUpdates: true + artifacts: mediawiki-mysql-${{ env.TAG_NAME }}.sql.bz2 + token: ${{ secrets.GITHUB_TOKEN }} + if: matrix.database_type == 'mysql' \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..485dee6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea diff --git a/1.31/mysql/Dockerfile b/1.31/mysql/Dockerfile new file mode 100644 index 0000000..8d156e1 --- /dev/null +++ b/1.31/mysql/Dockerfile @@ -0,0 +1,81 @@ +################################################### +# gesinn-it/docker-mediawiki:mw-1.31.16 +# +# MEDIAWIKI_VERSION: MediaWiki Version +# COMPOSER_VERSION: Composer Major Version (1 or 2) +################################################### +FROM mediawiki:1.31.16 + +ARG MYSQL_PORT + +# Fix owner +RUN chown -R www-data:www-data . + +# Existential tools +RUN apt-get update && \ + apt-get install -y \ + sudo \ + unzip \ + less \ + nano \ + nodejs \ + npm + +# Install MySQL client for debugging +# RUN apt-get install -y default-mysql-client + +# Test MySQL Connection +# RUN mysql --host 127.0.0.1 --port ${MYSQL_PORT} -uroot -pdatabase -e "SELECT @@VERSION" + +# MySQL grant privileges +# RUN mysql --host 127.0.0.1 --port ${MYSQL_PORT} -uroot -pdatabase -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'database'" + +# Test PHP and install pdo_mysql +RUN php -m && \ + docker-php-ext-install pdo_mysql && \ + php -m + +# Bashrc Alias +RUN echo "alias ll='ls -la'" >> /etc/bash.bashrc && \ + echo "alias ..='cd ..'" >> /etc/bash.bashrc && \ + echo "alias ...='cd ...'" >> /etc/bash.bashrc + +# Install Composer +RUN php -r "copy('https://getcomposer.org/installer', 'installer');" && \ + php -r "copy('https://composer.github.io/installer.sig', 'expected');" && \ + echo `cat expected` " installer" | sha384sum -c - && \ + php installer --version=1.10.24 && \ + rm -f installer expected && \ + mv composer.phar /usr/local/bin/composer + +# Install XDebug +RUN pecl install xdebug && \ + bash -c "echo 'zend_extension=xdebug' >> /usr/local/etc/php/conf.d/99-xdebug.ini" && \ + bash -c "echo 'xdebug.mode=coverage' >> /usr/local/etc/php/conf.d/99-xdebug.ini" && \ + php -v + +# Setup MediaWiki +## prevent caching +ARG CACHEBUST=1 +RUN sudo -u www-data composer update && \ + sudo -u www-data php maintenance/install.php \ + --pass=wiki4everyone \ + --server="http://localhost:8080" \ + --scriptpath="" \ + --dbserver=127.0.0.1:${MYSQL_PORT} \ + --installdbuser=root \ + --installdbpass=database \ + --dbtype=mysql \ + --dbname=wiki \ + --dbuser=wiki \ + --dbpass=wiki \ + wiki WikiSysop + +# Enable debug output, enable JS testing +RUN bash -c "echo 'error_reporting(E_ALL| E_STRICT);' >> LocalSettings.php" && \ + bash -c "echo 'ini_set(\"display_errors\", 1);' >> LocalSettings.php" && \ + bash -c 'echo "\$wgShowExceptionDetails = true;" >> LocalSettings.php' && \ + bash -c 'echo "\$wgDevelopmentWarnings = true;" >> LocalSettings.php' && \ + bash -c 'echo "\$wgEnableJavaScriptTest = true;" >> LocalSettings.php' && \ + bash -c 'echo "\$wgDebugToolbar = true;" >> LocalSettings.php' && \ + tail -n6 LocalSettings.php diff --git a/1.31/Dockerfile b/1.31/sqlite/Dockerfile similarity index 100% rename from 1.31/Dockerfile rename to 1.31/sqlite/Dockerfile diff --git a/1.35/mysql/Dockerfile b/1.35/mysql/Dockerfile new file mode 100644 index 0000000..2b200ea --- /dev/null +++ b/1.35/mysql/Dockerfile @@ -0,0 +1,81 @@ +################################################### +# gesinn-it/docker-mediawiki:mw-1.35.5 +# +# MEDIAWIKI_VERSION: MediaWiki Version +# COMPOSER_VERSION: Composer Major Version (1 or 2) +################################################### +FROM mediawiki:1.35.5 + +ARG MYSQL_PORT + +# Fix owner +RUN chown -R www-data:www-data . + +# Existential tools +RUN apt-get update && \ + apt-get install -y \ + sudo \ + unzip \ + less \ + nano \ + nodejs \ + npm + +# Install MySQL client for debugging +# RUN apt-get install -y default-mysql-client + +# Test MySQL Connection +# RUN mysql --host 127.0.0.1 --port ${MYSQL_PORT} -uroot -pdatabase -e "SELECT @@VERSION" + +# MySQL grant privileges +# RUN mysql --host 127.0.0.1 --port ${MYSQL_PORT} -uroot -pdatabase -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'database'" + +# Test PHP and install pdo_mysql +RUN php -m && \ + docker-php-ext-install pdo_mysql && \ + php -m + +# Bashrc Alias +RUN echo "alias ll='ls -la'" >> /etc/bash.bashrc && \ + echo "alias ..='cd ..'" >> /etc/bash.bashrc && \ + echo "alias ...='cd ...'" >> /etc/bash.bashrc + +# Install Composer +RUN php -r "copy('https://getcomposer.org/installer', 'installer');" && \ + php -r "copy('https://composer.github.io/installer.sig', 'expected');" && \ + echo `cat expected` " installer" | sha384sum -c - && \ + php installer --version=2.1.14 && \ + rm -f installer expected && \ + mv composer.phar /usr/local/bin/composer + +# Install XDebug +RUN pecl install xdebug && \ + bash -c "echo 'zend_extension=xdebug' >> /usr/local/etc/php/conf.d/99-xdebug.ini" && \ + bash -c "echo 'xdebug.mode=coverage' >> /usr/local/etc/php/conf.d/99-xdebug.ini" && \ + php -v + +# Setup MediaWiki +## prevent caching +ARG CACHEBUST=1 +RUN sudo -u www-data composer update && \ + sudo -u www-data php maintenance/install.php \ + --pass=wiki4everyone \ + --server="http://localhost:8080" \ + --scriptpath="" \ + --dbserver=127.0.0.1:${MYSQL_PORT} \ + --installdbuser=root \ + --installdbpass=database \ + --dbtype=mysql \ + --dbname=wiki \ + --dbuser=wiki \ + --dbpass=wiki \ + wiki WikiSysop + +# Enable debug output, enable JS testing +RUN bash -c "echo 'error_reporting(E_ALL| E_STRICT);' >> LocalSettings.php" && \ + bash -c "echo 'ini_set(\"display_errors\", 1);' >> LocalSettings.php" && \ + bash -c 'echo "\$wgShowExceptionDetails = true;" >> LocalSettings.php' && \ + bash -c 'echo "\$wgDevelopmentWarnings = true;" >> LocalSettings.php' && \ + bash -c 'echo "\$wgEnableJavaScriptTest = true;" >> LocalSettings.php' && \ + bash -c 'echo "\$wgDebugToolbar = true;" >> LocalSettings.php' && \ + tail -n6 LocalSettings.php diff --git a/1.35/Dockerfile b/1.35/sqlite/Dockerfile similarity index 100% rename from 1.35/Dockerfile rename to 1.35/sqlite/Dockerfile diff --git a/1.36/mysql/Dockerfile b/1.36/mysql/Dockerfile new file mode 100644 index 0000000..cb76b79 --- /dev/null +++ b/1.36/mysql/Dockerfile @@ -0,0 +1,81 @@ +################################################### +# gesinn-it/docker-mediawiki:mw-1.36.3 +# +# MEDIAWIKI_VERSION: MediaWiki Version +# COMPOSER_VERSION: Composer Major Version (1 or 2) +################################################### +FROM mediawiki:1.36.3 + +ARG MYSQL_PORT + +# Fix owner +RUN chown -R www-data:www-data . + +# Existential tools +RUN apt-get update && \ + apt-get install -y \ + sudo \ + unzip \ + less \ + nano \ + nodejs \ + npm + +# Install MySQL client for debugging +# RUN apt-get install -y default-mysql-client + +# Test MySQL Connection +# RUN mysql --host 127.0.0.1 --port ${MYSQL_PORT} -uroot -pdatabase -e "SELECT @@VERSION" + +# MySQL grant privileges +# RUN mysql --host 127.0.0.1 --port ${MYSQL_PORT} -uroot -pdatabase -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'database'" + +# Test PHP and install pdo_mysql +RUN php -m && \ + docker-php-ext-install pdo_mysql && \ + php -m + +# Bashrc Alias +RUN echo "alias ll='ls -la'" >> /etc/bash.bashrc && \ + echo "alias ..='cd ..'" >> /etc/bash.bashrc && \ + echo "alias ...='cd ...'" >> /etc/bash.bashrc + +# Install Composer +RUN php -r "copy('https://getcomposer.org/installer', 'installer');" && \ + php -r "copy('https://composer.github.io/installer.sig', 'expected');" && \ + echo `cat expected` " installer" | sha384sum -c - && \ + php installer --version=2.1.14 && \ + rm -f installer expected && \ + mv composer.phar /usr/local/bin/composer + +# Install XDebug +RUN pecl install xdebug && \ + bash -c "echo 'zend_extension=xdebug' >> /usr/local/etc/php/conf.d/99-xdebug.ini" && \ + bash -c "echo 'xdebug.mode=coverage' >> /usr/local/etc/php/conf.d/99-xdebug.ini" && \ + php -v + +# Setup MediaWiki +## prevent caching +ARG CACHEBUST=1 +RUN sudo -u www-data composer update && \ + sudo -u www-data php maintenance/install.php \ + --pass=wiki4everyone \ + --server="http://localhost:8080" \ + --scriptpath="" \ + --dbserver=127.0.0.1:${MYSQL_PORT} \ + --installdbuser=root \ + --installdbpass=database \ + --dbtype=mysql \ + --dbname=wiki \ + --dbuser=wiki \ + --dbpass=wiki \ + wiki WikiSysop + +# Enable debug output, enable JS testing +RUN bash -c "echo 'error_reporting(E_ALL| E_STRICT);' >> LocalSettings.php" && \ + bash -c "echo 'ini_set(\"display_errors\", 1);' >> LocalSettings.php" && \ + bash -c 'echo "\$wgShowExceptionDetails = true;" >> LocalSettings.php' && \ + bash -c 'echo "\$wgDevelopmentWarnings = true;" >> LocalSettings.php' && \ + bash -c 'echo "\$wgEnableJavaScriptTest = true;" >> LocalSettings.php' && \ + bash -c 'echo "\$wgDebugToolbar = true;" >> LocalSettings.php' && \ + tail -n6 LocalSettings.php diff --git a/1.36/Dockerfile b/1.36/sqlite/Dockerfile similarity index 100% rename from 1.36/Dockerfile rename to 1.36/sqlite/Dockerfile diff --git a/1.37/mysql/Dockerfile b/1.37/mysql/Dockerfile new file mode 100644 index 0000000..74410a8 --- /dev/null +++ b/1.37/mysql/Dockerfile @@ -0,0 +1,81 @@ +################################################### +# gesinn-it/docker-mediawiki:mw-1.37.1 +# +# MEDIAWIKI_VERSION: MediaWiki Version +# COMPOSER_VERSION: Composer Major Version (1 or 2) +################################################### +FROM mediawiki:1.37.1 + +ARG MYSQL_PORT + +# Fix owner +RUN chown -R www-data:www-data . + +# Existential tools +RUN apt-get update && \ + apt-get install -y \ + sudo \ + unzip \ + less \ + nano \ + nodejs \ + npm + +# Install MySQL client for debugging +# RUN apt-get install -y default-mysql-client + +# Test MySQL Connection +# RUN mysql --host 127.0.0.1 --port ${MYSQL_PORT} -uroot -pdatabase -e "SELECT @@VERSION" + +# MySQL grant privileges +# RUN mysql --host 127.0.0.1 --port ${MYSQL_PORT} -uroot -pdatabase -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'database'" + +# Test PHP and install pdo_mysql +RUN php -m && \ + docker-php-ext-install pdo_mysql && \ + php -m + +# Bashrc Alias +RUN echo "alias ll='ls -la'" >> /etc/bash.bashrc && \ + echo "alias ..='cd ..'" >> /etc/bash.bashrc && \ + echo "alias ...='cd ...'" >> /etc/bash.bashrc + +# Install Composer +RUN php -r "copy('https://getcomposer.org/installer', 'installer');" && \ + php -r "copy('https://composer.github.io/installer.sig', 'expected');" && \ + echo `cat expected` " installer" | sha384sum -c - && \ + php installer --version=2.1.14 && \ + rm -f installer expected && \ + mv composer.phar /usr/local/bin/composer + +# Install XDebug +RUN pecl install xdebug && \ + bash -c "echo 'zend_extension=xdebug' >> /usr/local/etc/php/conf.d/99-xdebug.ini" && \ + bash -c "echo 'xdebug.mode=coverage' >> /usr/local/etc/php/conf.d/99-xdebug.ini" && \ + php -v + +# Setup MediaWiki +## prevent caching +ARG CACHEBUST=1 +RUN sudo -u www-data composer update && \ + sudo -u www-data php maintenance/install.php \ + --pass=wiki4everyone \ + --server="http://localhost:8080" \ + --scriptpath="" \ + --dbserver=127.0.0.1:${MYSQL_PORT} \ + --installdbuser=root \ + --installdbpass=database \ + --dbtype=mysql \ + --dbname=wiki \ + --dbuser=wiki \ + --dbpass=wiki \ + wiki WikiSysop + +# Enable debug output, enable JS testing +RUN bash -c "echo 'error_reporting(E_ALL| E_STRICT);' >> LocalSettings.php" && \ + bash -c "echo 'ini_set(\"display_errors\", 1);' >> LocalSettings.php" && \ + bash -c 'echo "\$wgShowExceptionDetails = true;" >> LocalSettings.php' && \ + bash -c 'echo "\$wgDevelopmentWarnings = true;" >> LocalSettings.php' && \ + bash -c 'echo "\$wgEnableJavaScriptTest = true;" >> LocalSettings.php' && \ + bash -c 'echo "\$wgDebugToolbar = true;" >> LocalSettings.php' && \ + tail -n6 LocalSettings.php diff --git a/1.37/Dockerfile b/1.37/sqlite/Dockerfile similarity index 100% rename from 1.37/Dockerfile rename to 1.37/sqlite/Dockerfile diff --git a/Dockerfile-mysql.template b/Dockerfile-mysql.template new file mode 100644 index 0000000..dad0f46 --- /dev/null +++ b/Dockerfile-mysql.template @@ -0,0 +1,81 @@ +################################################### +# gesinn-it/docker-mediawiki:mw-%%MEDIAWIKI_VERSION%% +# +# MEDIAWIKI_VERSION: MediaWiki Version +# COMPOSER_VERSION: Composer Major Version (1 or 2) +################################################### +FROM mediawiki:%%MEDIAWIKI_VERSION%% + +ARG MYSQL_PORT + +# Fix owner +RUN chown -R www-data:www-data . + +# Existential tools +RUN apt-get update && \ + apt-get install -y \ + sudo \ + unzip \ + less \ + nano \ + nodejs \ + npm + +# Install MySQL client for debugging +# RUN apt-get install -y default-mysql-client + +# Test MySQL Connection +# RUN mysql --host 127.0.0.1 --port ${MYSQL_PORT} -uroot -pdatabase -e "SELECT @@VERSION" + +# MySQL grant privileges +# RUN mysql --host 127.0.0.1 --port ${MYSQL_PORT} -uroot -pdatabase -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'database'" + +# Test PHP and install pdo_mysql +RUN php -m && \ + docker-php-ext-install pdo_mysql && \ + php -m + +# Bashrc Alias +RUN echo "alias ll='ls -la'" >> /etc/bash.bashrc && \ + echo "alias ..='cd ..'" >> /etc/bash.bashrc && \ + echo "alias ...='cd ...'" >> /etc/bash.bashrc + +# Install Composer +RUN php -r "copy('https://getcomposer.org/installer', 'installer');" && \ + php -r "copy('https://composer.github.io/installer.sig', 'expected');" && \ + echo `cat expected` " installer" | sha384sum -c - && \ + php installer --version=%%COMPOSER_VERSION%% && \ + rm -f installer expected && \ + mv composer.phar /usr/local/bin/composer + +# Install XDebug +RUN pecl install xdebug && \ + bash -c "echo 'zend_extension=xdebug' >> /usr/local/etc/php/conf.d/99-xdebug.ini" && \ + bash -c "echo 'xdebug.mode=coverage' >> /usr/local/etc/php/conf.d/99-xdebug.ini" && \ + php -v + +# Setup MediaWiki +## prevent caching +ARG CACHEBUST=1 +RUN sudo -u www-data composer update && \ + sudo -u www-data php maintenance/install.php \ + --pass=wiki4everyone \ + --server="http://localhost:8080" \ + --scriptpath="" \ + --dbserver=127.0.0.1:${MYSQL_PORT} \ + --installdbuser=root \ + --installdbpass=database \ + --dbtype=mysql \ + --dbname=wiki \ + --dbuser=wiki \ + --dbpass=wiki \ + wiki WikiSysop + +# Enable debug output, enable JS testing +RUN bash -c "echo 'error_reporting(E_ALL| E_STRICT);' >> LocalSettings.php" && \ + bash -c "echo 'ini_set(\"display_errors\", 1);' >> LocalSettings.php" && \ + bash -c 'echo "\$wgShowExceptionDetails = true;" >> LocalSettings.php' && \ + bash -c 'echo "\$wgDevelopmentWarnings = true;" >> LocalSettings.php' && \ + bash -c 'echo "\$wgEnableJavaScriptTest = true;" >> LocalSettings.php' && \ + bash -c 'echo "\$wgDebugToolbar = true;" >> LocalSettings.php' && \ + tail -n6 LocalSettings.php diff --git a/Dockerfile.template b/Dockerfile-sqlite.template similarity index 100% rename from Dockerfile.template rename to Dockerfile-sqlite.template diff --git a/update.sh b/update.sh index 67554ca..b3abd75 100644 --- a/update.sh +++ b/update.sh @@ -3,37 +3,40 @@ set -euo pipefail cd "$(dirname "$(readlink -f "$BASH_SOURCE")")" -mediawikiReleases=( "$@" ) +mediawikiReleases=("$@") if [ ${#mediawikiReleases[@]} -eq 0 ]; then - mediawikiReleases=( 1.*/ ) + mediawikiReleases=(1.*/) fi -mediawikiReleases=( "${mediawikiReleases[@]%/}" ) +mediawikiReleases=("${mediawikiReleases[@]%/}") echo ${mediawikiReleases[*]} declare -A composerVersion=( - [1.31]='1.10.24' - [default]='2.1.14' + [1.31]='1.10.24' + [default]='2.1.14' ) function mediawiki_version() { - git ls-remote --sort=version:refname --tags https://github.com/wikimedia/mediawiki.git \ - | cut -d/ -f3 \ - | tr -d '^{}' \ - | grep -E "^$1" \ - | tail -1 + git ls-remote --sort=version:refname --tags https://github.com/wikimedia/mediawiki.git | + cut -d/ -f3 | + tr -d '^{}' | + grep -E "^$1" | + tail -1 } for mediawikiRelease in "${mediawikiReleases[@]}"; do - mediawikiReleaseDir="$mediawikiRelease" - mediawikiVersion="$(mediawiki_version $mediawikiRelease)" - composerVersion=${composerVersion[$mediawikiRelease]-${composerVersion[default]}} - - mkdir -p "$mediawikiReleaseDir" - - sed -r \ - -e 's!%%MEDIAWIKI_VERSION%%!'"$mediawikiVersion"'!g' \ - -e 's!%%MEDIAWIKI_MAJOR_VERSION%%!'"$mediawikiRelease"'!g' \ - -e 's!%%COMPOSER_VERSION%%!'"$composerVersion"'!g' \ - "Dockerfile.template" > "$mediawikiReleaseDir/Dockerfile" + mediawikiReleaseDir="$mediawikiRelease" + mediawikiVersion="$(mediawiki_version $mediawikiRelease)" + composerVersion=${composerVersion[$mediawikiRelease]-${composerVersion[default]}} + + for dbType in sqlite mysql; do + dir="$mediawikiReleaseDir/$dbType" + mkdir -p "$dir" + + sed -r \ + -e 's!%%MEDIAWIKI_VERSION%%!'"$mediawikiVersion"'!g' \ + -e 's!%%MEDIAWIKI_MAJOR_VERSION%%!'"$mediawikiRelease"'!g' \ + -e 's!%%COMPOSER_VERSION%%!'"$composerVersion"'!g' \ + "Dockerfile-${dbType}.template" >"$dir/Dockerfile" + done done