close

這是最近踩到的雷

我在做Laravel 的專案時,使用Docker-compose 來做環境

環境的container 是 nginx php mariadb 

因為php 有需要套件,所以我有另外以原本的php imag作為基底做了一個新的docker file,加入一些套件後,在最後一行用CMD 把某些服務跑起來。

結果就悲劇了,網頁一直502

Laravel 網頁 502 有很多種可能性

最大的可能性就是 .env 檔設定不對,或者根本沒有(因為git ignore的關係)

第二個可能性就是 nginx 出問題 或者php 的設定出問題 ,

我碰到的問題是這樣的,Dockerfile 的CMD會覆蓋掉作為基底的dockerfile的CMD,所以之前php 的image 啟動php-fpm的CMD就被我蓋掉了。

php既然沒有啟動,error 502是當然的。

要怎麼修正呢?如果知道原因就很簡單了,把之前被蓋掉的CMD 聯合你現在需要的CMD 指令 寫成一個shell 

用ADD把 shell script 放進container裡面,接著最後用CMD跑這個shell。這就是解方。

arrow
arrow
    全站熱搜

    工程師黑田 發表在 痞客邦 留言(0) 人氣()