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

Detaillierte Erklärung der Verwendung des Linux-Befehls „tee“

Der Befehl tee wird hauptsächlich verwendet, um d...

Automatisiertes Frontend-Deployment basierend auf Docker, Nginx und Jenkins

Inhaltsverzeichnis Vorbereitende Vorbereitung Ber...

So installieren und ändern Sie das Anfangskennwort von mysql5.7.18

Informationen zur Centos-Installation von MySQL f...

Zwei Möglichkeiten zur Implementierung von Square Div mit CSS

Ziel: Erstelle ein Quadrat, dessen Seitenlänge gl...

Zusätzliche Anweisungen zur Verwendung von Gettern und Aktionen in Vuex

Vorbemerkungen 1.Unterschiede zwischen Vue2.x und...

Detaillierte Erklärung zur korrekten Installation von OpenCV auf Ubuntu

Dieser Artikel beschreibt, wie man OpenCV mit C++...

MySQL-Lösung für die Konfiguration mehrerer Instanzen

1.1 Was ist MySQL Multi-Instance? Einfach ausgedr...

Detaillierte Erklärung des VUE-Reaktionsprinzips

Inhaltsverzeichnis 1. Grundlage des Responsive-Pr...

WeChat Mini-Programm implementiert den Likes-Dienst

In diesem Artikel wird der spezifische Code für d...

Beispielcode zur Implementierung von Anti-Shake in Vue

Anti-Shake: Verhindert, dass wiederholte Klicks E...

So führen Sie den Betrieb nach dem Verlassen des Docker-Containers weiter aus

Phänomen: Führen Sie ein Image aus, zum Beispiel ...

Nginx definiert die Zugriffsmethode für Domänennamen

Ich erstelle derzeit Nginx, kann aber nicht über ...

So verwenden Sie JS zum Parsen des Excel-Inhalts in der Zwischenablage

Inhaltsverzeichnis Vorwort 1. Ereignisse und Zwis...

Detaillierte Schritte zum Ändern gespeicherter MySQL-Prozeduren

Vorwort Bei der tatsächlichen Entwicklung werden ...