cari

Rumah  >  Soal Jawab  >  teks badan

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

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

曾经蜡笔没有小新曾经蜡笔没有小新2772 hari yang lalu857

membalas semua(3)saya akan balas

  • 滿天的星座

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

    Terima kasih atas jemputan. Biar saya beritahu anda tentang rancangan saya.

    Pertama sekali, anda perlu menjelaskan dengan jelas bahawa satu bekas dan satu proses boleh diselesaikan melalui kerjasama antara berbilang bekas.

    Jadi, empat bekas berikut diperlukan:

    1. nginx

      • Fungsi: Menjawab permintaan web dan memproses fail statik.

      • Cermin: Tidak perlu membinanya sendiri, cuma tarik imej rasmi terus.

    2. php-fpm

      • Fungsi: Memproses skrip PHP.

      • Cermin: Memandangkan projek mungkin bergantung pada sambungan yang berbeza, anda perlu bergantung pada imej rasmi untuk membinanya sendiri Selain itu, sokongan komposer diperlukan.

    3. mysql

      • Fungsi: pangkalan data.

      • Cermin: Tidak perlu membinanya sendiri, cuma tarik imej rasmi terus.

    4. redis

      • Fungsi: pangkalan data cache.

      • Cermin: Tidak perlu membinanya sendiri, cuma tarik imej rasmi terus.

    Mari kita bercakap tentang pembinaan imej php-fpm Anda perlu memberi perhatian kepada perkara berikut:

    • Hanya bergantung pada imej rasmi php:7.0.12-fpm Tidak perlu membinanya dari awal Anda boleh memilih versi sendiri.

    • Jika ia tidak digunakan sebagai mainan, sebaiknya jangan gunakan siri alpine cermin, walaupun ia kecil dan indah.

    Contoh fail docker yang mudah:

    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

    Sudah tentu, anda mungkin menghadapi masalah GFW semasa proses pembinaan Anda boleh merujuk artikel saya untuk membuat beberapa pelarasan: Amalan Docker (7): Meningkatkan Kebahagiaan

    Selepas membina imej, pengurusan berbilang bekas memerlukan penggunaan alat orkestrasi docker-compose, jadi anda juga perlu menulis fail docker-compose.yml Contoh mudah (jangan lupa baca ulasan):

    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:

    Beberapa perkara yang perlu diberi perhatian:

    • Pastikan anda mentakrifkan rangkaian.

    • nginx.conf, default.conf, php.ini paling baik ditakrifkan oleh anda sendiri dan dipasang ke dalam bekas.

    • Jangan lupa tetapkan zon waktu anda.

    Dengan cara ini, fail default.conf dalam nginx boleh ditulis seperti ini:

    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;
    }

    Pada ketika ini, kerja konfigurasi selesai Pada masa hadapan, anda hanya perlu cd ke direktori projek anda untuk melaksanakan

    docker-compose up -d

    Sudah tiba masanya untuk membangun, bukankah ia sangat mudah?

    balas
    0
  • 滿天的星座

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

    Baiklah, izinkan saya mengesyorkan yang ini
    Laradock
    Selain itu, jika anda mengalami kesukaran membaca bahasa Inggeris, anda boleh membaca artikel dekan...
    Akademi Laravel
    Sudah tentu, terdapat Di sana adalah banyak perkara yang boleh dirujuk. Saya rasa lebih baik bertanya kepada Google

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-04-26 09:03:45

    Syorkan laradock pada Github, jangan lupa untuk mengkonfigurasi pecutan domestik, jika tidak muat turun akan menjadi sangat perlahan

    balas
    0
  • Batalbalas