如何使用 Dokku 部署 Rust Axum API

问题描述 投票:0回答:1

我尝试部署一个用 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,但仍然遇到相同的错误。

amazon-web-services rust digital-ocean dokku axum
1个回答
0
投票

我已成功通过更新自定义 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
© www.soinside.com 2019 - 2024. All rights reserved.