php composer 軟連結取消
前提摘要 :
因為最近在安排php 專案上 k8s 的容器化方案 ,使用Docker Multi-stage builds 來建制鏡像 礙於依賴包 因為專案是使用軟連結的方式 不好將依賴拆離 需要將依賴包由軟連結改成複製的方式。
* 注意 composer 會從composer.lock 安裝依賴 , 若只修改composer.json 無修改 composer.lock 這樣還是無法更改依賴變成複製的方式
原本專案的composer.json 如以下 ,但礙於這樣的做法composer會進行軟連結 不好拆離
{
"repositories": [
{
"type": "composer",
"url": "https://asset-packagist.org"
},
{
"type": "path",
"url": "../src/extensions/xxx",
},
]
}
優化方式 :
新增一個 options 選項來控制依賴安裝包 , 這樣就可以選擇是否要透過軟連結或者檔案複製的方式 管理依賴。
# 透過 symlink 來看是否需要啟動軟連結
# symlink true -> 開啟軟連結
# symlink false-> 關閉軟連結
{
"repositories": [
{
"type": "composer",
"url": "https://asset-packagist.org"
},
{
"type": "path",
"url": "../src/extensions/xxx-xxx",
"options": {
"symlink": true # or false
}
},
]
}