附上能用的 Dockerfile
下面的 Dockerfile 監聽 $PORT、以非 root 執行、只寫 /tmp,符合平台的執行規則。
Spring Boot 部署教學 · Agent Lab 部署
在 Spring Boot 專案加上下面的 Dockerfile,或直接跟 Claude Code、Codex、Cursor 說「部署上去」。Agent Lab 把它建成一個常駐的 web service,每一版都有預覽網址、可以回退,上傳時先檢查外洩的金鑰;App 與資料庫跑在 Google Cloud 台灣。
> 把這個 Spring Boot 專案部署上去
sites_createmy-spring-boot
sites_deployDockerfile
sites_deploy_status建置完成 · 金鑰檢查通過
已上線:my-spring-boot--acme.hosting.agentlab.run
為什麼把 Spring Boot 放在 Agent Lab
Java 專案,用 Dockerfile 建置,部署成一個常駐的 web service。
下面的 Dockerfile 監聽 $PORT、以非 root 執行、只寫 /tmp,符合平台的執行規則。
每次上傳都是新的一版,有自己的網址。先看過再上線,出問題一鍵切回任何一版。
上線前先檢查 API 金鑰與憑證;機密放在主控台,不放在程式碼裡。
建好資料庫接上去,連線自動寫進 App 的環境變數,密碼不會顯示。
怎麼選
表格可以左右滑動。
| 你在意的事 | Agent Lab 部署 | 自己租 VPS |
|---|---|---|
| 設定方式 | 用下面的 Dockerfile 上傳,或說一句話 | SSH、裝執行環境、程序管理、反向代理 |
| HTTPS 與網域 | 自動;付費方案可接自訂網域 | 自己弄 Certbot 與 DNS |
| 預覽與回退 | 每一版都有自己的網址,一鍵回退 | 自己寫腳本 |
| 上線前檢查 | 上傳時檢查外洩的金鑰 | 自己沒設就沒有 |
| 資料庫 | 一鍵建 PostgreSQL,連線自動寫進 App | 自己安裝、自己備份 |
| 起步費用 | Free 方案 NT$0,1 個 S 應用程式(閒置休眠) | VPS 每月約 NT$200–600,加上你的時間 |
步驟
在專案最上層加入下面的 Dockerfile,把範例名稱換成你的。
把資料夾拖進專案的部署分頁、從 GitHub 推送,或透過 Agent Lab MCP 叫 AI 工具做。
平台建置這一版並檢查外洩金鑰;它列出的機密到設定頁填。
第一版建好就上線;之後每一版先有預覽網址,確認後再上線。
設定
CMD 要用 shell 形式才能展開 PORT;或在 application.properties 寫 server.port=${PORT:8080},CMD 就能用 exec 形式。 暫存檔走 java.io.tmpdir(/tmp),符合唯讀檔案系統;不要寫到 jar 旁邊。 Gradle 專案把 build 階段換成 gradle:jdk21 與 ./gradlew bootJar。
FROM maven:3-eclipse-temurin-21 AS build
WORKDIR /src
COPY pom.xml .
RUN mvn -q dependency:go-offline
COPY src ./src
RUN mvn -q package -DskipTests
FROM eclipse-temurin:21-jre
WORKDIR /app
COPY --from=build /src/target/*.jar app.jar
USER 10001
EXPOSE 8080
# shell 形式才能展開 PORT / the shell form expands PORT
CMD java -Dserver.port=${PORT:-8080} -jar app.jarPORT 平台給的埠號(預設 8080),伺服器要監聽它。SPRING_DATASOURCE_URL jdbc:postgresql://… 接 Agent Lab 的 PostgreSQL。SPRING_PROFILES_ACTIVE 例如 prod。讀 https://app.agentlab.cresclab.com/agent/deploy.md,把這個 Spring Boot 專案部署到 Agent Lab(用根目錄的 Dockerfile)。先給我建置計畫和需要的環境變數,機密告訴我去主控台哪裡填,上線前等我確認。常見問題