Rumah > Soal Jawab > teks badan
有人使用docker来安装laravel本地环境吗,应该怎么做,安装好后怎么开发,就是一整套流程应该是什么样的?
滿天的星座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:
nginx
Fungsi: Menjawab permintaan web dan memproses fail statik.
Cermin: Tidak perlu membinanya sendiri, cuma tarik imej rasmi terus.
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.
mysql
Fungsi: pangkalan data.
Cermin: Tidak perlu membinanya sendiri, cuma tarik imej rasmi terus.
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?
滿天的星座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
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