阿川私房教材:學程式,拿 offer!

63 個專案實戰,直接上手!
無需補習,按步驟打造你的面試作品。

立即解鎖你的轉職秘笈

如果您只是在這裡複製和貼上,這裡是最終的 Dockerfile,它將為您的 Express.js 應用程式生成映像:

FROM node:22.10.0-alpine.3.19

LABEL maintainer="[email protected]"

WORKDIR /app

COPY package* ./

RUN npm install

COPY . .

EXPOSE 3000

CMD ["node", "index.js"]

這是您應該使用的 .dockerignore 檔案:

node_modules
npm-debug.log

要建置並執行映像,請使用以下命令:

docker build -t express-app .
docker run -p 3000:3000 express-app

不只是在這裡複製和貼上嗎?讓我們來看看 Dockerfile 中發生了什麼!

讓我們這樣做

設定

對於本教程,我假設您已經設定了一個 Express.js 專案。 Express.js 是一個最小且靈活的 Node.js Web 應用程式框架,為 Web 和行動應用程式提供了一組強大的功能。如果您有不同的設置,則可能需要相應地調整 Dockerfile。

通常,您將執行npm install ,然後執行node index.js以在本地工作。對於部署,我們將使用類似的方法,但在 Docker 容器內。

讓我們深入了解 Dockerfile 的詳細資訊。

Dockerfile

FROM node:22.10.0-alpine.3.19

LABEL maintainer="[email protected]"

WORKDIR /app

COPY package* ./

RUN npm install

COPY . .

EXPOSE 3000

CMD ["node", "index.js"]

那麼這裡發生了什麼事?

  1. 基礎影像:
  • 在 Alpine 3.19 上使用 Node.js 22.10.0,提供輕量基礎鏡像。

  • LABEL指令將元資料加入影像中。

  1. 工作目錄:
  • /app設定為後續指令的工作目錄。
  1. 依賴安裝:
  • package.jsonpackage-lock.json (如果存在)複製到工作目錄。

  • 執行npm install以安裝相依性。

  1. 申請程式碼:
  • 將應用程式程式碼的其餘部分複製到容器中。
  1. 連接埠暴露:
  • 公開連接埠 3000,該連接埠通常由 Express.js 應用程式使用。
  1. 啟動命令:
  • 指定使用node index.js執行應用程式的命令。

這種方法比我們用於 Astro 的多階段建置更簡單,因為 Express.js 應用程式通常不需要單獨的建置步驟。

確保新增.dockerignore檔案以忽略node_modules資料夾和 npm 偵錯日誌。這將加快建置過程並減小圖像大小。

部署

您可以將此 Docker 容器部署到任何支援 Docker 的雲端提供者。例如,您可以使用 Heroku、DigitalOcean 或 AWS ECS 等平台。因為我是Sliplane的聯合創始人,所以我將向您展示如何在那裡部署它。

註冊後,您可以透過選擇 Github 儲存庫來建立新服務。然後保留預設設定並點擊部署。

滑面服務建立

部署後,您的 Express.js 應用程式將在sliplane.app的子網域下可用,通常只是您的服務名稱。

您還可以查看應用程式的日誌、查看 CPU 和記憶體使用情況等指標、新增持久性儲存等等。每當您推送到儲存庫時,Sliplane 都會自動部署您的應用程式。

如果您想嘗試Sliplane ,前 2 天免費!試試一下,讓我知道你的想法:)

https://sliplane.io?utm\_source=dockerize-express 在 2 分鐘內部署 ExpressJS 🚀

下一步

還有什麼想知道的嗎?您需要 Docker 化 Express.js 應用程式的協助嗎?您需要協助將其部署到特定平台嗎?請隨時與我們聯繫!

您可以在X上找到我,或在這個部落格上發表評論。

乾杯,

喬納斯


原文出處:https://dev.to/code42cate/how-to-dockerize-and-deploy-expressjs-apis-k5d


共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。

阿川私房教材:學程式,拿 offer!

63 個專案實戰,直接上手!
無需補習,按步驟打造你的面試作品。

立即解鎖你的轉職秘笈