我已经创建了 rust 应用程序,我想 dockerize 我的应用程序。下面是我的 Dockerfile 代码,它来自参考。我在创建图像时遇到问题,出现如下错误。在我的本地 my-app 项目文件夹中,我有 cargo.toml ,其中不包含任何内容,package name
仅包含work-space
以下内容作为参考。请帮助解决这个问题。
错误:读取失败
/home/rust/src/my-app/config/Cargo.toml
FROM ekidd/rust-musl-builder:stable as builder
RUN USER=root cargo new --bin my-app
WORKDIR ./my-app
COPY ./Cargo.lock ./Cargo.lock
COPY ./Cargo.toml ./Cargo.toml
RUN cargo build --release
RUN rm src/*.rs
ADD . ./
RUN rm ./target/x86_64-unknown-linux-musl/release/deps/my-app*
RUN cargo build --release
FROM alpine:latest
ARG APP=/usr/src/app
EXPOSE 8000
ENV TZ=Etc/UTC \
APP_USER=appuser
RUN addgroup -S $APP_USER \
&& adduser -S -g $APP_USER $APP_USER
RUN apk update \
&& apk add --no-cache ca-certificates tzdata \
&& rm -rf /var/cache/apk/*
COPY --from=builder /home/rust/src/my-app/target/x86_64-unknown-linux-musl/release/rust-docker-web ${APP}/my-app
RUN chown -R $APP_USER:$APP_USER ${APP}
USER $APP_USER
WORKDIR ${APP}
CMD ["./my-app"]
cargo.toml
[workspace]
members = [
"abcd",
"efgh"
"ijkl"
]
在 config.toml 中添加包名后,我遇到了错误
原因:清单中没有指定目标,必须存在 src/lib.rs、src/main.rs、[lib] 部分或 [[bin]] 部分