Heim  >  Artikel  >  Backend-Entwicklung  >  So erstellen Sie selbst eine Docker-Entwicklungsumgebung für Laravel

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

不言
不言Original
2018-07-23 10:13:362548Durchsuche

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!

Stellungnahme:
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