


So erstellen Sie selbst eine Docker-Entwicklungsumgebung für Laravel
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:
Software: PHP 7.2, Nginx, MySQL, Composer, NPM oder Yarn usw.; >
Verwenden Sie Haushaltsspiegel; - Docker-Compose
Um Skalierbarkeit zu erreichen, verwenden Sie genau wie „Laradock“ die Docker-Compose-Orchestrierungsmethode, um mehrere Kernbilder zusammenzufügen.
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
alpine
In dem das composer
System-Plugin installiert ist, verwenden wir das nodejs
Alibaba Cloud-Image. python
yarn
Informationen zur spezifischen Verwendung finden Sie unter: https://dashboard.daocloud.io/packages/019c8dce-ec80-4468-bddc-254fc62ef5c7alpine
nginxmirrors.aliyun.com
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:
nginx
Testen Sie es erneutnginx
Erstellen Sie ein Laravel-Projekt
composer create-project laravel/laravel demo
docker-compose.yml
Hinweis: In der Reihenfolge Zum Testen können Sie
Ordner undDateien löschen.
Git-KlonIm selben Ordner des vendor
Projekts, composer.lock
unser 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/wwwbuildFühren Sie den Build-Befehl unter
aus: docker-compose.yml
docker-compose up
laraveldocker
Die 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 Sieoder
Installieren Sie das Plug-in:
yarn
cnpm
Generieren
cp .env.example .env php artisan key:generate Application key [base64:4A7VK6MEX7FakPLDSLji97kz/nyWUAWhW4wYn3gefsY=] set successfully.

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
, um Daten zu laden. .env
php artisan make:auth
HomeController
php artisan migrate
Schauen wir uns das Datenblatt an:
An diesem Punkt ist es bedeutet, dass wir mit
verbunden sind. Die Datenbank ist in Ordnung.Zusammenfassung
MySQL
Sie 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!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

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

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

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.

RunthewindowsUpdatetrouBleshooterviaSettings> Update & Sicherheit> FehlerbehebungOautomatischfixcommonissues.2.

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

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

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

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

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

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