Docker Beispiel Php

Docker Beispiel Php

In diesem Beispiel möchten wir das Micro Framework PHP Slim und den PHP Package Manager Composer installieren.

1. Wir erstellen ein composer.json File und inkludieren die Abhängigkeiten. 

{
   "require": {
       "slim/slim": "^3.0"
   }
}

2. Wir benötigen einen Startpunkt eines PHP Images. Ein PHP Image welches unseren Anforderungen - einen Web Server zu starten inkludiert. Dafür eignet sich das Apache Image. Wir können auf Docker Hub nach PHP suchen und dort im offiziellen Image finden wir die aktuellste Version. Wir sehen uns das Image an und können folgende Informationen daraus gewinnen:

- Der Server rennt auf Port 80

- Der Working Dir Pfad lautet /var/www/html

3. Wir erstellen ein Dockerfile mit den gewonnen Informationen

FROM php:7.3.1-apache

4. Anhand der Composer Webseite entnehmen wir die Methode zur programmatischen Installation von Composer und fügen diese unserem Dockerfile hinzu. Link: How do I install Composer programmatically?

RUN EXPECTED_SIGNATURE="$(wget -q -O - https://composer.github.io/installer.sig)" && \ 
    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
    ACTUAL_SIGNATURE="$(php -r "echo hash_file('SHA384', 'composer-setup.php');")" && \
    if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ]; then >&2 echo 'ERROR: Invalid installer signature' ; rm composer-setup.php; exit 1; fi && \
    php composer-setup.php --quiet && \
    rm composer-setup.php && \
    mv composer.phar /usr/local/bin/composer

Note: Mit der Zeile mv composer.phar /usr/local/bin/composer haben wir die Installation Global gesetzt.

5. Anschließend kopieren wir unser Composer.json File in unser Docker Image und führen Composer install aus.

COPY ./composer.json /var/www/html/

RUN composer install

6. Um dem Apache Web Server mitzuteilen wie das Routing funktioniert und somit PHP Slim überhaupt funktioniert. Müssen wir eine .htaccess anlegen.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]

7. Um das Rewrite Module zu aktivieren und eine Bespiel index.php sowie unsere .htaccess zu kopieren erweitern wir unser Dockerfile.

RUN a2enmod rewrite

COPY ./composer.json index.php .htaccess /var/www/html/

#

Pixelparker Logo
Autor
pixelparker
Weitere Artikel die Sie interessieren könnten
Flutter - Firebase Starter Infos
Flutter und Firebase ergeben ein mächtiges Konstrukt zur Entwicklung mobiler Anwendungen.
Flutter - Change App Package Name for Android and iOS
Flutter App Package Name für Android und iOS anpassen, updaten, verändern.
Facebook Customer Chat Plugin
Wir integrieren einen Facebook Kunden Chat in unsere Webseite. Dadurch können wir den Kunden zugleich mit einem Facebook Profil assoziieren und die Speicherung der Daten über unsere Facebook Seite verwalten.
Docker Beispiel Php
Viele Projekte verwenden NPM, Composer oder PIP als Package Manager. In diesem Beispiel sehen wir uns an, wie wir mit Docker diese Abhängigkeiten mit intigrieren können.
Silverstripe Tipps und Tricks
Hier schreiben wir eine nützliche Informationen zur Entwicklung mit dem Silverstripe Framework / CMS.
Browsermarktanteile
Chrome, Firefox, Internet Explorer, Safari, Edge, Opera und wie sie Alle heißen. Für welchen Browser sollen wir unsere Webseite testen?
Docker bundled Information
In diesem Beitrag sind einige wichtige Docker Informationen gebündelt. Eine Art Cheatsheet oder zur Auffrischung.
SVG Logo Animation
Wir zeigen euch wie man einfach und schnell ein SVG Logo oder Icon animieren kann. Dafür arbeiten wir mit dem bekannten Animations-Tool Greensock (GSAP).
MySql Root Passwort zurücksetzen.
Es kann schon einmal vorkommen, dass man das ein oder andere Passwort der Sicherheit wegen, nicht gerade am Bildschirm kleben hat. Was also machen - wenn man das Root Passwort seiner MySQL Datenbank nicht mehr kennt?
Bald geht ohne PHP 7 nichts mehr
WARNUNG: Möglicherweise ist ihr Handeln jetzt gefragt um eine Abschaltung zu verhindern. Die Unterstützung für PHP 5.6 läuft am 31.12.2018 aus, das ist die letzte Version von PHP 5. Auch für die erste PHP 7.0 Version ist bereits am 03.12.20...
Html5 Tag <picture>
Mit dem Html5 Element <picture> bekommen <img> Tags einen Container. Dadurch können Bilder für unterschiedliche Displaygrößen optimiert werden. Weder CSS noch JS ist dafür notwendig!
macOS Cheatsheet
In diesem Artikel fassen wir nützliche Mac Tastaturkurzbefehle zusammen. Zudem Listen wir einige häufig verwendete Sonderzeichen Kombinationen auf.
Kein HTTP ohne S!
Eine moderne Webseite ist kein statisches Produkt und sollte neben aktuellen Inhalt auch schnell und vor allem sicher und fehlerfrei sein. Diese Eigenschaften sind nebenbei die wichtigsten um bei Google ein entsprechend gutes Ranking zu erh...
Google Maps API Key Error
Die integrierte Google Karte zeigt "For development purposes only". Das ist leider kein Fehler am API Key sondern eine beabsichtigte und neue Einschränkung seitens Google. Die Angabe einer Kreditkarte ist Notwendig. Google beschränkt den Fr...
GitLab SSH
Eine kurze Erklärung zum erstellen einer SSH Verbindung zu GitLab.
Composer macOS
Schnell und einfach kurz mal composer am mac installieren. Der PHP Pakermanager wird in vielen unterschiedlichen Projekten verwendet.
macOS tree Command
Mit tree können wir uns Verzeichnisse in einer übersichtlichen Baumform anzeigen lassen. Wir zeigen euch wie ihr schnell und einfach tree auf euren Mac bekommt.
Git - Häufige Task und Cheatsheet
Git die freie Software zur verteilten Versionsverwaltung von Dateien. Hier notieren wir uns einige häufig verwendeten Tasks als Cheatsheet.
pixelparker Artikel bei debitoor
Kürzlich hat uns Debitoor einige Fragen zum Thema "Selbstständig mit IT Services" gestellt und in einem netten kleinen Beitrag auf deren Blog veröffentlich. 
Linux Vim Simple Cheatsheet
Ein Webentwickler arbeitet unweigerlich immer wieder mit Linux, da Webserver meist Linux basierend sind. Diese kleine Zusammenfassung, liefert die gängigsten Server und Editor Kommandos.