FROM mediawiki:1.37.2 ENV \ WG_SITENAME="Test Wiki" \ WG_SCRIPT_PATH="" \ WG_SERVER="https://wiki.example.com" \ SEMANTIC_URL="wiki.example.com" \ WG_ENABLE_UPLOADS="0" \ WG_USE_INSTANT_COMMONS="0" \ WG_ENABLE_EMAIL="0" \ WG_UPLOAD_PATH="/uploads" \ WG_META_NAMESPACE="Meta" \ WG_LANGUAGE_CODE="en" \ MEDIAWIKI_ADMIN_USER="admin" \ MEDIAWIKI_ADMIN_PASS="password" \ WG_DB_TYPE="sqlite" \ WG_DB_SERVER="" \ WG_DB_PORT="" \ WG_DB_NAME="my_wiki" \ WG_DB_USER="mediawiki" \ WG_DB_PASSWORD="password" \ WG_DB_PREFIX="" \ WG_DB_MWSCHEMA="" \ WG_DATABASE_DIR="/var/www/data" \ WG_SECRET_KEY="0000000000000000000000000000000000000000000000000000000000000000" \ WG_EMERGENCY_CONTACT="admin@example.com" \ WG_PASSWORD_SENDER="wiki@example.com" \ ALLOW_PUBLIC_REGISTRATION="0" \ ALLOW_AUTO_REGISTRATION="1" \ ALLOW_PUBLIC_EDIT="0" \ ALLOW_PUBLIC_READ="1" \ USE_REMOTE_AUTH="0" \ DISABLE_ICONS="0" \ S3_ENDPOINT="https://s3.us-east-1.amazonaws.com" \ S3_INSECURE="0" \ S3_KEY="" \ S3_SECRET="" \ S3_REGION="us-east-1" \ S3_BUCKET_DOMAIN_NAME="\$1.s3.amazonaws.com" \ S3_BUCKET_NAME="" \ S3_SUBDIRECTORY="" \ DEBUG="0" # System dependencies for extensions RUN set -eu; \ apt-get update; \ apt-get install -y --no-install-recommends \ zip \ unzip \ libpq-dev \ cron \ rclone \ ; \ rm -rf /var/lib/apt/lists/* # PHP extensions RUN set -eu; \ docker-php-ext-install -j$(nproc) pgsql; \ docker-php-ext-install -j$(nproc) pdo_pgsql RUN set -eu; \ mkdir /var/www/conf; \ mkdir -p /var/www/html/extensions; \ mkdir -p /var/www/localstore/smwconfig; \ mkdir -p /var/www/localstore/images # Non-composer based extensions # JsonConfig required by Graph. RUN set -eu; \ cd /var/www/html/extensions \ && git clone https://github.com/edwardspec/mediawiki-aws-s3.git AWS && bash -c "(cd AWS && git checkout 301c5da5048067964a657ecce6b72e49916d03a7)" \ && curl https://extdist.wmflabs.org/dist/extensions/JsonConfig-REL1_37-0a756af.tar.gz |tar -xz \ && curl https://extdist.wmflabs.org/dist/extensions/Graph-REL1_37-f4cafc8.tar.gz |tar -xz \ && curl https://extdist.wmflabs.org/dist/extensions/SubPageList3-REL1_37-5208a7b.tar.gz |tar -xz \ && curl https://extdist.wmflabs.org/dist/extensions/MsUpload-REL1_37-246d563.tar.gz |tar -xz \ && curl https://extdist.wmflabs.org/dist/extensions/TemplateStyles-REL1_37-929bd56.tar.gz |tar -xz \ && curl https://extdist.wmflabs.org/dist/extensions/Auth_remoteuser-REL1_37-2852bad.tar.gz |tar -xz # Install composer packages COPY --from=library/composer:2.1 /usr/bin/composer /usr/bin/composer RUN set -eu; \ ln -s /var/www/conf/LocalSettings.local.php /var/www/html/LocalSettings.local.php; \ ln -s /var/www/conf/LocalSettings.php /var/www/html/LocalSettings.php # Make AWS (S3) dependencies installable RUN echo '{"extra": {"merge-plugin": {"include": ["extensions/AWS/composer.json"]}}}' > composer.local.json # Install SMB via composer # css-sanitizer is a dependency of TemplateStyles RUN composer require --with-all-dependencies --no-update \ wikimedia/css-sanitizer:"3.0.2" \ mediawiki/semantic-media-wiki:"~4.0.0" \ mediawiki/semantic-result-formats:"~4.0.1" \ mediawiki/maps:"~9.0.7" \ mediawiki/mermaid:"~3.1.0" \ mediawiki/semantic-extra-special-properties:"~3.0.1" \ mediawiki/semantic-compound-queries:"~2.2.0" \ mediawiki/page-forms:"~5.3.4" \ mediawiki/semantic-scribunto:"~2.2.0" RUN composer update # Place config files COPY conf/* /var/www/conf/ COPY 000-default.conf /etc/apache2/sites-available # Place our maintenence and setup scripts COPY scripts/* /usr/local/bin/ RUN chmod 755 /usr/local/bin/* # Add crontab file in the cron directory ADD crontab /etc/crontab RUN chmod 0644 /etc/crontab