附上能用的 Dockerfile
下面的 Dockerfile 監聽 $PORT、以非 root 執行、只寫 /tmp,符合平台的執行規則。
Rust (Axum) 部署教學 · Agent Lab 部署
在 Rust (Axum) 專案加上下面的 Dockerfile,或直接跟 Claude Code、Codex、Cursor 說「部署上去」。Agent Lab 把它建成一個常駐的 web service,每一版都有預覽網址、可以回退,上傳時先檢查外洩的金鑰;App 與資料庫跑在 Google Cloud 台灣。
> 把這個 Rust (Axum) 專案部署上去
sites_createmy-rust
sites_deployDockerfile
sites_deploy_status建置完成 · 金鑰檢查通過
已上線:my-rust--acme.hosting.agentlab.run
為什麼把 Rust (Axum) 放在 Agent Lab
Rust 專案,用 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 工具做。
平台建置這一版並檢查外洩金鑰;它列出的機密到設定頁填。
第一版建好就上線;之後每一版先有預覽網址,確認後再上線。
設定
把 myapp 換成 Cargo.toml 的套件名稱;Actix Web、Rocket 也一樣,只要監聽 0.0.0.0:$PORT。 第二階段要裝 ca-certificates,不然對外的 HTTPS 呼叫會失敗。
FROM rust:1 AS build
WORKDIR /src
COPY . .
RUN cargo build --release
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates \
&& rm -rf /var/lib/apt/lists/*
COPY --from=build /src/target/release/myapp /usr/local/bin/myapp
USER 10001
EXPOSE 8080
CMD ["myapp"]
// main.rs:監聽 0.0.0.0:$PORT / listen on 0.0.0.0:$PORT
// let port = std::env::var("PORT").unwrap_or("8080".into());
// let listener = tokio::net::TcpListener::bind(format!("0.0.0.0:{port}")).await?;PORT 平台給的埠號(預設 8080),伺服器要監聽它。DATABASE_URL 接上 Agent Lab 的 PostgreSQL 時自動寫入。讀 https://app.agentlab.cresclab.com/agent/deploy.md,把這個 Rust (Axum) 專案部署到 Agent Lab(用根目錄的 Dockerfile)。先給我建置計畫和需要的環境變數,機密告訴我去主控台哪裡填,上線前等我確認。常見問題