[[Docker]]
Übersetzungen dieser Seite:
 

Docker

Ein Webserver für SoSci Survey kann auch über einen Docker-Container betrieben werden.

Warnung: Diese Anleitung ist noch unvollständig (work in progress), es handelt sich um eine Minimal-Konfiguration ohne SSL-Verschlüsselung und weitere Sicherheitsmechanismen für den lokalen Betrieb. Verwenden Sie diese Konfiguration nicht zum Betrieb eines Produktivsystems.

Unter Windows installieren Sie dafür am besten Docker Desktop.

Konfiguration

Erstellen Sie ein Verzeichnis, z.B. C:\Daten\sosci und darin eine Datei docker-compose.yml mit folgendem Inhalt. Vergessen Sie nicht, an den mit __Ändern__ markierten Stellen eigene Daten einzutragen.

docker-compose.yml
services:
    mariadb:
        image: 'mariadb:11.0'
        working_dir: /application
        volumes:
            - './data:/application'
            - './data/mysql:/var/lib/mysql'
        environment:
            - MYSQL_ROOT_PASSWORD=__Ändern__
            - MYSQL_DATABASE=sosci
            - MYSQL_USER=sosci
            - MYSQL_PASSWORD=__Ändern__
        ports:
            - '63003:3306'

    webserver:
        image: 'nginx:alpine'
        working_dir: /application
        volumes:
            - './data:/application'
            - './conf/nginx.conf:/etc/nginx/conf.d/default.conf'
            - './survey:/var/www/html'
            - './log:/var/log'
        ports:
            - '63000:80'
            # - '443:443'

    php-fpm:
        build: php-fpm
        working_dir: /application
        volumes:
            - './data:/application'
            - './conf/php-ini-overrides.ini:/etc/php/8.4/fpm/conf.d/99-overrides.ini'
            - './conf/php-ini-overrides.ini:/etc/php/8.4/cli/conf.d/99-overrides.ini'
            - './survey:/var/www/html'
            - './log:/var/log'

Das SoSci Survey Installationpaket entpacken Sie nach C:\Daten\sosci\survey\, es sollte anschließend eine Datei C:\Daten\sosci\survey\index.html existieren.

Erstellen Sie folgende Konfiguration in C:\Daten\sosci\conf\nginx.conf

nginx.conf
server {
    listen 80 default;
 
    client_max_body_size 128M;
 
    access_log /var/log/nginx/access.log;
 
    root /var/www/html;
    index index.php;
 
    # try to serve file directly, fallback to index.php
    location / {
	try_files $uri $uri/ =404;
	index index.php index.html;
    }
 
    if (!-e $request_filename) {
        rewrite ^.*$ /index.php last;
    }
 
    # Forbidden directories
    location ~ ^/(inc|lib|system)/ {
        deny all;
        return 403;
    }
    location ~ ^/files/(protected|upload|share)/ {
        deny all;
        return 403;
    }
    location ~ /\.ht {
        deny all;
        return 403;
    }
 
    # Use default favicon, so no entries will appear in the errorlog
    location ~ ^/.*/favicon\.ico$ {
        try_files /favicon.ico =404;
    }
 
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass php-fpm:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PHP_VALUE "error_log=/var/log/nginx/application_php_errors.log";
        fastcgi_buffers 16 16k;
        fastcgi_buffer_size 32k;
        include fastcgi_params;
    }
 
}

Erstellen sie weiterhin die Konfiguration C:\Daten\sosci\conf\php-ini-overrides.ini

php-ini-overrides.ini
upload_max_filesize = 100M
post_max_size = 128M

Erstellen sie eine Konfiguration C:\Daten\sosci\php-fpm\Dockerfile

Dockerfile
FROM phpdockerio/php:8.4-fpm
WORKDIR "/application"
 
RUN apt-get update \
    && apt-get -y --no-install-recommends install \
        php8.4-bcmath \
        php8.4-gd \
        php8.4-imap \
        php8.4-intl \
        php8.4-memcached \
        php8.4-mysql \
        php8.4-xml \
        php8.4-gd \
        php8.4-mbstring \
        php8.4-zip \
        php8.4-apcu \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*

Starten Sie den Container in der Kommandozeile bzw. im Terminal mit folgendem Befehl:

  docker-compose up

Künftig können Sie die Container dann auch direkt in Docker Desktop starten.

Zugriff auf die Container

Die Installationsroutine rufen Sie auf mittels http://localhost:63000/admin/install.php.

Als Datenbank-Server in der SoSci Survey Installation tragen Sie mariadb:3306 ein.

de/server/docker.txt · Zuletzt geändert: von admin
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 4.0 International
Driven by DokuWiki