php composer 軟連結取消

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 
      } 
    }, 
  ] 
}