28 lines
823 B
Docker
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"]
|