在開始指令之前,記得先開啟
Docker Desktop
,Docker engine 才會啟動哦
接下來要做的步驟如下:
Dockerfile
檔案Dockerfile
Dockerfile
設置重點
若運行過程有需要事先安裝的項目,則在適當的步驟加入
RUN
指令執行安裝
如:安裝 yarn, 產生 swagger-output.json …
.dockerignore
由於 dockerfile
其中一個流程會將所有目錄和檔案進行複製,而通常專案初始化過後,已有 node_modules/
,此目錄會在 npm install
之後自動產生,因此需讓 docker 忽略此目錄
當前視窗運行中,須另開 Terminal 停止 container
可在同一個 Terminal 停止 container
由於 docker run 預設不會同步程式碼變更,所以即使專案使用 Vite,本身有 HMR,或是 TailwindCSS 使用 JIT,在無法同步 image 中的程式碼的狀況下,運行的頁面還是不會更新內容。
那就會讓開發和運行過程繁瑣-每次變更程式碼就要重新 build 一次 image。
有兩種方式能夠在運行的過程中,同步程式碼變更:
Volume
docker-compose
Volumn
docker-compose
建立 docker-compose.yml
:delegated
能夠優先保證 Container 的讀取速度,適合建構或運行代碼
:cached
本機同步的速度快,但 Container 不會立刻讀取最新內容,適合靜態文件
啟動 docker container
這個指令會做三件事:
docker build
指令docker run
指令若 image
已存在,不需要變更 Dockerfile
或是 package.json
的狀況下,不需要使用 --build
若執行 docker-compose up
後卻斷開,可以試著加入兩個屬性解決問題
刪除所有未被 Container
使用的 Image
刪除所有停止運行的 Container