docker Laravel

xmkl發表於2020-06-22

Docker Laravel

概述

在實際工作中,你可能會有這樣的尷尬,電腦系統不敢升級,升級後所有環境得重新搭建,浪費不必要的時間。這個專案旨在從0跑起來一個Laravel專案,只需要一個簡單的命令,如果你是一個Laravel新手,你甚至都不需要執行composer create-project來建立Laravel,下面的一個命令會為你準備好一切。

// 構建並啟動環境,啟動後可透過http://${NGINX_HOST}:8888訪問,NGINX_HOST在nginx下.env檔案中定義
docker-compose up 

效果如下:
訪問:http://${NGINX_HOST}:8888訪問laravel首頁
*注:記得新增host

docker laravel

或者訪問:http://127.0.0.1:8888/phpinfo.php檢視php資訊

docker Laravel

如果不需要建立新的Larave專案,只想要一個能跑起來的環境,你只需要更改根目錄下common.env中的PROJECT_CREATE=false,然後把你的專案複製src目錄中即可。如果你想盡快試試,地址在這裡:githubgitee

並且由於Docker的特新,使得更換PHP版本更簡單,也可以同時執行多個版本的PHP

啟動方式

git clone git@github.com:lqxun/docker-laravel.git
或者
git clone git@gitee.com:orol/docker-laravel.git

cd docker-laravel
docker-compose up

專案配置

1、公共配置

公共配置在根目錄下的common.env檔案中,裡面定義瞭如下內容
*注:需要建立新專案時會以該配置建立專案目錄

# 是否重新建立專案(composer create)
PROJECT_CREATE=true
#專案名稱(project下的資料夾名,nginx 的root會指向${PROJECT_NAME}/publicPROJECT_NAME=blog

# 時區
TZ=Asia/Shanghai
2、配置Nginx域名和專案目錄

nginx目錄中有.env檔案

# 埠號
NGINX_PORT=80
# 訪問域名(記得修改host)
NGINX_HOST=test.doc

配置檔案定義在nginx/templates目錄下以*.template結尾的檔案中,該檔案中可直接讀取.env配置的環境變數,該檔案最終會被輸出到/etc/nginx/conf.d目錄下。附上nginx官方映象文件傳送門

3、配置PHP

目錄結構如下

├── .env
├── Dockerfile
├── conf.d
│   └── php_dev.ini
├── docker-laravel-entrypoint.sh
└── fpm-conf.d
    └── fpm_dev.conf

php目錄預留了.env檔案,預設是空的,如有需要可自行定義。conf.d目錄下定義了php配置檔案php_dev.inifpm-conf.d下定義了fpm配置檔案fpm_dev.conf,可根據需求自行修改,修改完後執行docker-compose up重啟容器就行。php擴充套件的安裝,請參考官方映象文件傳送門

php的配置檔案可以VOLUME掛載進去,也可以在DockerfileCOPY進去,但是有個問題:如果掛載進去,本地的配置會覆蓋容器中的配置,可能會刪除一些預設配置,好處是,不需要重新構建映象,只需要重啟容器即可。如果COPY進去,不會破壞容器預設的配置,但是每次都需要重新構建映象,看大家需要自行選擇吧。本專案是COPY進去的。掛載的程式碼也已寫好,只需開啟docker-compose.yml中的註釋,把DockerfileCOPY註釋掉即可。

4、Mysql配置

mysqlmy.cnf是掛載到容器中的,,更改配置只需要重啟容器即可,連線埠33060,密碼在mysql資料夾下的.env中配置。如果出現一下問題

docker Laravel

這是客戶端問題,請換個客戶端。如果不想換客戶端,可按照資料自行修改即可附連線Docker容器中SQLyog連線資料庫報錯plugin caching_sha2_password

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章