vault-link/sync-server/Dockerfile
2025-08-27 21:10:09 +01:00

33 lines
No EOL
880 B
Docker

FROM rust:1.89-alpine AS builder
WORKDIR /usr/src/backend
# Install build dependencies for Alpine
RUN apk add --no-cache musl-dev pkgconf openssl-dev perl make
# Install sqlx-cli
RUN cargo install sqlx-cli --features=openssl-vendored
# Setup database and build
COPY . .
RUN sqlx database create --database-url sqlite://db.sqlite3 && \
sqlx migrate run --source src/app_state/database/migrations --database-url sqlite://db.sqlite3 && \
cargo build --release
# Runtime image
FROM alpine:3.22.0
LABEL org.opencontainers.image.authors="andras@schmelczer.dev"
RUN apk add --no-cache curl ca-certificates
COPY --from=builder /usr/src/backend/target/release/sync_server /app/sync_server
VOLUME /data
EXPOSE 3000/tcp
WORKDIR /data
HEALTHCHECK --interval=30s --timeout=5s \
CMD curl -f http://localhost:3000/vaults/fake/ping || exit 1
ENTRYPOINT ["/app/sync_server"]