Commit 3faa0962 authored by Ulf Seltmann's avatar Ulf Seltmann
Browse files

split into own repository

parents
Pipeline #229 failed with stage
in 14 seconds
stages:
- image
php_image:
stage: image
image: docker:latest
services:
- docker:dind
script: |
mkdir -p ~/.docker && echo "$DOCKER_AUTH_CONFIG" >~/.docker/config.json
export version=`expr ${CI_COMMIT_TAG} ':' '([^-]+)'`
export major_version=`expr ${version} ':' '([^.]+)'`
export minor_version=`expr ${version} ':' '[^.]+\.([^-]+)'`
export suffix=`expr ${CI_COMMIT_TAG} ':' '[^-]+-\(.*\)'`
docker build -t ubleipzig/vufind-php:${version}-${suffix} -f ${version}/Dockerfile .
docker push ubleipzig/vufind-php:${version}-${suffix}
for tag in "latest" "{major_version}" "${version}"; do
if [ "$tag" == "latest" -a "${version}" != "7.2" ]; then continue; fi
docker tag ubleipzig/vufind-php:${version}-${suffix} ubleipzig/vufind-php:${tag}
docker push ubleipzig/vufind-php:${tag}
done
docker build -t ubleipzig/vufind-php:${version}-${suffix}-debug -f ${version}/debug/Dockerfile .
docker push ubleipzig/vufind-php:${version}-${suffix}-debug
for tag in "latest-debug" "{major_version}-debug" "${version}-debug"; do
if [ "$tag" == "latest-debug" -a "${version}" != "7.2" ]; then continue; fi
docker tag ubleipzig/vufind-php:${version}-${suffix}-debug ubleipzig/vufind-php:${tag}
docker push ubleipzig/vufind-php:${tag}
done
tags:
- docker
only:
- /^[57]\.\d+/
except:
- branches
php_vufind1_image:
stage: image
image: docker:latest
services:
- docker:dind
script: |
mkdir -p ~/.docker && echo "$DOCKER_AUTH_CONFIG" >~/.docker/config.json
export version=`expr ${CI_COMMIT_TAG} ':' 'vufind1/([^-]+)'`
export major_version=`expr ${version} ':' '([^.]+)'`
export minor_version=`expr ${version} ':' '[^.]+\.([^-]+)'`
export suffix=`expr ${CI_COMMIT_TAG} ':' 'vufind1/[^-]+-(.*\)'`
docker build -t ubleipzig/vufind-php:${version}-${suffix}-vufind1-debug -f ${version}/vufind1/debug/Dockerfile .
docker push ubleipzig/vufind-php:${version}-${suffix}-vufind1-debug
for tag in "{major_version}-vufind1-debug" "${version}-vufind1-debug" "vufind1-debug"; do
docker tag ubleipzig/vufind-php:${version}-${suffix}-vufind1-debug ubleipzig/vufind-php:${tag}
docker push ubleipzig/vufind-php:${tag}
done
tags:
- docker
only:
- /^vufind1-/
except:
- branches
\ No newline at end of file
FROM cespi/php-5.3:fpm
ENTRYPOINT [ "/docker-entrypoint" ]
ENV VUFIND_CACHE_DIR=/var/cache/vufind \
VUFIND_APPLICATION_PATH=/usr/local/vufind
COPY assets/entrypoint-php-debug /docker-entrypoint
RUN apk add --no-cache --update icu-dev freetype-dev libjpeg-turbo-dev libmcrypt-dev libpng-dev libxslt-dev postgresql-dev zlib-dev bzip2-dev autoconf mariadb-dev \
&& apk add libpng libjpeg-turbo freetype icu-libs libpq libmcrypt libxslt mariadb-client-libs python make g++ coreutils nodejs git subversion mariadb-client openssh openssl bash \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include --with-jpeg-dir=/usr/include \
&& docker-php-ext-install -j$(nproc) mysql gd xsl mcrypt intl zip bz2 \
&& pecl install xdebug-2.2.7 \
&& docker-php-ext-enable xdebug \
&& apk del icu-dev freetype-dev libjpeg-turbo-dev libmcrypt-dev libpng-dev libxslt-dev postgresql-dev zlib-dev bzip2-dev autoconf mariadb-dev \
&& sed -i '1 a xdebug.remote_autostart=true' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& sed -i '1 a xdebug.remote_mode=req' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& sed -i '1 a xdebug.remote_handler=dbgp' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& sed -i '1 a xdebug.remote_connect_back=1 ' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& sed -i '1 a xdebug.remote_port=9000' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& sed -i '1 a xdebug.remote_enable=1' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& echo 'security.limit_extensions = .php .css' >> /usr/local/etc/php-fpm.d/www.conf \
&& echo 'php_admin_value[magic_quotes_gpc] = false' >> /usr/local/etc/php-fpm.d/www.conf \
&& echo 'php_admin_value[session.use_cookies] = 1' >> /usr/local/etc/php-fpm.d/www.conf \
&& echo 'php_admin_value[session.use_only_cookies] = 1' >> /usr/local/etc/php-fpm.d/www.conf \
&& echo 'php_admin_value[session.auto_start] = 0' >> /usr/local/etc/php-fpm.d/www.conf \
&& echo 'php_admin_value[session.cookie_lifetime] = 0' >> /usr/local/etc/php-fpm.d/www.conf \
&& echo 'php_admin_value[session.gc_maxlifetime] = 6000' >> /usr/local/etc/php-fpm.d/www.conf \
&& echo 'php_admin_value[display_errors] = 0' >> /usr/local/etc/php-fpm.d/www.conf \
&& echo 'php_admin_value[log_errors] = 1' >> /usr/local/etc/php-fpm.d/www.conf \
&& echo 'php_admin_value[error_reporting] = 2047' >> /usr/local/etc/php-fpm.d/www.conf \
&& wget -O - https://github.com/smarty-php/smarty/archive/v2.6.26.tar.gz | tar -C /tmp/ -zxvf - smarty-2.6.26/libs \
&& mv /tmp/smarty-2.6.26/libs /usr/local/lib/php/Smarty \
&& rm /tmp/* -rf \
&& pear channel-discover pear.phing.info \
&& pear install --onlyreqdeps phing/phing \
&& pear install --onlyreqdeps DB-1.9.0 \
&& pear install --onlyreqdeps DB_DataObject-1.11.3 \
&& pear install --onlyreqdeps Structures_DataGrid-beta \
&& pear install --onlyreqdeps Structures_DataGrid_DataSource_DataObject-beta \
&& pear install --onlyreqdeps Structures_DataGrid_DataSource_Array-beta \
&& pear install --onlyreqdeps Structures_DataGrid_Renderer_HTMLTable-beta \
&& pear install --onlyreqdeps HTTP_Client \
&& pear install --onlyreqdeps Log \
&& pear install --onlyreqdeps Mail \
&& pear install --onlyreqdeps Mail_Mime \
&& pear install --onlyreqdeps Net_SMTP \
&& pear install --onlyreqdeps XML_Serializer-beta \
&& pear install --onlyreqdeps Console_ProgressBar-beta \
&& pear install --onlyreqdeps File_Marc-alpha \
&& pear channel-discover pear.horde.org \
&& pear channel-update pear.horde.org \
&& pear install Horde/Horde_Yaml-beta \
&& pear install --onlyreqdeps Config_Lite-0.2.6 \
&& chmod a+x /docker-entrypoint
WORKDIR ${VUFIND_APPLICATION_PATH}
CMD [ "php-fpm" ]
\ No newline at end of file
FROM php:5.6-fpm-alpine
ENTRYPOINT [ "/docker-entrypoint" ]
ENV VUFIND_CACHE_DIR=/var/cache/vufind \
VUFIND_APPLICATION_PATH=/usr/local/vufind \
VUFIND_LOCAL_DIR=/usr/local/vufind/local \
VUFIND_ENV=production \
NODE_ENV=production \
npm_config_registry=https://services.ub.uni-leipzig.de/nexus/repository/npm/
COPY assets/docker-entrypoint /docker-entrypoint
RUN apk add --no-cache --update icu-dev freetype-dev libjpeg-turbo-dev libmcrypt-dev libpng-dev libxslt-dev postgresql-dev zlib-dev bzip2-dev \
&& apk add libpng libjpeg-turbo freetype icu-libs libpq libmcrypt libxslt python make g++ coreutils nodejs git subversion openssh openssl bash \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include --with-jpeg-dir=/usr/include \
&& docker-php-ext-install -j$(nproc) intl mysqli pdo_pgsql pdo_mysql pdo gd xsl mcrypt intl soap zip bz2 \
&& apk del icu-dev freetype-dev libjpeg-turbo-dev libmcrypt-dev libpng-dev libxslt-dev postgresql-dev zlib-dev bzip2-dev \
&& npm install -g autoconfig eslint@"<3.0.0" \
# hack for issue https://github.com/sass/node-sass/issues/1757
&& cd /tmp \
&& npm install -j$(nproc) grunt-sass@"^1.0.0" \
&& cp /tmp/node_modules/node-sass/vendor/linux-x64-48/binding.node /root/.npm/node-sass/3.13.1/linux-x64-48_binding.node \
&& rm /tmp/* -rf \
&& cp -a ~/.npm ~www-data/.npm \
&& chown www-data:www-data ~www-data/.npm -R \
&& rm /var/lib/apt/lists/* -rf \
&& pear install pear/Http_Request2 \
&& pear channel-discover pear.phing.info \
&& pear install phing/phing \
&& chmod a+x /docker-entrypoint
WORKDIR ${VUFIND_APPLICATION_PATH}
CMD [ "php-fpm" ]
\ No newline at end of file
FROM services.ub.uni-leipzig.de:11443/bdd_dev/vufind/php:5
ENV VUFIND_ENV=development \
NODE_ENV=development
COPY assets/docker-entrypoint-debug /docker-entrypoint
RUN apk add --no-cache --update autoconf \
&& pecl install xdebug-2.5.5 \
&& docker-php-ext-enable xdebug \
&& apk del autoconf \
&& sed -i '1 a xdebug.remote_autostart=true' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& sed -i '1 a xdebug.remote_mode=req' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& sed -i '1 a xdebug.remote_handler=dbgp' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& sed -i '1 a xdebug.remote_connect_back=1 ' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& sed -i '1 a xdebug.remote_port=9000' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& sed -i '1 a xdebug.remote_enable=1' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& chmod a+x /docker-entrypoint
FROM php:7.1-fpm-alpine
ENTRYPOINT [ "/docker-entrypoint" ]
ENV VUFIND_CACHE_DIR=/var/cache/vufind \
VUFIND_APPLICATION_PATH=/usr/local/vufind \
VUFIND_LOCAL_DIR=/usr/local/vufind/local \
VUFIND_ENV=production \
NODE_ENV=production \
npm_config_registry=https://services.ub.uni-leipzig.de/nexus/repository/npm/
COPY assets/entrypoint-php /docker-entrypoint
RUN apk add --no-cache --update icu-dev freetype-dev libjpeg-turbo-dev libmcrypt-dev libpng-dev libxslt-dev postgresql-dev zlib-dev bzip2-dev autoconf \
&& apk add libpng libjpeg-turbo freetype icu-libs libpq libmcrypt libxslt python make g++ coreutils nodejs nodejs-npm git subversion openssh openssl bash \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include --with-jpeg-dir=/usr/include \
&& docker-php-ext-install -j$(nproc) intl mysqli pdo_pgsql pdo_mysql pdo gd xsl intl soap zip bz2 \
&& pecl install mcrypt-1.0.1 \
&& docker-php-ext-enable mcrypt \
&& apk del icu-dev freetype-dev libjpeg-turbo-dev libmcrypt-dev libpng-dev libxslt-dev postgresql-dev zlib-dev bzip2-dev autoconf \
&& npm install -g autoconfig eslint@"<3.0.0" \
# hack for issue https://github.com/sass/node-sass/issues/1757
&& cd /tmp \
&& npm install -j$(nproc) grunt-sass@"^1.0.0" \
&& cd /tmp/node_modules/node-sass \
&& node scripts/build -f -j $(nproc) \
&& cd / \
&& cp /tmp/node_modules/node-sass/vendor/linux-x64-48/binding.node /root/.npm/node-sass/3.13.1/linux-x64-48_binding.node \
&& rm /tmp/* -rf \
&& cp -a ~/.npm ~www-data/.npm \
&& chown www-data:www-data ~www-data/.npm -R \
&& rm /var/lib/apt/lists/* -rf \
&& pear install pear/Http_Request2 \
&& pear channel-discover pear.phing.info \
&& pear install phing/phing \
&& chmod a+x /docker-entrypoint
WORKDIR ${VUFIND_APPLICATION_PATH}
CMD [ "php-fpm" ]
FROM ubleipzig/vufind-php:7.1
ENV VUFIND_ENV=development
COPY assets/docker-entrypoint-debug /docker-entrypoint
RUN apk add autoconf \
&& pecl install xdebug \
&& docker-php-ext-enable xdebug \
&& apk del autoconf \
&& sed -i '1 a xdebug.remote_autostart=true' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& sed -i '1 a xdebug.remote_mode=req' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& sed -i '1 a xdebug.remote_handler=dbgp' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& sed -i '1 a xdebug.remote_connect_back=1 ' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& sed -i '1 a xdebug.remote_port=9000' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& sed -i '1 a xdebug.remote_enable=1' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
&& chmod a+x /docker-entrypoint
# vufind-php
*PHP* is the application server of VuFind
*php* ist der Applicationserver, welcher die Programmlogik von VuFind abarbeitet. Anfragen werden
vom Webserver an *php* weitergeleitet, verarbeitet und an den Webserver zur Auslieferung zurückgegeben.
Das Image basiert auf der FPM-Variante des offiziellen PHP-Images, jeweils in den Tags `5` und `7`,
wobei `5` auch `latest` ist. Außerdem kommen beide Images in einer Debug-Variante mit dem Suffix
`-debug`, siehe [debug](#debug)
Die Konfiguration von VuFind erfolgt über Umgebungsvariablen, welche dem Container bei der
Erstellung mitgegeben werden können.
* `VUFIND_CACHE_DIR=/var/cache/vufind`: spezifiziert den Cache-Ordner, welcher genutzt wird, um
den VuFind-Cache abzulegen. Der Ordner wird bei Container-Start erstellt, wenn nicht vorhanden.
* `VUFIND_APPLICATION_PATH=/usr/local/vufind`: spezifiziert den Ordner, in dem sich der VuFind-Programmcdoe befindet. Der Ordner muss zu Container-Start vorhanden sein, also via Bind-Mount eingebunden werden, da er **nicht** im Image vorhanden ist.
* `VUFIND_LOCAL_DIR=/usr/local/vufind/local`: spezifiziert den Ordner, der die Konfigurationsdateien
von VuFind beinhaltet. Dieser Ordner muss zu Container-Start ebenfalls exisiteren.
folgende php-Erweiterungen sind im Image einkompiliert:
* mysqli
* pdo_pgsql
* pdo_mysql
* gd
* xsl
* mcrypt
* intl
* soap
* xdebug (nur `-debug`-Variante)
Der Start des Containers erfolgt so:
docker run \
-v /path/to/vufind:/usr/local/vufind \
-v /path/to/cache:/var/cache/vufind \
-e VUFIND_LOCAL_DIR=/usr/local/vufind/local/staging
services.ub.uni-leipzig.de:10443/bdd_dev/vufind/php:5
#### Debug
In der Debug-Variante der Images ist zusätzlich die PHP-Erweiterung *xdebug* installiert und konfiguriert, dass es automatisch startet.
Weiterhin werden alle Dateien und Ordner, die von PHP erstellt werden, mit der Besitzer- und
Gruppenzugehörigkeit des Entwicklers erstellt. Somit kann dieser ohne weitere Berechtigungen diese
Dateien und Ordner ändern, bzw. löschen.
docker run \
-v /path/to/vufind:/usr/local/vufind \
-v /path/to/cache:/var/cache/vufind \
-e VUFIND_LOCAL_DIR=/usr/local/vufind/local/dev \
services.ub.uni-leipzig.de:10443/bdd_dev/vufind/php:5-debug
#### phing
Mit der Abhängigkeitsauflösung von VuFind mittels `composer` kommen noch weitere Entwicklerwerkzeuge,
wie
* phpcs
* php-cs-fixer
* phpunit
* phpdoc
* phpcpd
* phpmd
* pdepend
* phploc
*phing* wird genutzt, um die Standard-VuFind Tasks aufzurufen, z.B.:
docker run --rm -ti \
-v /path/to/vufind:/usr/local/vufind \
services.ub.uni-leipzig.de:10443/bdd_dev/vufind/util:latest \
phing composer
um PHP-Abhängigkeiten zu installieren.
docker run --rm -ti \
-v /path/to/vufind:/usr/local/vufind \
services.ub.uni-leipzig.de:10443/bdd_dev/vufind/util:latest \
phing phpunit
um PHPUnit-Tests abzuarbeiten
docker run --rm -ti \
-v /path/to/vufind:/usr/local/vufind \
services.ub.uni-leipzig.de:10443/bdd_dev/vufind/util:latest \
phing phpcs-console
um den PHP-Code-Sniffer auszuführen
#### autoconfig
*autoconfig* erstellt aus Umgebungsvariablen und/oder commandline-options eine funktionstüchtige
VuFind-Konfiguration, basierend auf einer Standardkonfiguration. Die erstellte Konfiguration erbt
von der Standardkonfiguration und überschreibt individuelle Einstellungen.
docker run --rm -ti \
-v /path/to/vufind:/usr/local/vufind \
-e VUFIND_SITE=local \
-e VUFIND_INSTANCE=staging \
-e VF_config_ini__Database__database=mysql://vufind:vufindpw@db/vufind \
-e VF_config_ini__Authentication__hash_passwords=true \
-e VF_config_ini__Authentication__encrypt_ils_password=true \
services.ub.uni-leipzig.de:10443/bdd_dev/vufind/util:latest \
autoconfig vufind deploy
Dieser Befehl erstellt eine neue Konfiguration unter `/usr/local/vufind/local/staging`, welche von
der Standardkonfiguration unter `/usr/local/vufind/local` ableitet und Einstellungen
[Database]
database = mysql://vufind:vufindpw@db/vufind
[Authentication]
hash_passwords = true
encrypt_ils_password = true
in der Datei `config.ini` setzt.
Weiterhin wird Anhand der Datenbank-Konfiguration eine Datenbank auf dem Datenbank-Server erstellt,
sofern nicht vorhanden und zugreifbar.
Weitere Informationen findet sich in der [Dokumentation zu *autoconfig*][3]
This diff is collapsed.
### php
*php* ist der Applicationserver, welcher die Programmlogik von VuFind abarbeitet. Anfragen werden
vom Webserver an *php* weitergeleitet, verarbeitet und an den Webserver zur Auslieferung zurückgegeben.
Das Image basiert auf der FPM-Variante des offiziellen PHP-Images, jeweils in den Tags `5` und `7`,
wobei `5` auch `latest` ist. Außerdem kommen beide Images in einer Debug-Variante mit dem Suffix
`-debug`, siehe [debug](#debug)
Die Konfiguration von VuFind erfolgt über Umgebungsvariablen, welche dem Container bei der
Erstellung mitgegeben werden können.
* `VUFIND_CACHE_DIR=/var/cache/vufind`: spezifiziert den Cache-Ordner, welcher genutzt wird, um
den VuFind-Cache abzulegen. Der Ordner wird bei Container-Start erstellt, wenn nicht vorhanden.
* `VUFIND_APPLICATION_PATH=/usr/local/vufind`: spezifiziert den Ordner, in dem sich der VuFind-Programmcdoe befindet. Der Ordner muss zu Container-Start vorhanden sein, also via Bind-Mount eingebunden werden, da er **nicht** im Image vorhanden ist.
* `VUFIND_LOCAL_DIR=/usr/local/vufind/local`: spezifiziert den Ordner, der die Konfigurationsdateien
von VuFind beinhaltet. Dieser Ordner muss zu Container-Start ebenfalls exisiteren.
folgende php-Erweiterungen sind im Image einkompiliert:
* mysqli
* pdo_pgsql
* pdo_mysql
* gd
* xsl
* mcrypt
* intl
* soap
* xdebug (nur `-debug`-Variante)
Der Start des Containers erfolgt so:
docker run \
-v /path/to/vufind:/usr/local/vufind \
-v /path/to/cache:/var/cache/vufind \
-e VUFIND_LOCAL_DIR=/usr/local/vufind/local/staging
services.ub.uni-leipzig.de:10443/bdd_dev/vufind/php:5
#### Debug
In der Debug-Variante der Images ist zusätzlich die PHP-Erweiterung *xdebug* installiert und konfiguriert, dass es automatisch startet.
Weiterhin werden alle Dateien und Ordner, die von PHP erstellt werden, mit der Besitzer- und
Gruppenzugehörigkeit des Entwicklers erstellt. Somit kann dieser ohne weitere Berechtigungen diese
Dateien und Ordner ändern, bzw. löschen.
docker run \
-v /path/to/vufind:/usr/local/vufind \
-v /path/to/cache:/var/cache/vufind \
-e VUFIND_LOCAL_DIR=/usr/local/vufind/local/dev \
services.ub.uni-leipzig.de:10443/bdd_dev/vufind/php:5-debug
#### phing
Mit der Abhängigkeitsauflösung von VuFind mittels `composer` kommen noch weitere Entwicklerwerkzeuge,
wie
* phpcs
* php-cs-fixer
* phpunit
* phpdoc
* phpcpd
* phpmd
* pdepend
* phploc
*phing* wird genutzt, um die Standard-VuFind Tasks aufzurufen, z.B.:
docker run --rm -ti \
-v /path/to/vufind:/usr/local/vufind \
services.ub.uni-leipzig.de:10443/bdd_dev/vufind/util:latest \
phing composer
um PHP-Abhängigkeiten zu installieren.
docker run --rm -ti \
-v /path/to/vufind:/usr/local/vufind \
services.ub.uni-leipzig.de:10443/bdd_dev/vufind/util:latest \
phing phpunit
um PHPUnit-Tests abzuarbeiten
docker run --rm -ti \
-v /path/to/vufind:/usr/local/vufind \
services.ub.uni-leipzig.de:10443/bdd_dev/vufind/util:latest \
phing phpcs-console
um den PHP-Code-Sniffer auszuführen
#### autoconfig
*autoconfig* erstellt aus Umgebungsvariablen und/oder commandline-options eine funktionstüchtige
VuFind-Konfiguration, basierend auf einer Standardkonfiguration. Die erstellte Konfiguration erbt
von der Standardkonfiguration und überschreibt individuelle Einstellungen.
docker run --rm -ti \
-v /path/to/vufind:/usr/local/vufind \
-e VUFIND_SITE=local \
-e VUFIND_INSTANCE=staging \
-e VF_config_ini__Database__database=mysql://vufind:vufindpw@db/vufind \
-e VF_config_ini__Authentication__hash_passwords=true \
-e VF_config_ini__Authentication__encrypt_ils_password=true \
services.ub.uni-leipzig.de:10443/bdd_dev/vufind/util:latest \
autoconfig vufind deploy
Dieser Befehl erstellt eine neue Konfiguration unter `/usr/local/vufind/local/staging`, welche von
der Standardkonfiguration unter `/usr/local/vufind/local` ableitet und Einstellungen
[Database]
database = mysql://vufind:vufindpw@db/vufind
[Authentication]
hash_passwords = true
encrypt_ils_password = true
in der Datei `config.ini` setzt.
Weiterhin wird Anhand der Datenbank-Konfiguration eine Datenbank auf dem Datenbank-Server erstellt,
sofern nicht vorhanden und zugreifbar.
Weitere Informationen findet sich in der [Dokumentation zu *autoconfig*][3]
# Docker-VuFind
How VuFind can be deployed using Docker-Images, regardless of the environment.
---
Ziel dieses Projektes ist es, ein Set an Docker-Images zur Verfügung zu stellen, die für Entwicklungs-
Test- und Produktivumgebungen geeignet ist. Alle Dienste, die von VuFind benötigt werden, werden in
eigenen Images gekapselt. Die Schnittstellen zwischen den Diensten beschränken sich auf Datei- und
Netzwerk-Ebene.
## Services
Folgende Services sind im Ökosystem VuFind beteiligt. Nicht enthalten sind die Quellen von VuFind
selbst. Diese müssen per Volume-Bind zur Verfügung gestellt werden.
## Todo
* Solr
* Entwicklerwerkzeuge
* Tests
[1]: https://store.docker.com/images/httpd
[2]: https://store.docker.com/images/nginx
[3]: https://ubleipzig.github.io/autoconfig/
\ No newline at end of file
#!/bin/bash
set -e
if [ ! -d "${VUFIND_APPLICATION_PATH}" ];then
echo "the application folder \"${VUFIND_APPLICATION_PATH}\" was not found. make shure to attach a sufficiently set up vufind container"
exit 1;
fi;
mkdir -p ${VUFIND_CACHE_DIR}
chown www-data:www-data ${VUFIND_APPLICATION_PATH} ${VUFIND_CACHE_DIR} ~www-data -R
exec docker-php-entrypoint "$@"
\ No newline at end of file
#!/bin/bash
set -e
if [ ! -d "${VUFIND_APPLICATION_PATH}" ];then
echo "the application folder \"${VUFIND_APPLICATION_PATH}\" was not found. make shure to attach a sufficiently set up vufind container"
exit 1;
fi;
APP_UID=`stat -c %u ${VUFIND_APPLICATION_PATH}`
APP_GID=`stat -c %g ${VUFIND_APPLICATION_PATH}`
APP_USER_HOME=`grep -e '^www-data' /etc/passwd | awk -F":" '{ print $6; }'`
# we do not allow root to be the app user
if [ "$APP_UID" == "0" -o "$APP_GID" == "0" ]; then
echo "Setting app user to UID:1000 and GID:1000 ..."
APP_UID="1000"
APP_GID="1000"
chown ${APP_UID}:${APP_GID} ${VUFIND_APPLICATION_PATH} -R
fi;
sed -e "s!^\(www-data:x\):[0-9]\+:[0-9]\+:\(.*\)\$!\1:${APP_UID}:${APP_GID}:\2!" -i /etc/passwd
sed -e "s!^\(www-data:x\):[0-9]\+:\(.*\)\$!\1:${APP_GID}:\2!" -i /etc/group
mkdir -p ${VUFIND_CACHE_DIR}
chown www-data:www-data ${VUFIND_APPLICATION_PATH} ${VUFIND_CACHE_DIR} ~www-data -R
# first arg is `-f` or `--some-option`
if [ "${1#-}" != "$1" -o "$1" == "php-fpm" ]; then
exec docker-php-entrypoint "$@"
else
exec su -s /bin/bash www-data -c "docker-php-entrypoint $*"
fi
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment