Le contenu de cet article concerne la mise en place d'un environnement de développement Docker pour Laravel. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Je n'ai rien écrit depuis longtemps. Aujourd'hui, je vais parler de la façon de créer un environnement Docker pour que Laravel puisse s'exécuter.
Le plus connu du marché est "laradock" https://github.com/laradock/laradock
Environnement de développement Docker PHP
Référence d'utilisation : http : / /laradock.io
Comme il est "auto-construit", nous pouvons nous y référer pour minimiser les besoins de fonctionnement de Laravel.
Voici les exigences de base que j'ai énumérées :
Logiciel : PHP 7.2, Nginx, MySQL, Composer, NPM ou Yarn, etc. ; >
Pour atteindre l'évolutivité, tout comme "laradock", utilisez la méthode d'orchestration Docker-Compose pour assembler plusieurs images principales ensemble.
, 7.2-fpm-alpine
, ,
PHP 7.2
alpine
Dans lequel le plug-in système composer
est installé, nous utilisons l'image nodejs
Alibaba Cloud. python
yarn
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
nginxalpine
mirrors.aliyun.com
us Utiliser
. php:7.2-fpm-alpine
nginx
nginx
Testez-le à nouveau
FROM daocloud.io/nginx:1.13-alpine MAINTAINER coding01 <yemeishu@126.com> ADD vhost.conf /etc/nginx/conf.d/default.conf WORKDIR /var/www
docker-compose.yml
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:
composer create-project laravel/laravel demo
Dans le même dossier du projet , vendor
notre "laraveldocker" auto-construit : composer.lock
Exécutez notre projet avec le chemin du fichier demo
: git clone
git clone https://github.com/fanly/laraveldocker.git
: docker-compose.yml
app: build: context: ./ dockerfile: app.dockerfile working_dir: /var/www volumes: - ../:/var/www
laraveldocker
La vitesse totale est assez rapide
docker-compose up
Jetons un coup d'œil à l'effet de l'installation du plug-in :
docker exec -it de075c525528 bash
miroir domestique.
Remarque : Ce miroir est un projet de bien-être public lancé conjointement par la communauté Laravel Chine, Youpaiyun et Youfanyuanyang, visant à fournir des services de mise en miroir nationaux Composer stables et à haut débit pour la majorité des utilisateurs de PHP. Il est recommandé d'utiliser
https://packagist.laravel-china.org
ouInstallez le plug-in :
yarn
Générez cnpm
:
Exécutez-le et voyez l'effet :
Regardons ensuite la connexion à la base de données, modifions Laravel key secret
:
cp .env.example .env php artisan key:generate Application key [base64:4A7VK6MEX7FakPLDSLji97kz/nyWUAWhW4wYn3gefsY=] set successfully.
Nous utilisons pour générer des vues de mise en page, d'enregistrement et de connexion, ainsi que des itinéraires pour toutes les interfaces d'authentification. . Dans le même temps, il générera également
pour gérer la demande de connexion de l'application. Utilisez pour charger des données. .env
DB_CONNECTION=mysql DB_HOST=database DB_PORT=3306 DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret
php artisan make:auth
HomeController
Jetons un coup d'œil à la fiche technique : php artisan migrate
La base de données est OK.
Résumé
Dans le processus d'apprentissage, il est préférable d'utiliser le Dockerfile créé par d'autres Bien qu'il puisse être utilisé directement, il. ce serait mieux s'il pouvait être autosuffisant.
Vous pouvez également en apprendre davantage en créant votre propre environnement de développement Docker. À l'avenir, nous continuerons à l'améliorer et à le minimiser pour répondre aux besoins de développement. MySQL
Nginx Code détaillé de configuration
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!