Inhaltsverzeichnis
Hier verwenden wir das beschleunigte Bild „DaoCloud“ -
-Version als auch das
Jetzt müssen Sie nur noch die Bilder verbinden. Werfen Sie abschließend einen Blick auf den
In der Reihenfolge Zum Testen können Sie
Dateien löschen.
Modify docker-compose.yml
Verwandte Empfehlungen:
Heim Backend-Entwicklung PHP-Tutorial So erstellen Sie selbst eine Docker-Entwicklungsumgebung für Laravel

So erstellen Sie selbst eine Docker-Entwicklungsumgebung für Laravel

Jul 23, 2018 am 10:13 AM
docker laravel php

Der Inhalt, der in diesem Artikel mit Ihnen geteilt wird, befasst sich mit der Einrichtung einer Docker-Entwicklungsumgebung für Laravel. Freunde in Not können sich darauf beziehen.

Ich habe schon lange nichts mehr geschrieben. Heute werde ich darüber sprechen, wie man eine Docker-Umgebung für die Ausführung von Laravel erstellt.

Die bekannteste auf dem Markt ist „laradock“ https://github.com/laradock/laradock

Docker PHP-Entwicklungsumgebung
Nutzungsreferenz: http: / /laradock.io

Da es „selbst gebaut“ ist, können wir darauf zurückgreifen, um den Bedarf für den Laravel-Betrieb zu minimieren.

Das Folgende sind die Grundvoraussetzungen, die ich aufgelistet habe:

  1. Software: PHP 7.2, Nginx, MySQL, Composer, NPM oder Yarn usw.; >

  2. Verwenden Sie Haushaltsspiegel;
  3. Docker-Compose
  4. Um Skalierbarkeit zu erreichen, verwenden Sie genau wie „Laradock“ die Docker-Compose-Orchestrierungsmethode, um mehrere Kernbilder zusammenzufügen.

  5. php-fpm

Hier verwenden wir das beschleunigte Bild „DaoCloud“ -

.

Diese Version verwendet sowohl die

-Version als auch das

minimierte System. Auf dieser Grundlage können Sie zusätzliche für die Umgebung benötigte Tools installieren: wie

, 7.2-fpm-alpine,

,

Warte. PHP 7.2

FROM daocloud.io/php:7.2-fpm-alpine

MAINTAINER coding01 <yemeishu@126.com>

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories

RUN apk add --no-cache --virtual .build-deps \
        $PHPIZE_DEPS \
        curl-dev \
        imagemagick-dev \
        libtool \
        libxml2-dev \
        postgresql-dev \
        sqlite-dev \
    && apk add --no-cache \
        curl \
        git \
        imagemagick \
        mysql-client \
        postgresql-libs \
    && pecl install imagick \
    && docker-php-ext-enable imagick \
    && docker-php-ext-install \
        curl \
        iconv \
        mbstring \
        pdo \
        pdo_mysql \
        pdo_pgsql \
        pdo_sqlite \
        pcntl \
        tokenizer \
        xml \
        zip \
    && curl -s https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin/ --filename=composer \
    && apk del -f .build-deps

# 修改 composer 为国内镜像
RUN composer config -g repo.packagist composer https://packagist.laravel-china.org

# install prestissimo
RUN composer global require "hirak/prestissimo"

# install laravel envoy
RUN composer global require "laravel/envoy"

#install laravel installer
RUN composer global require "laravel/installer"

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories

RUN apk update && apk add -u nodejs libpng-dev python

ENV PATH /root/.yarn/bin:$PATH

RUN apk update \
  && apk add curl bash binutils tar \
  && rm -rf /var/cache/apk/* \
  && /bin/bash \
  && touch ~/.bashrc \
  && curl -o- -L https://yarnpkg.com/install.sh | bash \
  && yarn config set registry 'https://registry.npm.taobao.org' \
  && npm install -g cnpm --registry=https://registry.npm.taobao.org

WORKDIR /var/www
alpineIn dem das composer System-Plugin installiert ist, verwenden wir das nodejs Alibaba Cloud-Image. pythonyarn Informationen zur spezifischen Verwendung finden Sie unter: https://dashboard.daocloud.io/packages/019c8dce-ec80-4468-bddc-254fc62ef5c7

alpinenginxmirrors.aliyun.com

us Mit

wird hauptsächlich die Website-Konfigurationsdatei in php:7.2-fpm-alpine geladen.

FROM daocloud.io/nginx:1.13-alpine

MAINTAINER coding01 <yemeishu@126.com>

ADD vhost.conf /etc/nginx/conf.d/default.conf

WORKDIR /var/www

Jetzt müssen Sie nur noch die Bilder verbinden. Werfen Sie abschließend einen Blick auf den

Dateiinhalt:

version: '2'
services:

  # The Application
  app:
    build:
      context: ./
      dockerfile: app.dockerfile
    working_dir: /var/www
    volumes:
      - ../:/var/www
    environment:
      - "DB_PORT=3306"
      - "DB_HOST=database"
      - "REDIS_HOST=redis"
      - "REDIS_PORT=6379"

  # The Web Server
  web:
    build:
      context: ./
      dockerfile: web.dockerfile
    working_dir: /var/www
    volumes_from:
      - app
    ports:
      - 8080:80

  # The Database
  database:
    image: daocloud.io/mysql:5.7.4
    volumes:
      - dbdata:/var/lib/mysql
    environment:
      - "MYSQL_DATABASE=homestead"
      - "MYSQL_USER=homestead"
      - "MYSQL_PASSWORD=secret"
      - "MYSQL_ROOT_PASSWORD=secret"
    ports:
        - "3306:3306"

  redis:
    image: daocloud.io/library/redis:4.0.10-alpine
    command: redis-server --appendonly yes

volumes:
  dbdata:
nginxTesten Sie es erneutnginxErstellen Sie ein Laravel-Projekt

composer create-project laravel/laravel demo
docker-compose.ymlHinweis:

In der Reihenfolge Zum Testen können Sie

Ordner und

Dateien löschen.

Git-KlonIm selben Ordner des vendorProjekts, composer.lockunser selbst erstellter „Laraveldocker“:

git clone https://github.com/fanly/laraveldocker.git

Modify docker-compose.yml

Führen Sie unser Projekt mit dem Pfad der demo-Datei aus: git clone

app:
    build:
      context: ./
      dockerfile: app.dockerfile
    working_dir: /var/www
    volumes:
      - ../:/var/www
build

Führen Sie den Build-Befehl unter

aus: docker-compose.yml

docker-compose up

laraveldockerDie ganze Geschwindigkeit ist ziemlich hoch


Als nächstes den Container betreten

docker exec -it de075c525528 bash

Mal sehen, wie man installiert Der Plug-in-Effekt:

verwendet den

Haushaltsspiegel.

Hinweis: Bei diesem Spiegel handelt es sich um ein gemeinnütziges Projekt, das gemeinsam von der Laravel China-Community, Youpaiyun und Youfanyuanyang ins Leben gerufen wurde, mit dem Ziel, der Mehrheit der PHP-Benutzer stabile und schnelle Composer-Spiegelungsdienste für den Inland bereitzustellen.
Es wird empfohlen,

Referenz: http://laravel-china.org/topics/4484/composer-mirror-use-helphttps://packagist.laravel-china.org

Verwenden Sie

oder

Installieren Sie das Plug-in:

yarncnpmGenerieren

:

cp .env.example .env
php artisan key:generate

Application key [base64:4A7VK6MEX7FakPLDSLji97kz/nyWUAWhW4wYn3gefsY=] set successfully.
Führen Sie es aus und sehen Sie den Effekt:

Schauen wir uns als nächstes die Datenbankverbindung an und ändern Sie Laravel key secret:

DB_CONNECTION=mysql
DB_HOST=database
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

Wir verwenden , um Layout-, Registrierungs- und Anmeldeansichten sowie Routen für alle Authentifizierungsschnittstellen zu generieren. Gleichzeitig wird auch

generiert, um die Anmeldeanforderung der Anwendung zu verarbeiten. Verwenden Sie

, um Daten zu laden. .env

php artisan make:authHomeControllerphp artisan migrateSchauen wir uns das Datenblatt an:


An diesem Punkt ist es bedeutet, dass wir mit

verbunden sind. Die Datenbank ist in Ordnung.

Zusammenfassung

Im Lernprozess ist es am besten, die von anderen erstellte Docker-Datei zu verwenden, obwohl sie direkt verwendet werden kann Am besten wäre es, wenn es autark sein könnte.

MySQLSie können auch mehr erfahren, indem Sie Ihre eigene Docker-Entwicklungsumgebung erstellen. Wir werden es auch in Zukunft weiter verbessern und minimieren, um den Entwicklungsanforderungen gerecht zu werden.

Verwandte Empfehlungen:

Analyse von URL-Zugriffsmustern in TP5


Nginx Detaillierter Konfigurationscode

Das obige ist der detaillierte Inhalt vonSo erstellen Sie selbst eine Docker-Entwicklungsumgebung für Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP-Tutorial
1543
276
VS -Code -Verknüpfung, um sich auf das Explorer -Panel zu konzentrieren VS -Code -Verknüpfung, um sich auf das Explorer -Panel zu konzentrieren Aug 08, 2025 am 04:00 AM

In VSCODE können Sie das Panel- und Bearbeitungsbereich durch Abkürzungsschlüssel schnell wechseln. Um zum linken Explorer -Feld zu springen, verwenden Sie die Strg -Verschiebung E (Windows/Linux) oder CMD Shift E (MAC). Kehren Sie in den Bearbeitungsbereich zurück, um Strg `oder ESC oder Strg 1 ~ 9 zu verwenden. Im Vergleich zum Mausbetrieb sind Tastaturverknüpfungen effizienter und unterbrechen den Codierungsrhythmus nicht. Weitere Tipps sind: Strg KCtrl E Fokus -Suchkästchen, F2 -Datei umbenennen, Datei löschen, die Öffnungsdatei eingeben, Pfeilschlüssel erweitern/kollapten.

Behoben: Windows Update konnte nicht installiert werden Behoben: Windows Update konnte nicht installiert werden Aug 08, 2025 pm 04:16 PM

RunthewindowsUpdatetrouBleshooterviaSettings> Update & Sicherheit> FehlerbehebungOautomatischfixcommonissues.2.

Vergleichen und kontrastieren PHP -Merkmale, abstrakte Klassen und Schnittstellen mit praktischen Anwendungsfällen. Vergleichen und kontrastieren PHP -Merkmale, abstrakte Klassen und Schnittstellen mit praktischen Anwendungsfällen. Aug 11, 2025 pm 11:17 PM

UseInterfacestodeFineContractsfornrelatedCläses und sicherstellen, dass es sich um die Kenntnisse handelt

Fix: Ethernet 'Nicht identifiziertes Netzwerk' Fix: Ethernet 'Nicht identifiziertes Netzwerk' Aug 12, 2025 pm 01:53 PM

RestartyourRouterandComputertoresolvetemporaryglitches.2.RunthenetworkrouBleshooterviathesystemTraytoAutomaticFixCommonissues.3.RewhewIpadDressusesusesusesusesuSuseingCommandpromptasadMinistratorByRunningipconfig/Release, Ipconfig/Reufreset und Netshwinset und Netschon/Rufe, Netshwinset und Netshwinset und NETSHNE und NETSETH und NETSETH und NETHN

Wie man sich in Laravel -Tests verspotten Wie man sich in Laravel -Tests verspotten Aug 08, 2025 pm 04:24 PM

Usemail :: Fake () Verzierung :: fake () TomockfacadesAndasStSentMessageswithoUtrealSeffects.2.

Beschreiben Sie das Beobachter -Designmuster und seine Implementierung in PHP. Beschreiben Sie das Beobachter -Designmuster und seine Implementierung in PHP. Aug 15, 2025 pm 01:54 PM

TheobserverdesignPatternNenableAtomaticnotificationOfDependentObjectSwhenasubjectsSstatechanges.1) itdefinesaon-to-ManyDependencyBetobjects; 2) thesubjectmaintainSalistoBoBserverSandnotifiesthemviaAcommonNection;

Wie würden Sie die API -Versionierung in einer PHP -Anwendung implementieren? Wie würden Sie die API -Versionierung in einer PHP -Anwendung implementieren? Aug 14, 2025 pm 11:14 PM

ApiversioningInphpcanbeeffectivImplementeduseurl, Header, Orqueryparameter-Anpassungen, WithurlandheaderversioningBeingmostrecommended.1.Forurl-Basisversionierung, einschließlich derDeversionIntheroute (z

So erstellen Sie ein Forum mit Laravel So erstellen Sie ein Forum mit Laravel Aug 16, 2025 am 11:02 AM

SetupLaravelandinstalldependenciesusingComposerandLaravelBreezeforauthentication.2.CreatethedatabasestructurewithmodelsforUser,Thread,andPost,thenrunmigrations.3.Definerelationshipsinthemodels:Userhasmanythreadsandposts,Threadbelongstouserandhasmanyp

See all articles