recherche

Maison  >  Questions et réponses  >  le corps du texte

请问下有人使用Docker来安装Laravel本地开发环境吗

有人使用docker来安装laravel本地环境吗,应该怎么做,安装好后怎么开发,就是一整套流程应该是什么样的?

曾经蜡笔没有小新曾经蜡笔没有小新2772 Il y a quelques jours855

répondre à tous(3)je répondrai

  • 滿天的星座

    滿天的星座2017-04-26 09:03:45

    Merci pour l'invitation. Laissez-moi vous parler de mon projet, j'espère que cela pourra apporter un peu d'aide sur le sujet.

    Tout d'abord, vous devez indiquer clairement qu'un conteneur et un processus peuvent être réalisés grâce à la collaboration entre plusieurs conteneurs.

    Ainsi, les quatre conteneurs suivants sont nécessaires :

    1. nginx

      • Fonction : Répondre aux requêtes Web et traiter les fichiers statiques.

      • Miroir : Pas besoin de le construire vous-même, il suffit de tirer directement l'image officielle.

    2. php-fpm

      • Fonction : Traiter les scripts PHP.

      • Mirror : Étant donné que le projet peut s'appuyer sur différentes extensions, vous devez vous appuyer sur l'image officielle pour le construire vous-même. De plus, le support du compositeur est requis.

    3. mysql

      • Fonction : base de données.

      • Miroir : Pas besoin de le construire vous-même, il suffit de tirer directement l'image officielle.

    4. redis

      • Fonction : cache base de données.

      • Miroir : Pas besoin de le construire vous-même, il suffit de tirer directement l'image officielle.

    Parlons de la construction de l'image php-fpm. Vous devez faire attention aux points suivants :

    • Fiez-vous simplement à l'image officielle php:7.0.12-fpm. Il n'est pas nécessaire de la construire à partir de zéro. Vous pouvez choisir la version par vous-même. Les bugs dans la dernière version ne sont pas exclus.

    • S'il n'est pas utilisé comme jouet, il est préférable de ne pas utiliser la série alpine de miroirs, bien qu'elle soit petite et exquise.

    Un exemple simple de fichier docker :

    FROM php:7.0.12-fpm
    MAINTAINER Tairy <tairyguo@gmail.com>
    
    WORKDIR /working
    RUN apt-get update --fix-missing && apt-get install -y \
        g++ autoconf bash git apt-utils libxml2-dev libcurl3-dev pkg-config \
        && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
        && echo "Asia/Shanghai" > /etc/timezone \
        && docker-php-ext-install iconv curl mbstring \
            xml json mcrypt mysqli pdo pdo_mysql zip \
        && docker-php-ext-configure gd \
            --with-gd \
            --with-freetype-dir=/usr/include/ \
            --with-png-dir=/usr/include/ \
            --with-jpeg-dir=/usr/include/ \
        && docker-php-ext-install gd \
        && docker-php-ext-enable gd \
        && pecl install /pecl/redis-3.0.0.tgz \
        && docker-php-ext-enable redis \
        && apt-get purge -y --auto-remove \
        && rm -rf /var/cache/apt/* \
        && rm -rf /var/lib/apt/lists/* \
        && rm -rf /pecl
        
    # 安装 composer
    RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \
        && php composer-setup.php \
        && php -r "unlink('composer-setup.php');" \
        && mv composer.phar /usr/local/bin/composer \
        && composer self-update \
        && composer config -g repo.packagist composer https://packagist.phpcomposer.com \
        && composer global require "laravel/installer=~1.1" \
        && composer global require predis/predis \
        && wget https://phar.phpunit.de/phpunit.phar \
        && chmod +x phpunit.phar \
        && mv phpunit.phar /usr/local/bin/phpunit

    Bien sûr, vous pouvez rencontrer des problèmes GFW pendant le processus de construction. Vous pouvez vous référer à mon article pour faire quelques ajustements : Docker Practice (7) : Améliorer le bonheur

    Après avoir construit l'image, la gestion multi-conteneurs nécessite l'utilisation d'outils d'orchestration docker-compose, il faut donc également écrire un fichier docker-compose.yml Un exemple simple (n'oubliez pas de lire les commentaires) : <🎜. >

    version: '2'
    services:
      nginx:
        image: nginx:alpine
        depends_on:
          - red
        ports:
          - 8080:80
        volumes:
          - /path/to/nginx.conf:/etc/nginx/nginx.conf
          - /path/to/default.conf:/etc/nginx/conf.d/default.conf
          # 这个挂载是为了处理静态文件
          - /path/to/static:/working
        networks:
          - app
      app:
        image: your-php-fpm-image
        depends_on:
          - mysql
          - redis
        volumes:
          - .:/working
          - /path/to/php.ini:/usr/local/etc/php/php.ini
        networks:
          - app
      mysql:
        image: mysql:latest
        environment:
          TZ: 'Asia/Shanghai'
          MYSQL_ROOT_PASSWORD: 123456
        volumes:
          - ./data:/var/lib/mysql
        ports:
          - 8002:3306
        networks:
          - app
      redis:
        image: redis:latest
        ports:
          - 8003:6379
        networks:
          - app
    networks:
      app:

    Quelques points à noter :

    • Assurez-vous de définir le réseau.

    • nginx.conf, default.conf, php.ini sont mieux définis par vous-même et montés dans le conteneur.

    • N'oubliez pas de définir votre fuseau horaire.

    De cette façon, le fichier default.conf dans nginx peut être écrit comme ceci :

    server {
      listen 80 default_server;
      server_name  default;
    
      location /static/ {
        root /working;
        index index.html;
      }
    
      index index.html index.php;
      root /working/public;
      location / {
        try_files $uri $uri/ /index.php?$query_string;
      }
    
      location /packages {
        try_files $uri $uri/;
      }
    
      location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        # 注意下面这行,pass 到 php-fpm 容器的服务名即可。
        fastcgi_pass app:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
      }
    
      sendfile off;
    }

    À ce stade, le travail de configuration est terminé. À l'avenir, il vous suffira de vous connecter au répertoire de votre projet pour exécuter

    .

    docker-compose up -d

    Il est temps de développer, n'est-ce pas très simple ?

    répondre
    0
  • 滿天的星座

    滿天的星座2017-04-26 09:03:45

    D'accord, laissez-moi vous recommander celui-ci
    Laradock
    De plus, si vous avez des difficultés à lire l'anglais, vous pouvez lire l'article du doyen...
    Laravel Academy
    Bien sûr, il y en a y a plein de choses qui peuvent être référencées je pense qu'il vaudrait mieux demander à foutu Google

    .

    répondre
    0
  • phpcn_u1582

    phpcn_u15822017-04-26 09:03:45

    Recommandez Laradock sur Github, n'oubliez pas de configurer une accélération domestique, sinon le téléchargement sera très lent

    répondre
    0
  • Annulerrépondre