rvault/Containerfile
C0ffeeCode 16aada55c5
Add readme
and update container's alpine
2025-06-17 10:58:29 -07:00

32 lines
997 B
Docker

ARG alpine_version=3.22
FROM docker.io/library/rust:1-alpine${alpine_version} AS builder
WORKDIR /src
RUN apk add --no-cache musl-dev
RUN cargo install sqlx-cli --no-default-features --features sqlite
# Required for compile-time schemata checks of migrations
ENV DATABASE_URL=sqlite:/tmp/rvault.db
RUN touch /tmp/rvault.db
COPY Cargo.toml Cargo.lock .
RUN --mount=type=cache,target=/usr/local/cargo/registry \
mkdir src && echo "fn main() {}" > src/main.rs && \
cargo fetch --locked --target $(rustc -vV | sed -n 's|host: ||p') && \
rm src/main.rs
# Required for compile-time checks of query - database-schema compatibility
COPY migrations migrations
RUN cargo sqlx migrate run
COPY src src
RUN --mount=type=cache,target=/usr/local/cargo/registry \
cargo build --release --locked
FROM docker.io/library/alpine:${alpine_version} AS runner
# FROM scratch AS runner
COPY --from=builder /src/target/release/rvault-server /usr/bin/rvault-server
CMD ["/usr/bin/rvault-server"]