Beispiel für die Bereitstellung einer Laravel-Anwendung mit Docker

Beispiel für die Bereitstellung einer Laravel-Anwendung mit Docker
  • Das in diesem Artikel verwendete PHP-Basisimage ist: php:7.3-apache
  • Die Laravel-Version in diesem Artikel ist: laravel:5.8.*
  • Über Warteschlangen und Aufgabenplanung schreiben wir im nächsten Artikel

1. Bereiten Sie unsere Laravel-Anwendung vor

# Führen Sie den Mix-Befehl aus, um JS-, CSS- und IMG-Dateien zu verpacken. Wenn Sie Mix nicht verwenden, können Sie die NPM-Installation überspringen.
npm-Produktion ausführen
# Installieren Sie Abhängigkeiten in composer.lock composer install --ignore-platform-reqs --optimize-autoloader --no-dev

2. Bereiten Sie die Apache-Konfigurationsdatei docker/000-default.conf vor

<VirtuellerHost *:80>
 # Die ServerName-Direktive legt das Anforderungsschema, den Hostnamen und den Port fest,
 # der Server verwendet, um sich zu identifizieren. Dies wird beim Erstellen verwendet
 # Umleitungs-URLs. Im Kontext virtueller Hosts ist der ServerName
 # gibt an, welcher Hostname im Host:-Header der Anfrage erscheinen muss, um
 # passt zu diesem virtuellen Host. Für den Standard-Virtual-Host (diese Datei) ist dies
 #-Wert ist nicht entscheidend, da er unabhängig davon als Host der letzten Instanz verwendet wird.
 # Sie müssen es jedoch für jeden weiteren virtuellen Host explizit festlegen.
 #ServerName www.example.com

 ServerAdmin [email protected]
 Dokumentstammverzeichnis /var/www/html/public

 # Verfügbare Loglevel: trace8, ..., trace1, debug, info, notice, warn,
 # Fehler, kritisch, Alarm, Notfall.
 # Es ist auch möglich, den Loglevel für bestimmte
 # Module, z. B.
 #LogLevel info ssl:warn

 Fehlerprotokoll ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log kombiniert

 # Für die meisten Konfigurationsdateien aus conf-available/, die
 # global aktiviert oder deaktiviert werden, ist es möglich,
 # eine Zeile für nur einen bestimmten virtuellen Host einschließen. Zum Beispiel die
 # Die folgende Zeile aktiviert die CGI-Konfiguration nur für diesen Host
 # nachdem es mit „a2disconf“ global deaktiviert wurde.
 #Conf-available/serve-cgi-bin.conf einschließen
</VirtualHost>

3. Bereiten Sie das Dockerfile vor

VON php:7.3-apache

LABEL-Betreuer="[email protected]"

# Zeitzone ARG TZ=Asia/Shanghai einstellen
ENV TZ ${TZ}
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# Software-Cron installieren
RUN set -eux \
 && apt-get update \
 && apt-get install -y --no-install-recommends cron \
 && apt-get autoremove \
 && apt-get autoclean \
 && apt-get sauber \
 && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
 
# Erweiterung ENV PHP_EXTENSION installieren \
 pdo_mysql \
 bcmath
ENV PECL_EXTENSION \
 Redis
FÜHREN SIE DOCKER-PHP-EXT-INSTALL $PHP_EXTENSION \ AUS
 && pecl installiere $PECL_EXTENSION \
 && docker-php-ext-enable $PECL_EXTENSION \
    opcache \
 && a2enmod neu schreiben
 
# Zugangsport EXPOSE 80

ARG APP_ENV=Entwicklung
ENV APP_ENV ${APP_ENV}

KOPIEREN --chown=www-data:www-data . /var/www/html
KOPIEREN Sie docker/000-default.conf /etc/apache2/sites-available/000-default.conf
ARBEITSVERZEICHNIS /var/www/html

4. Dockerignore-Datei vorbereiten: .dockerignore (optional)

/Knotenmodule
/.dockerignore
/Dockerdatei

5. Bereiten Sie die Image-Eintragsdatei vor: docker-entrypoint.sh (optional)

Beachten Sie, dass diese Datei Ausführungsberechtigungen erfordert, diese Eintragsdatei jedoch nicht erforderlich ist. Sie dient lediglich dazu, einige Cache-Befehle auszuführen, bevor die Anwendung ausgeführt wird. Klicken Sie hier, um mehr darüber zu erfahren.

#!/usr/bin/env bash

PHP Artisan Cache: löschen
PHP Artisan-Konfiguration: Cache
php Artisan-Route:Cache
PHP Artisan-Ansicht:Cache

Apache2-Vordergrund

6. Ausführen des Images

docker run -p 80:80 .

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung zur Installation der Laravel-Entwicklungsumgebung mit Docker
  • Detailliertes Tutorial zur Verwendung von Docker zum Erstellen einer lokalen Laravel-Umgebung
  • So verwenden Sie Docker Compose zum Orchestrieren von Laravel-Anwendungen
  • Detaillierte Erklärung zur Verwendung von Docker zum Erstellen einer Entwicklungsumgebung für Laravel- und Vue-Projekte
  • Docker stellt Laravel-Anwendung bereit, um Warteschlangen- und Aufgabenplanung zu realisieren
  • Führen Sie die Schritte zum Erstellen einer Laravel-Entwicklungsumgebung mit Docker aus

<<:  Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.23 Winx64 unter Win10

>>:  So verwenden Sie den Skeleton-Bildschirm im Vue-Projekt

Artikel empfehlen

Verwendung der Linux Dynamic Link Library

Im Vergleich zu gewöhnlichen Programmen haben dyn...

Detaillierte Erklärung der HTML-Download-Funktion

Das neue Projekt ist im Grunde abgeschlossen. Es ...

SSH-Portweiterleitung zur Erzielung einer Intranet-Penetration

Die Maschinen in unserem LAN können auf das exter...

So verbessern Sie die MySQL Limit-Abfrageleistung

Bei MySQL-Datenbankoperationen hoffen wir immer, ...

VM VirtualBox virtuelle Maschine mounten freigegebenen Ordner

Eine Umgebung Installieren Sie VMware Tools auf C...

Detaillierte Analyse des temporären JDBC- und MySQL-Tablespace

Hintergrund Temporäre Tablespaces werden verwende...

Zusammenfassung der Wissenspunkte zum Abdecken von Indizes in MySQL

Wenn ein Index die Werte aller abzufragenden Feld...

Implementierungsbeispiel für das Zurücksetzen des CSS-Reset-Stils

Einführung: Alle Browser verfügen über Standardst...

MySQL verwendet Ereignisse, um geplante Aufgaben abzuschließen

Ereignisse können die Ausführung von SQL-Code ein...

So installieren Sie Theano und Keras auf einem Ubuntu-System

Hinweis: Das System ist Ubuntu 14.04LTS, ein 32-B...

Nginx implementiert ein Codebeispiel für die https-Websitekonfiguration

https-Basisport 443. Er wird für etwas verwendet,...

Verwenden Sie xshell, um eine Verbindung zum Linux-Server herzustellen

Vorteile der Verwendung von xshell zur Verbindung...