first commit

This commit is contained in:
Robert Nasarek 2022-02-28 11:55:26 +01:00
commit de32898f2a
9 changed files with 5213 additions and 0 deletions

220
Dockerfile Executable file
View file

@ -0,0 +1,220 @@
#
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
#
# PLEASE DO NOT EDIT IT DIRECTLY.
#
# from https://www.drupal.org/docs/system-requirements/php-requirements
FROM php:8.0-apache-bullseye
# Install all the stuff we need
# Enable rewrite
RUN set -eux; \
if command -v a2enmod; then \
a2enmod rewrite; \
fi
# Install packages
RUN apt-get update; \
apt-get install -y --no-install-recommends \
apt-utils \
autoconf \
automake \
openjdk-11-jdk \
git \
iipimage-server \
iipimage-doc \
libapache2-mod-fcgid \
libfreetype6-dev \
libjpeg-dev \
libjpeg62-turbo \
libpng-dev \
libpng16-16 \
libpq-dev \
libtiff-dev \
libtiff5 \
libtool \
libvips-dev \
libvips-tools \
libzip-dev \
imagemagick \
unzip \
vim \
wget
# Add php extensions
RUN docker-php-ext-configure gd \
--with-freetype \
--with-jpeg=/usr \
--with-webp; \
docker-php-ext-install -j "$(nproc)" \
gd \
opcache \
pdo_mysql \
pdo_pgsql \
zip
# Upload progress
RUN set -eux; \
git clone https://github.com/php/pecl-php-uploadprogress/ /usr/src/php/ext/uploadprogress/; \
docker-php-ext-configure uploadprogress; \
docker-php-ext-install uploadprogress; \
rm -rf /usr/src/php/ext/uploadprogress;
# Install apcu
RUN set -eux; \
pecl install apcu;
# Add php configs
RUN { \
echo 'extension=apcu.so'; \
echo "apc.enable_cli=1"; \
echo "apc.enable=1"; \
} >> /usr/local/etc/php/php.ini;
# Install iipsrv
RUN set -eux; \
git clone https://github.com/ruven/iipsrv.git; \
cd iipsrv; \
./autogen.sh; \
./configure; \
make; \
mkdir /fcgi-bin; \
cp src/iipsrv.fcgi /fcgi-bin/iipsrv.fcgi
# set recommended PHP.ini settings
# see https://secure.php.net/manual/en/opcache.installation.php
RUN { \
echo 'opcache.memory_consumption=128'; \
echo 'opcache.interned_strings_buffer=8'; \
echo 'opcache.max_accelerated_files=4000'; \
echo 'opcache.revalidate_freq=60'; \
echo 'opcache.fast_shutdown=1'; \
} > /usr/local/etc/php/conf.d/opcache-recommended.ini;
# set memory settings for WissKi
RUN { \
echo 'max_execution_time = 1200'; \
echo 'max_input_time = 600'; \
echo 'max_input_nesting_level = 640'; \
echo 'max_input_vars = 10000'; \
echo 'memory_limit = 512M'; \
echo 'upload_max_filesize = 512M'; \
echo 'max_file_uploads = 50'; \
echo 'post_max_size = 512M'; \
} > /usr/local/etc/php/conf.d/wisski-settings.ini;
# Solr
ENV SOLR_VERSION 8.11.1
WORKDIR /opt/
RUN set -eux; \
wget https://www.apache.org/dyn/closer.lua/lucene/solr/8.11.1/solr-${SOLR_VERSION}.tgz?action=download -O solr-${SOLR_VERSION}.tgz; \
tar xzf solr-${SOLR_VERSION}.tgz solr-${SOLR_VERSION}/bin/install_solr_service.sh --strip-components=2; \
./install_solr_service.sh solr-${SOLR_VERSION}.tgz; \
rm -r solr-${SOLR_VERSION}.tgz install_solr_service.sh
# reset apt
# apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
# rm -rf /var/lib/apt/lists/*
COPY --from=composer:2 /usr/bin/composer /usr/local/bin/
# https://www.drupal.org/node/3060/release
ENV DRUPAL_VERSION 9.3.6
# Installed Drupal modules, please check and update versions if necessary
# List Requirements
ENV REQUIREMENTS="drupal/colorbox \
drupal/devel \
drupal/facets \
drupal/field_permissions \
drupal/geofield \
drupal/geofield_map \
drupal/image_effects \
drupal/imagemagick \
drupal/imce \
drupal/inline_entity_form:1.x-dev@dev \
kint-php/kint \
drupal/leaflet \
drupal/search_api \
drupal/search_api_solr \
drupal/viewfield:3.x-dev@dev \
drupal/wisski:3.x-dev@dev"
# Install Drupal, WissKI and dependencies
WORKDIR /opt/drupal
RUN set -eux; \
export COMPOSER_HOME="$(mktemp -d)"; \
composer create-project --no-interaction "drupal/recommended-project:$DRUPAL_VERSION" ./; \
composer require ${REQUIREMENTS}; \
composer require --dev drush/drush --with-all-dependencies; \
cd web/modules/contrib/wisski && composer update && cd /opt/drupal
# Copy example site
COPY sites.tar.gz /opt/sites.tar.gz
RUN rm -r /opt/drupal/web/sites; \
tar xfz /opt/sites.tar.gz --directory web/
# Copy necessary themes
COPY themes.tar.gz /opt/themes.tar.gz
RUN rm -r /opt/drupal/web/themes; \
tar xfz /opt/themes.tar.gz --directory web/
# Adjust permissions and links
RUN chown -R www-data:www-data web/sites web/modules web/themes; \
rm -r /var/www/html; \
ln -sf /opt/drupal/web /var/www/html; \
# delete composer cache
rm -rf "$COMPOSER_HOME"
# install libraries
RUN set -eux; \
mkdir -p web/libraries; \
wget https://github.com/jackmoore/colorbox/archive/refs/heads/master.zip -P web/libraries/; \
unzip web/libraries/master.zip -d web/libraries/; \
rm -r web/libraries/master.zip;\
mv web/libraries/colorbox-master web/libraries/colorbox
# Add IIPServer config
COPY iipsrv.conf /etc/apache2/mods-available/iipsrv.conf
# IIPMooViewer
RUN wget https://github.com/ruven/iipmooviewer/archive/refs/heads/master.zip -P web/libraries/; \
unzip web/libraries/master.zip -d web/libraries/; \
rm -r web/libraries/master.zip;\
mv web/libraries/iipmooviewer-master web/libraries/iipmooviewer
# Mirador
RUN wget https://github.com/rnsrk/wisski-mirador-integration/archive/refs/heads/main.zip -P web/libraries/; \
unzip web/libraries/main.zip -d web/libraries/; \
mv web/libraries/wisski-mirador-integration-main web/libraries/wisski-mirador-integration
# Add private files directory
RUN mkdir /var/www/private_files && chown -R www-data /var/www/private_files
# Add path
ENV PATH=${PATH}:/opt/drupal/vendor/bin
# Install mariadb
RUN apt install mariadb-server -y
# Copy example Database
COPY wisski.sql /opt/wisski.sql
# Install Blazegraph
ENV BLAZEGRAPH_VERSION 2_1_6
RUN mkdir -p /opt/blazegraph
WORKDIR /opt/blazegraph
RUN set -eux; \
wget https://github.com/blazegraph/database/releases/download/BLAZEGRAPH_${BLAZEGRAPH_VERSION}_RC/blazegraph.jar
COPY blazegraph /etc/init.d/
COPY blazegraph.tar.gz /opt/blazegraph/blazegraph.tar.gz
RUN update-rc.d blazegraph defaults
# Copy example data
RUN tar xfz blazegraph.tar.gz --directory /usr/lib/jvm/java-11-openjdk-amd64/bin/
WORKDIR /opt/drupal
# Startscripts
COPY start.sh /
RUN chmod +x /start.sh
CMD ["/start.sh"]
# vim:set ft=dockerfile: