要把 AI Studio 產生的 TypeScript (ts) 或 TSX 檔案打包成網站並在 Docker 執行,最快的方法是使用 Vite 或 Next.js 框架。由於你已經有這些檔案,通常它們是 React 元件,我們需要建立一個專案殼子來容納它們。
以下是從零到有的打包與驗證流程:
1. 建立專案結構
在 Windows 11 的 PowerShell 或終端機中,進到你的檔案目錄,執行以下指令來建立一個 React 環境。我們建議使用 Vite,因為它輕量且速度快:
PowerShell
npm create vite@latest my-ai-app -- --template react-ts
cd my-ai-app
npm install
接著,將你從 AI Studio 產生的所有 .ts 或 .tsx 檔案複製到 my-ai-app/src 目錄下。如果 AI Studio 有提供 CSS 檔案,也一併放入。
2. 修正進入點
確保 src/App.tsx 內容有正確引用你產生的元件。例如,如果你產生的主畫面檔案叫 MyComponent.tsx,你的 App.tsx 應該長這樣:
TypeScript
import MyComponent from './MyComponent'
function App() {
return (
<div>
<MyComponent />
</div>
)
}
export default App
3. 撰寫 Dockerfile
在專案根目錄(my-ai-app)下建立一個名為 Dockerfile 的檔案(不含副檔名),內容如下。這會使用 nginx 作為網頁伺服器:
Dockerfile
# 第一階段:編譯
FROM node:20-alpine as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
# 第二階段:部署
FROM nginx:stable-alpine
COPY --from=build-stage /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
4. 建立與執行容器
打開 Docker Desktop 確保它正在執行,然後在終端機輸入:
PowerShell
# 打包映像檔,名稱自訂為 my-web-app
docker build -t my-web-app .
# 啟動容器,將本機的 8080 埠對應到容器的 80 埠
docker run -d -p 8080:80 --name my-running-site my-web-app
5. 在 Local 驗證網頁
要確認網頁是否執行正確,有幾個檢查點:
- 瀏覽器檢查:開啟瀏覽器輸入 http://localhost:8080。如果看到畫面,代表基本部屬成功。
- 開發者工具:按下 F12 開啟開發者工具,檢查 Console(主控台)是否有紅色的錯誤訊息。這通常是漏掉 package.json 裡的套件依賴。
- Docker Logs:如果網頁打不開,在終端機輸入 docker logs my-running-site,查看 Nginx 是否有啟動失敗的紀錄。
- Docker Desktop 介面:你可以直接在 Docker Desktop 的 GUI 介面看到 my-running-site 容器的狀態,點擊小圖示也能直接開啟瀏覽器測試。
需要我幫你檢查 package.json 裡面應該要包含哪些 AI Studio 常用的套件嗎?