• Aktuell
    • Tags
    • Beliebt
    • Benutzer
    • Gruppen
    • Suche
    • Registrieren
    • Anmelden

    Self-Hosting Guide - Docker und Docker Compose

    Tipps & Tricks
    1
    1
    201
    Lade mehr Beiträge
    • Älteste zuerst
    • Neuste zuerst
    • Meiste Stimmen
    Antworten
    • In einem neuen Thema antworten
    Anmelden zum Antworten
    Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
    • P
      pdirksen
      zuletzt editiert von

      Wir hosten eine CT-Instanz auf einem eigenen Server (Dedicated Root) und verwenden für eine schnelle Einrichtung Docker bzw Docker Compose. Im Folgenden eine Kurzanleitung sowie der Quelltext des Dockerfile und der docker-compose.yml für die aktuelle CT-Version (Stand 2022-11-26):

      Anmerkungen

      • Basisimage ist PHP 8.0 mit Apache
      • Ein Reverse Proxy sowie die Verwaltung des SSL Zertifikats übernimmt bei uns Plesk (Nginx), daher nicht Bestandteil des Images. Die Konfiguration habe unten aufgeführt.
      • Die Datenbankverwaltung geht ebenfalls über Plesk. Ebenfalls nicht Bestandteil der Docker-Images.
      • Den Pfad zum Churchtools tar.gz Package habe ich entschärft. Bitte fragt den CT-Support nach der entspr. URL.
      • Das einmalige Initialisieren der Datenbank könnte man ebenfalls im Dockerfile unterbringen.

      Dockerfile

      FROM php:8.0-apache
      
      ENV CHURCHTOOLS_VERSION=3.91.1
      ENV TZ=Europe/Berlin
      
      ADD php.ini /usr/local/etc/php/php.ini
      
      RUN mkdir -p /tmptwig/cache && chown -R www-data:www-data /tmptwig
      
      RUN set -ex; \
          apt update && \
          apt install -y libldap2-dev libmcrypt-dev wget ssl-cert unzip \
          libfreetype6-dev libjpeg62-turbo-dev libpng-dev libzip-dev libwebp-dev && \
          rm -rf /var/lib/apt/lists/*
      
      RUN set -ex; \
          docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \
          docker-php-ext-install -j$(nproc) ldap && \
          docker-php-ext-install -j$(nproc) iconv && \
          docker-php-ext-configure gd --with-webp --with-freetype --with-jpeg && \
          docker-php-ext-install -j$(nproc) gd && \
          docker-php-ext-install -j$(nproc) exif && \
          docker-php-ext-install -j$(nproc) pdo pdo_mysql zip && \
          a2enmod rewrite && a2enmod headers
      
      USER www-data
      
      RUN curl -SL https://########/#/#######/files/?p=%2Fchurchtools-$CHURCHTOOLS_VERSION.tar.gz\&dl=1 \
          | tar -xz --strip 1 -C /var/www/html
      

      docker-compose.yml

      version: '2.3'
      
      services:
        churchtools:
          image: myname-churchtools:80
          container_name: myname-churchtools
          restart: unless-stopped
          mem_limit: 1G
          environment:
            - TZ=Europe/Berlin
          ports:
            - "11180:80"
          volumes:
            - ./app/sites:/var/www/html/sites
          build:
            context: build/
            dockerfile: Dockerfile
            args:
              - EXTRA_LOCALES=fr_FR.UTF-8 UTF-8, de_DE.UTF-8 UTF-8, it_IT.UTF-8 UTF-8, es_ES.UTF-8 UTF-8
      

      nginx Konfiguration

      location ~ ^/(?!(\.well-known)).* {
      	proxy_pass http://0.0.0.0:11180;
      	proxy_set_header Host             $host;
      	proxy_set_header X-Real-IP        $remote_addr;
      	proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
      }
      

      Verbesserungsvorschläge sind gerne willkommen.

      1 Antwort Letzte Antwort Antworten Zitieren 1
      • Erster Beitrag
        Letzter Beitrag