IT-Solutions for Special Requirements

Schlagwort: atmoz/sftp

Fast docker with Nginx, MariaDB and Php, Part IV

Nach dem erstellen der :

  • DB Container auf Basis von mariadb:10.1.48
  • PHP Container auf Basis von php:7.4-fpm
  • SCP Container auf Basis von atmoz/sftp

benötigen wir noch einen Nginx Container der zum Host Port 80 freigibt.

Die Konfiguration für den Nginx Container inkl. der Anhängigkeiten zu den Containern aus Part I-III sieht wiefolgt aus:

version: '3'
services:
  web:
    image: nginx:latest
    depends_on: 
      - sftp
      - php
      - db
    ports:
      - '80:80'
    volumes:
      - template-html:/var/www/html    
      - ./container/web/nginx.conf:/etc/nginx/conf.d/default.conf    

Ebenso wie der Php Container und der Sftp Container mountet der Nginx Container das template-html Volume.

Das Config-File ./container/web/nginx.conf wird in das Host-Dateisystem gemounet um einfach editiert zu werden.

Das gesamte Projekt befindet hier auf https://github.com/getit-berlin/fast-docker-php-template

Fast docker with Nginx, MariaDB and Php, Part III

Die Anwendungsdaten unter /var/www/html werden nicht in das Hostsystem gemountet. Das wurde im Fast Docker Part II beschrieben. Das Directory /var/www/html wird in das volume gemountet:

    volumes:
      - template-html:/var/www/html

Um in dem Volume zu schreiben benötigen wir einen weiteren container. Dieses Verfahren beschleunigt radikal die Funktionsweise der Container. Daten werden nicht in das Hostsystem gemountet sondern bleiben im Container und im Besten Fall sogar im Cache und Arbeitsspeicher.

Die Konfiguration des sftp / scp Dienstes sieht wiefolgt aus:

  sftp:
    image: atmoz/sftp
    volumes:
      - template-html:/home/${SFTP_USER}/upload
    ports:
        - "${SFTP_PORT}:22"
    command: ${SFTP_USER}:${SFTP_PASS}:33

Als Basis für den Container wird atmoz/sftp verwendet.

Die entsprechenden Parameter werden über die .env Datei festgelegt.

SFTP_HOST=127.0.0.1
SFTP_PORT=2222
SFTP_USER=runner
SFTP_PASS=pass

Die Zeile:

command: ${SFTP_USER}:${SFTP_PASS}:33

legt fest welcher Systemuser den angemeldeten SCP /SFTP User representiert.

Das entsprechende Github Projekt kann man unter https://github.com/atmoz/sftp finden.

Das gesamte Projekt befindet hier auf https://github.com/getit-berlin/fast-docker-php-template

Präsentiert von WordPress & Theme erstellt von Anders Norén