复制失败'/target/x86_64-unknown-linux-musl/release/microservice_app:没有这样的文件或目录'Rust Dockerfile
Copy Failed '/target/x86_64-unknown-linux-musl/release/microservice_app: no such file or directory' Rust Dockerfile
我正在尝试 运行 这个 Docker 图片,我是 Docker 世界的新手。帮助赞赏:)
我正在尝试 运行 使用 Docker 在 Google Cloud 上使用 postgres 的简单 Rust 微服务。但是构建完成后,无法复制二进制文件。
Cargo.toml :
[package]
name = "home_made_rust"
version = "0.1.0"
edition = "2018"
[dependencies]
postgres = "0.17.5"
下面是我的Docker文件
# ------------------------------------------------------------------------------
# Cargo Build Stage
# ------------------------------------------------------------------------------
FROM rust:latest as builder
WORKDIR /rust
# Download the cargo target
RUN rustup target add x86_64-unknown-linux-musl
# create dummy application, s.t. cargo can download all dependencies
RUN mkdir -p /rust/app/src && echo 'fn main(){}' > app/src/main.rs
WORKDIR /rust/app
# Build & cache dependencies
COPY Cargo.toml Cargo.lock ./
RUN cargo build --release --target x86_64-unknown-linux-musl
# Copy application code
COPY src ./src
# Build production binary
RUN touch src/main.rs && cargo build --release --target x86_64-unknown-linux-musl
# Production container
FROM scratch
COPY --from=builder /rust/app/target/x86_64-unknown-linux-musl/release/microservice_app /app
ENTRYPOINT ["/app"]
这是我的 Rust 项目结构
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 30-07-2020 07.36 PM .github
d----- 30-07-2020 07.24 PM src
d----- 30-07-2020 07.25 PM target
-a---- 30-07-2020 11.44 PM 19 .dockerignore
-a---- 30-07-2020 07.24 PM 8 .gitignore
-a---- 30-07-2020 10.58 PM 20573 Cargo.lock
-a---- 30-07-2020 10.58 PM 250 Cargo.toml
-a---- 31-07-2020 10.31 AM 974 Dockerfile
来自 github 操作的确切错误 ->
Step 11/12 : COPY --from=builder /rust/app/target/x86_64-unknown-linux-musl/release/microservice_app /app
COPY failed: stat /var/lib/docker/overlay2/912bcbdb9b9198001ae5d1df4aec09ec54efb413fbb8981d165ee529ea9966a6/merged/rust/app/target/x86_64-unknown-linux-musl/release/microservice_app: no such file or directory
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/docker" failed: step exited with non-zero status: 1
替换这个
COPY --from=builder /rust/app/target/x86_64-unknown-linux-musl/release/microservice_app /app
用这个=>
COPY --from=builder /rust/app/target/x86_64-unknown-linux-musl/release/home_made_rust /app
二进制名称根据 Cargo.toml 文件
[package]
name = "home_made_rust"
我正在尝试 运行 这个 Docker 图片,我是 Docker 世界的新手。帮助赞赏:) 我正在尝试 运行 使用 Docker 在 Google Cloud 上使用 postgres 的简单 Rust 微服务。但是构建完成后,无法复制二进制文件。
Cargo.toml :
[package]
name = "home_made_rust"
version = "0.1.0"
edition = "2018"
[dependencies]
postgres = "0.17.5"
下面是我的Docker文件
# ------------------------------------------------------------------------------
# Cargo Build Stage
# ------------------------------------------------------------------------------
FROM rust:latest as builder
WORKDIR /rust
# Download the cargo target
RUN rustup target add x86_64-unknown-linux-musl
# create dummy application, s.t. cargo can download all dependencies
RUN mkdir -p /rust/app/src && echo 'fn main(){}' > app/src/main.rs
WORKDIR /rust/app
# Build & cache dependencies
COPY Cargo.toml Cargo.lock ./
RUN cargo build --release --target x86_64-unknown-linux-musl
# Copy application code
COPY src ./src
# Build production binary
RUN touch src/main.rs && cargo build --release --target x86_64-unknown-linux-musl
# Production container
FROM scratch
COPY --from=builder /rust/app/target/x86_64-unknown-linux-musl/release/microservice_app /app
ENTRYPOINT ["/app"]
这是我的 Rust 项目结构
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 30-07-2020 07.36 PM .github
d----- 30-07-2020 07.24 PM src
d----- 30-07-2020 07.25 PM target
-a---- 30-07-2020 11.44 PM 19 .dockerignore
-a---- 30-07-2020 07.24 PM 8 .gitignore
-a---- 30-07-2020 10.58 PM 20573 Cargo.lock
-a---- 30-07-2020 10.58 PM 250 Cargo.toml
-a---- 31-07-2020 10.31 AM 974 Dockerfile
来自 github 操作的确切错误 ->
Step 11/12 : COPY --from=builder /rust/app/target/x86_64-unknown-linux-musl/release/microservice_app /app
COPY failed: stat /var/lib/docker/overlay2/912bcbdb9b9198001ae5d1df4aec09ec54efb413fbb8981d165ee529ea9966a6/merged/rust/app/target/x86_64-unknown-linux-musl/release/microservice_app: no such file or directory
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/docker" failed: step exited with non-zero status: 1
替换这个
COPY --from=builder /rust/app/target/x86_64-unknown-linux-musl/release/microservice_app /app
用这个=>
COPY --from=builder /rust/app/target/x86_64-unknown-linux-musl/release/home_made_rust /app
二进制名称根据 Cargo.toml 文件
[package]
name = "home_made_rust"