From c45d3c6a7b00978b4a6176807a0145f547b4de6e Mon Sep 17 00:00:00 2001 From: roti Date: Thu, 16 Nov 2023 15:05:52 +0100 Subject: [PATCH] wip: move build logic to dockerfile --- Docker/build/Wikibase/Dockerfile | 54 +++++++++---------- .../build/Wikibase/LocalSettings.php.template | 2 +- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/Docker/build/Wikibase/Dockerfile b/Docker/build/Wikibase/Dockerfile index d74cc6b23..df1ea5abd 100644 --- a/Docker/build/Wikibase/Dockerfile +++ b/Docker/build/Wikibase/Dockerfile @@ -1,38 +1,38 @@ -# Build configuration -ARG COMPOSER_IMAGE_NAME -ARG COMPOSER_IMAGE_VERSION -ARG MEDIAWIKI_IMAGE_NAME -ARG MEDIAWIKI_IMAGE_VERSION - -FROM ubuntu:xenial as unpacker - -RUN mkdir artifacts - -COPY artifacts/wikibase.tar.gz artifacts -RUN tar xzf artifacts/wikibase.tar.gz - -FROM ${MEDIAWIKI_IMAGE_NAME}:${MEDIAWIKI_IMAGE_VERSION} as collector - -COPY --from=unpacker Wikibase /var/www/html/extensions/Wikibase - -RUN rm /var/www/html/extensions/Wikibase/vendor -rf - -FROM ${COMPOSER_IMAGE_NAME}:${COMPOSER_IMAGE_VERSION} as composer +# ########################################################################### +FROM bitnami/git:2.42.1-debian-11-r0 as git-checkout +WORKDIR /tmp +RUN git clone --single-branch --branch REL1_40 \ + https://gerrit.wikimedia.org/r/mediawiki/extensions/Wikibase wikibase +WORKDIR /tmp/wikibase +RUN git submodule update --init --recursive +# TODO: do submodules have .git folders? +RUN rm -rf .git && rm -f .travis.yml + +# ########################################################################### +FROM mediawiki:1.40.0 as collector +COPY --from=git-checkout /tmp/wikibase /var/www/html/extensions/Wikibase + +# ########################################################################### +FROM composer:2.6.5 as composer COPY --from=collector --chown=nobody:nogroup /var/www/html /var/www/html WORKDIR /var/www/html/ COPY composer.local.json /var/www/html/composer.local.json -RUN composer install --verbose -n --no-dev - -FROM ${MEDIAWIKI_IMAGE_NAME}:${MEDIAWIKI_IMAGE_VERSION} +RUN composer install --verbose -n --no-dev \ + --ignore-platform-req=ext-calendar \ + --ignore-platform-req=ext-intl +# ########################################################################### +FROM mediawiki:1.40.0 # Set error_reporting PHP.ini settings # This is needed with PHP8+ and MediaWiki 1.39, as Wikibase contains deprecated code +# TODO: remove this and see how far we get RUN { \ echo 'error_reporting = E_ALL ^ E_DEPRECATED'; \ } > /usr/local/etc/php/conf.d/error_reporting.ini RUN apt-get update && \ - DEBIAN_FRONTEND=noninteractive apt-get install --yes --no-install-recommends libbz2-dev=1.* gettext-base && \ + DEBIAN_FRONTEND=noninteractive \ + apt-get install --yes --no-install-recommends libbz2-dev=1.* gettext-base && \ rm -rf /var/lib/apt/lists/* && \ a2enmod rewrite && \ install -d /var/log/mediawiki -o www-data && \ @@ -42,8 +42,7 @@ COPY --from=composer --chown=root:root /var/www/html /var/www/html COPY artifacts/wait-for-it.sh /wait-for-it.sh COPY entrypoint.sh /entrypoint.sh -ARG MEDIAWIKI_SETTINGS_TEMPLATE_FILE -COPY ${MEDIAWIKI_SETTINGS_TEMPLATE_FILE} /LocalSettings.php.template +COPY LocalSettings.php.template /LocalSettings.php.template COPY htaccess /var/www/html/.htaccess RUN ln -s /var/www/html/ /var/www/html/w @@ -63,7 +62,8 @@ ENV MW_SITE_NAME=${MW_SITE_NAME}\ MW_WG_UPLOAD_DIRECTORY=${MW_WG_UPLOAD_DIRECTORY}\ WIKIBASE_PINGBACK=${WIKIBASE_PINGBACK} -RUN chown www-data ${MW_WG_UPLOAD_DIRECTORY} -R && \ +RUN mkdir /var/www/html/uploads && \ + chown www-data /var/www/html/uploads -R && \ chmod o-w /var/www/html ENTRYPOINT ["/bin/bash"] diff --git a/Docker/build/Wikibase/LocalSettings.php.template b/Docker/build/Wikibase/LocalSettings.php.template index 837721522..fe859d53f 100644 --- a/Docker/build/Wikibase/LocalSettings.php.template +++ b/Docker/build/Wikibase/LocalSettings.php.template @@ -65,7 +65,7 @@ wfLoadExtension( 'WikibaseClient', "${DOLLAR}IP/extensions/Wikibase/extension-cl require_once "${DOLLAR}IP/extensions/Wikibase/client/ExampleSettings.php"; #Pingback -${DOLLAR}wgWBRepoSettings['wikibasePingback'] = ${WIKIBASE_PINGBACK}; +# ${DOLLAR}wgWBRepoSettings['wikibasePingback'] = ${WIKIBASE_PINGBACK}; foreach (glob("LocalSettings.d/*.php") as ${DOLLAR}filename) {