Cyber Coding Course

師其意,不泥其跡

安全的更新D-Laravel

如何升級目前的D-Laravel。
如果您目前使用環境上很順,沒碰到問題,可以不用更新。

如果您想採用最新的版本,及bug修正等,請仔細閱讀本文,
為了確保順利升級,以下是建議的D-Laravel升級方式。

請確認您的docker及docker-compose的版本為最新版。
如果您將D-Larvel運作在Production中,最好可以用相同環境測試再進行更新。
更新docker版本也可能會造成您目前的環境無法順利執行。

一、可以clone最新版本的D-Laravel,或是由release中下載。
例如,這裡我clone了一個dlaravel並命名為tdlaravel的資料夾。
git clone https://github.com/DevinY/dlaravel.git tdlaravel

二、將舊版的data(資料庫目錄)及sites(專案目錄) ,拷貝到tdlaravel的目錄中(目錄請勿有-或_等特殊服號)。
請確認已經先停用了舊版的dlaravel了。

三、進入tdlaravel目錄,並啟動看看是否正常 。

請注意docker-compose.yml中的db服務使用的資料庫版本。
例如: mysql 5.7.19版本及mysql 8.0.11的image,有很大的不同。
您不可直接使用舊版的mysql 5.7.19的my.cnf到mysql 8.0.11
另外,yml設定檔中的data的目錄也需要變更,例如data8。
 db:
  image: mysql:8.0.11
  hostname: db
  ports:
    - "127.0.0.1:3306:3306"
  volumes:
    #- ./etc/mysql/my.cnf:/etc/mysql/my.cnf
    - ./data8:/var/lib/mysql
  environment:
   #- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD-secret}
   - MYSQL_ALLOW_EMPTY_PASSWORD= "yes"
   - TZ=Asia/Taipei
  networks:
    - dlaravel_net

四、如果您更新後是正常的,您可以先停用tdlaravel
將現有的dlaravel目錄變更為dlaravel-old
再將tdlaravel變更為dlaravel
 

作者: Devin Yang