特徵綁定「FieldAttr:ToTokens」不滿足:錯誤
P粉696891871
P粉696891871 2024-03-27 09:30:39
0
2
369

我想在 EC2(fargate) 上部署 Dockerfile 版本。 我在cloudwatch中遇到以下錯誤。 “創建池失敗。:錯誤(無)” 我已經想出了解決這個問題的方法。 我在建立連接時將方法從 build 更改為 build_unchecked

但是,我收到以下錯誤並且無法編譯。

error[E0277]: the trait bound `FieldAttr: ToTokens` is not satisfied
   --> /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/diesel_derives-2.0.1/src/attrs.rs:143:18
    |
143 | impl Spanned for FieldAttr {
    |                  ^^^^^^^^^ the trait `ToTokens` is not implemented for `FieldAttr`
    |
    = help: the following other types implement trait `ToTokens`:
              &'a T
              &'a mut T
              Abi
              Abstract
              AndAnd
              AndEq
              AngleBracketedGenericArguments
              Arm
            and 312 others
    = note: required for `FieldAttr` to implement `quote::spanned::private::Sealed`
note: required by a bound in `quote::spanned::Spanned`
   --> /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/quote-1.0.25/src/spanned.rs:6:20
    |
6   | pub trait Spanned: private::Sealed {
    |                    ^^^^^^^^^^^^^^^ required by this bound in `Spanned`

error[E0277]: the trait bound `StructAttr: ToTokens` is not satisfied
   --> /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/diesel_derives-2.0.1/src/attrs.rs:242:18
    |
242 | impl Spanned for StructAttr {
    |                  ^^^^^^^^^^ the trait `ToTokens` is not implemented for `StructAttr`
    |
    = help: the following other types implement trait `ToTokens`:
              &'a T
              &'a mut T
              Abi
              Abstract
              AndAnd
              AndEq
              AngleBracketedGenericArguments
              Arm
            and 312 others
    = note: required for `StructAttr` to implement `quote::spanned::private::Sealed`
note: required by a bound in `quote::spanned::Spanned`
   --> /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/quote-1.0.25/src/spanned.rs:6:20
    |
6   | pub trait Spanned: private::Sealed {
    |                    ^^^^^^^^^^^^^^^ required by this bound in `Spanned`

For more information about this error, try `rustc --explain E0277`.
error: could not compile `diesel_derives` due to 2 previous errors
warning: build failed, waiting for other jobs to finish...
error: failed to compile `practice-rust v0.1.0 (/usr/src/practice-rust)`, intermediate artifacts can be found at `/usr/src/practice-rust/target`
pub type Pool = r2d2::Pool<ConnectionManager<MysqlConnection>>;

pub fn establish_connection() -> Pool {
    dotenv().ok();

    std::env::set_var("RUST_LOG", "actix_web=debug");
    let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set");


    let manager = ConnectionManager::<MysqlConnection>::new(database_url);
    let pool: Pool = r2d2::Pool::builder().build_unchecked(manager);
    pool
}
#[actix_web::main]
async fn main() -> std::io::Result<()> {

    let pool = db::establish_connection();
    HttpServer::new(move|| {
        App::new()
        .app_data(Data::new(pool.clone()))
        .service(todo_index)
    })
    .bind("0.0.0.0:8080")?
    .run()
    .await
}
#[get("/api/todo")]
async fn todo_index(db: web::Data<db::Pool>) -> impl Responder {

    let mut conn = db.get().unwrap();
    let todo = schema::todos::table
        .load::<model::Todo>(&mut conn)
        .expect("Error not showing todo list");

    HttpResponse::Ok().json(todo)
}

我嘗試了引用傳遞,但沒有成功。

無需修改即可建置另一個 Dockerfile。 問題出在 Dockerfile 中。

dev:建置完成。

FROM rust:1-slim-buster

RUN apt-get update \
    && apt-get install -y default-libmysqlclient-dev mariadb-client

WORKDIR /usr/src/myapp/practice-rust
COPY . .

stg:無法建置。

FROM rust:1-slim-buster as builder

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
    default-libmysqlclient-dev mariadb-client \
    && apt-get -y clean \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /usr/src/practice-rust
COPY . .

RUN cargo install --path .

FROM debian:10.13-slim as stage

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
    default-libmysqlclient-dev mariadb-client \
    && apt-get -y clean \
    && rm -rf /var/lib/apt/lists/*

COPY --from=builder /usr/local/cargo/bin/practice-rust /usr/local/bin/practice-rust
CMD [ "practice-rust"]

P粉696891871
P粉696891871

全部回覆(2)
P粉545910687

嘿,我剛剛透過更新這些依賴項遇到了同樣的錯誤:

https://github.com/nxthat/nanocl/commit/6b7b19d7ff50d9392b1e56ec1ad67c34ea63 c632

也許您可以透過降級某些依賴項來快速修復?

我也想知道是什麼問題

P粉659378577

我認為這是由於「引用」的重大變化而發生的 問題連結

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板