Home >> Blog >> Laradock - 快速入門 Laravel + Docker 教學
Laradock - 快速入門 Laravel + Docker 教學
簡而言之,Laradock 是一套由社群整合的 dockerised 軟體。本快速教學將為您提供有關如何開始使用 Laradock 的快速概述。
先決條件
- git、laravel、docker和docker-compose的工作知識
- 安裝 docker 引擎 + docker compose
如果您是 Docker 新手,請隨時查看我的其他教學:
Laradock VS Laravel 宅基地
Laradock 是 Laravel Homestead 的 Docker 版本。雖然這兩種工具都可以提供強大的開發環境,但 Laradock 提供了以下好處:
輕量級和可擴展
- 與宅基地不同,Laradock 將所有軟體拆分為可隔離的 docker 容器。您只需安裝/運行必要的東西,而不是將所有東西都集中到一台虛擬機中。
與主機共享內核
- 在幾秒鐘而不是幾分鐘內啟動開發環境!共享內核顯著減少了資源消耗並為您提供高性能環境。
生產友好
- 是的,這是正確的。Laradock 可以用於開發或生產。
它只是工作!
- 是的,一旦您構建了 docker 映像,您就可以放心,無論您的機器類型如何,docker 容器都可以在任何地方工作。
關鍵概念
每個 Laradock 文件夾都是社群添加的 dockerised 軟體。您可以選擇要使用哪個軟體來運行您的應用程序。我將介紹運行 Laravel 應用程序所需的基本容器。
工作區容器
這是你運行大部分 CLI 命令的地方,例如 bash 命令、php artisan 命令、composer install、yarn/npm 等。你可以使用這個容器作為與你的應用程序交互的地方
PHP-FPM 容器
這是所有 PHP 腳本運行的地方。確保在此處安裝所有軟體/PHP 擴展,而不是在工作區容器中。
Nginx / Apache 容器
我們的網絡伺服器。這與我們的 PHP 應用程序是隔離的,僅用於處理 Web 請求。您可以分別在他們的文件夾中找到配置文件。
MySQL 容器
同樣,這是與其他容器隔離的。默認情況下,數據存儲在~/.laradock/data主機的文件夾中。.env您可以在文件中更改此位置。
安裝
- 安裝 Laravel 的新副本並將 Laradock 添加為子模塊。 官方 Laradock 的 github:https ://github.com/LaraDock/laradock
- 您應該會看到一個 laradock 文件夾出現在您的項目根目錄中。這是一個大文件夾,所以請保持冷靜,不要不知所措!
- .env 文件
打開 laradock 文件夾中的 .env 文件。該文件包含容器所需的大部分配置,例如 PHP 版本、數據庫路徑等。確保自定義環境變量以適合您的用例。需要關注的關鍵變量是:
.APP_CODE_PATH_CONTAINER
.DATA_PATH_HOST(確保主機中存在路徑)
.COMPOSE_PROJECT_NAME
.以及容器的軟體版本
- 設置網絡伺服器。
我正在使用 Nginx,但如果您願意,可以隨意使用 Apache。
.轉到 laradock > nginx > sites Laradock 會將此文件夾烘焙到 docker 映像中。因此,每次在此處進行更改時,都需要重新構建映像。
.複製 laravel.conf.example 並將其重命名為your-app.conf
.將伺服器名稱更改為您應用的域。(如果尚未在主機文件中添加域,請記住添加域)
.conf 文件應如下所示:
server {
listen 80;
listen [::]:80;
# For https
listen 443 ssl;
listen [::]:443 ssl ;
ssl_certificate /etc/nginx/ssl/default.crt;
ssl_certificate_key /etc/nginx/ssl/default.key;
server_name my-app.dev.local;
# app root path should align with what you defined in the
# APP_CODE_PATH_CONTAINER env variable.
root /var/www/my-app/current/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass php-upstream;
fastcgi_index index.php;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fixes timeouts
fastcgi_read_timeout 600;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
location /.well-known/acme-challenge/ {
root /var/www/letsencrypt/;
log_not_found off;
}
error_log /var/log/nginx/laravel_error.log;
access_log /var/log/nginx/laravel_access.log;
}
讓我們啟動應用程序
運行以下命令來構建我們的鏡像:
docker-compose build workspace php-fpm nginx mysql
啟動容器:
docker-compose up -d nginx mysql
注意:-d 標誌會將容器作為守護進程運行,即在後台運行