У меня есть простое приложение Rust, которое читает файлы JSON, как показано ниже:
fn main() {
let config_dir = std::path::PathBuf::from("config/endpoints.json");
println!(">>>>>>> Canonicalized path {:?}", std::fs::canonicalize(&config_dir));
println!(">>>>>>>>read endpoint file");
println!("Does file exist? {}", std::path::Path::new("config/endpoints.json").exists());
}
Приложение при запуске с cargo run
возвращает правильный путь к файлу, но когда я добавляю файлы в образ Dockerпохож на ржавый мусульманин-строитель , я получаю ошибки:
канонизированный pathErr (Os {код: 2, вид: NotFound, сообщение: "Нет такого файла или каталога")})
Существует ли путь false
Мой Dockerfile
выглядит следующим образом
FROM ekidd/rust-musl-builder AS builder
# Add our source code.
ADD . ./
RUN sudo chown -R rust:rust /home/rust
RUN cargo build --release
FROM alpine:latest
RUN apk --no-cache add ca-certificates
EXPOSE 3001
COPY --from=builder \
/home/rust/src/config/ \
/usr/local/bin/config/
COPY --from=builder \
/home/rust/src/target/x86_64-unknown-linux-musl/release/app \
/usr/local/bin/
RUN chmod a+x /usr/local/bin/app
ENV RUST_BACKTRACE=1
CMD /usr/local/bin/app
Как я могу прочитать файл внутри образа Docker?