這篇部落格文章示範如何使用 Docker 和 Docker Compose 對 Next.js 應用程式進行容器化。我們將介紹建立 Dockerfile
、.dockerignore
檔案(雖然未明確顯示,但已暗示),以及配置 docker-compose.yml
以實現高效開發和部署。這確保了所有階段的環境一致。
第 1 步:設定您的 Next.js 專案
先建立一個新的 Next.js 應用程式:
<code class="language-bash">npx create-next-app@latest my-next-app</code>
將 "my-next-app"
替換為您想要的項目名稱。這會產生一個基本的 Next.js 專案。
第 2 步:Docker 初始化
導航到您的專案目錄並初始化 Docker。 雖然原始說明建議使用 docker init
,但此命令不是標準命令。 相反,我們將手動建立必要的文件。 這提供了更多控制並避免了非標準命令的潛在問題。
產生的項目結構應類似下列內容:
第 3 步:最佳化 Next.js 以進行獨立建置
修改next.config.ts
(或next.config.js
)以產生獨立建構:
<code class="language-typescript">import type { NextConfig } from 'next' const nextConfig: NextConfig = { output: 'standalone', } export default nextConfig</code>
這透過創建獨立的應用程式簡化了部署。
第 4 步:建置 Dockerfile
在專案根目錄中建立一個 Dockerfile
並包含以下內容:
<code class="language-dockerfile">FROM node:20-alpine WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 3000 CMD ["npm", "run", "dev"]</code>
這使用 Node.js 20 Alpine 鏡像,安裝依賴項,複製應用程式程式碼,公開連接埠 3000,並啟動開發伺服器。
第 5 步:設定 docker-compose.yml
在專案根目錄中建立一個 docker-compose.yml
檔案:
<code class="language-yaml">version: "3.9" services: web: build: . ports: - "3000:3000" environment: - NODE_ENV=development</code>
這定義了一個名為 web
的服務,該服務從目前目錄建立映像,映射連接埠 3000,並將 NODE_ENV
設定為 development
。
使用以下命令啟動應用程式:
<code class="language-bash">docker-compose up</code>
結論
這種簡化的方法使用標準 Docker 命令和最佳實踐來容器化您的 Next.js 應用程序,從而簡化部署並確保跨環境的一致性。 請記得將 "my-next-app"
替換為您的實際項目名稱。
以上是如何 Dockerize 您的 Next.js 應用程式:逐步指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!