我尝试部署一个用 Rust(Axum Framework)编写的 API,但出现以下错误,我该如何完成此操作,没有关于此的官方文档。
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
-----> Cleaning up...
-----> Building api from herokuish
-----> Adding BUILD_ENV to build environment...
BUILD_ENV added successfully
-----> Unable to select a buildpack
remote: ! Failure during app build
remote: ! Removing invalid image tag dokku/api:latest
remote: ! App build failed
我尝试添加 Dockerfile,但仍然遇到相同的错误。
我已成功通过更新自定义 Dockerfile 和引入的 Procfile 进行部署,内容如下:- 我还注意到该应用程序必须在端口 5000 上运行才能暴露,除非您更改配置。
Dockerfile
# 使用官方 Rust 镜像作为基础镜像 FROM rust:书虫作为建造者 # 设置容器内的工作目录 工作目录 /usr/src/app ENV SQLX_OFFLINE=true # 将 Cargo.toml 和 Cargo.lock 文件复制到工作目录 复制 Cargo.toml Cargo.lock ./ # 构建依赖项来缓存它们 运行 mkdir src && \ echo "fn main() {}" > src/main.rs && \ 货物构建 --release && \ rm -rf 源代码 # 复制其余的源代码 复制 。 。 # 构建你的 Rust 应用程序 运行货物构建--发布 # 创建一个新的轻量级镜像,无需构建依赖项 来自 debian:bookworm-slim 运行 apt-get update && apt install -y openssl # 设置容器内的工作目录 工作目录 /usr/src/app # 从构建器阶段复制构建的二进制文件 复制 --from=builder /usr/src/app/target/release/main ./ 复制 --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt # 暴露所有必要的端口 曝光 5000 # 运行应用程序的命令 CMD [“./main”]
过程文件
网址:./main