rvault/Containerfile
2024-05-04 19:29:01 +02:00

28 lines
823 B
Docker

FROM docker.io/library/rust:1-alpine3.19 AS builder
WORKDIR /src
RUN apk add --no-cache musl-dev
RUN cargo install sqlx-cli --no-default-features --features sqlite
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
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:3.19 AS runner
# FROM scratch AS runner
COPY --from=builder /src/target/release/rvault-server /usr/local/bin/rvault-server
CMD ["/usr/local/bin/rvault-server"]