為什麼要用 Docker 建立本機開發環境? 用 Docker 有什麼好處? 除了避免環境建立卡關、失敗之外還有什麼好處呢?
本文教你快速、簡單建立本機的 docker + php + nginx + Node.js 開發環境 😎
為什麼我選用 Docker 建立環境呢? 絕不是因為鯨魚很可愛 🐳
index:
情境~~
如果同一個專案下,有很多工程師,每個人的環境可能都會不一樣….
`守舊派的 PHP 5.5, 追隨市場的 PHP 7.0, 喜歡嘗鮮的 PHP7.3`
然後~ 正式的線上環境則是 PHP 7.2
單是 PHP 版本就有差異了,如果再配上 MySQL、nodejs 和 npm 各個環境上的誤差可能就更精彩了!!
產品沒有出問題真是有老天保佑 🙏🙏🙏
這種情況下就很容易聽到…
『在我電腦是好的!』 😱😱😱
透過 Docker in Local 可以解決以下問題,也是使用 Docker 後的優點~
當然有優點就有缺點
dockerfile
, docker-compose.yml
寫法Docker 的基本構成這邊就不提了
主要使用 dockerfile、docker-copmose
👉 直接到 GitHub clone 製作好的 dockerfile,cscolabear/docker-dev
git clone https://github.com/cscolabear/docker-dev
詳細安裝說明可以參照 README.md
https://github.com/cscolabear/docker-dev/blob/master/README.md
其中~ 幾個 Branch 各有特定功能、服務
可以依需要的服務自行 merge~
簡單來說 clone 後執行docker-compose up -d
就可以了~
接著可以連接進入 workspace 這個 container
(實際路徑,請參照你安裝的位置)
$ cd ~/Projects/ && clear && docker-compose exec workspace bash
連接成功之後,可以在 container 內做各種操作如下圖 ~
其它更多詳細安裝、操作可以從 README.md 找到~
當然~ 就上面提到 Docker 的缺點 你也不一定要選用 Docker
以 PHP 開發來說的話~,替代方案還有:
Vagrant – https://www.vagrantup.com
Valet – https://laravel.com/docs/master/valet
Homestead – https://laravel.com/docs/5.8/homestead
VM – virtual machine 在虛擬機裡自己裝開發環境 XD
不過老實說~ 還是 Docker 泛用性比較高 😓
Ref.
LaraDock – https://laradock.io/
建置、參考
錯誤追蹤、回報非常重要,看到的錯誤才知道怎麼修。現今 PHP 流行的 Laravel 有很好的 Error Tracking, Error Handling。但 plain PHP 怎麼辦呢? 在 production 為了安全考量會設定…
jenkins、circleci、travis 或 Gitlab CI 皆為目前暫知名的 CI/CD 服務,各自缺點也不言而喻...過於肥大、收費略高(?)、速度不夠快執問題...此時使用 go language 開發的 Drone 就出現啦,完全 docker 容器化的運行方式讓整個 CI…
網頁壓縮技術中 gzip 很好用,deflate 己經過時,但你聽過 brotli 嗎? 有著比 gzip 更好、更快的壓縮效率。看起來利大於弊有什麼不用他的理由嗎?簡單從優、缺點來看 brotli!到底 brotli 布羅特利是什麼、如何設定呢。 目前大多的 web server…
為什麼要讓本機使用 Docker 內 PHP? 情境... docker 容器內用的是 PHP 7.4 但你的開發本機還在跑 PHP 5.6 或是更舊,因為 dockerize 的關係會將所有相關環境都轉移到…
為什麼你需要密碼管理工具現代人一天下來需要輸入多少組密碼,工作與生活己經和密碼密不可分! 除了足夠全安的密碼,密碼記錄、儲存的方式又足夠安全嗎?密碼管理工具可以帶來什麼幫助呢? 為什麼你需要密碼管理工具 資安問題!!大多人說著沒做壞事不怕被偷資料、監聽。嚴重曝露出現代人的基本科技素養的低落和無知 🤯 密碼的使用無所不在!! 行動裝置的普及,APP 、手機遊戲、銀行帳戶所有和生活相關的東西都需要密碼!!facebook, line 只要打開 APP 也會輸入密碼只是他是自動輸入、一般情況不可視 (auth token) 一般人最常發生的密碼資安問題…
mysql 資料表分區 mysql table partition 從架構上調整 mysql 的查詢效率。mysql DB 的優化可以簡單也能複雜,除了調整設定值。也可以透過水平分割(Horizontal Partitioning)、垂直分割(Vertical Partitioning) 分庫或分表將資料分散儲存減少資料搜尋、group by 時的效能消耗。拆開批次處理,理論上效率都會變好,本文就水平分割的…
View Comments
很棒~~!
乾蝦