建立於: 7年前 ( 更新: 7年前 )
為了讓container可以被更靈活運用,D-Laravel釋出v1.0.0版了,此版本為不向下相容變更。
不相容變更的意思
-舊的./console及./create這兩隻bash無法正常使用在v1.0.0新的版本。
-舊的原Laravel專案的env上的資料庫IP(127.0.0.1)位置要變更為MySQL container的service name (db)。
DB_HOST=db
-如果您有自訂的nginx設定檔需調整php-fpm的連接方式。
fastcgi_pass php:9000;
-如果您有自訂的docker-compose-custom.yml需調整為新的。
-舊的原Laravel專案的env上的資料庫IP(127.0.0.1)位置要變更為MySQL container的service name (db)。
DB_HOST=db
-如果您有自訂的nginx設定檔需調整php-fpm的連接方式。
fastcgi_pass php:9000;
-如果您有自訂的docker-compose-custom.yml需調整為新的。
當您用git pull直接進行更新至v1.0.0時:
正常情況下,您只需調整DB_HOST的位置。
您需修改舊有的Laravel專案上的.env檔,
如果您有自訂的docker-compose-custom.yml檔,
請使用docker-compose-normal或docker-compose-random為範本進行修改。
您需修改舊有的Laravel專案上的.env檔,
DB_HOST=127.0.0.1
變更為DB_HOST=db
如果您有自訂的docker-compose-custom.yml檔,
請使用docker-compose-normal或docker-compose-random為範本進行修改。
關於這次的變更:
v1.0.0以前的docker-compose的yaml檔,使用network_mod: "service:web" 我們可以想成,把三個container服務的網路都綁在了web container服務上
因此設定上,我們連接php-fpm及mysql都使用本機連loopback的IP位置: 127.0.0.1。
v1.0.0新的設定docker-compose的yaml檔改採networks,我們可以把他想成,三個container 服務(web、php及db)都加入了自訂的網路中,
所以web的container(即是nginx)服務要使用php-fpm需指定php container的service name.(這裡叫php)
下方為etc/default.conf的片段,原fastcgi_pass127.0.0.1:9000;已調整為fastcgi_pass php:9000;
原DB_HOST=127.0.0.1,在新版(v1.0.0)會自動變更為DB_HOST=db。
將舊版本的sites/內的project拷貝到新版v.1.0.0的sites/內。
包含資料的資料夾data/拷貝到v1.0.0的目錄內。
(請確認docker-compose.yml新版使用的DB image版本與舊版本相同,
差異太大的mysql image會造成DB container啟動失敗)
並修正sites/內laravel project的.env檔,DB_HOST=127.0.0.1變更為DB_HOST=db
必免有port充突,我們可以停掉舊版的D-Laravel,
再啟動v1.0.0版的d-laravel,確認運作是否正常。
因此設定上,我們連接php-fpm及mysql都使用本機連loopback的IP位置: 127.0.0.1。
v1.0.0新的設定docker-compose的yaml檔改採networks,我們可以把他想成,三個container 服務(web、php及db)都加入了自訂的網路中,
所以web的container(即是nginx)服務要使用php-fpm需指定php container的service name.(這裡叫php)
下方為etc/default.conf的片段,原fastcgi_pass
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_read_timeout 500;
}
新版本create bash,例如:使用./create test1這個project時,原DB_HOST=127.0.0.1,在新版(v1.0.0)會自動變更為DB_HOST=db。
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=test1
DB_USERNAME=homestead
DB_PASSWORD=secret
舊版(v1.0.0之前)更新到新版本(v1.0.0)
安全的更新方式,我們可以抓D-Laravel v1.0.0版本下來測試。將舊版本的sites/內的project拷貝到新版v.1.0.0的sites/內。
包含資料的資料夾data/拷貝到v1.0.0的目錄內。
(請確認docker-compose.yml新版使用的DB image版本與舊版本相同,
差異太大的mysql image會造成DB container啟動失敗)
並修正sites/內laravel project的.env檔,DB_HOST=127.0.0.1變更為DB_HOST=db
必免有port充突,我們可以停掉舊版的D-Laravel,
再啟動v1.0.0版的d-laravel,確認運作是否正常。
No Comment
Post your comment