Build server for multiple arch (#106)

This commit is contained in:
Andras Schmelczer 2025-08-30 21:50:34 +01:00 committed by GitHub
parent 9177984ff6
commit 4cdd0cbd40
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 111 additions and 28 deletions

View file

@ -1,33 +1,34 @@
FROM rust:1.89 AS builder
FROM rust:1.89-slim-trixie AS builder
WORKDIR /usr/src/backend
RUN apt update && apt install -y musl-tools
RUN cargo install sqlx-cli
RUN apt update && \
apt install -y libssl-dev pkg-config && \
cargo install sqlx-cli
# Build application
COPY . .
RUN sqlx database create --database-url sqlite://db.sqlite3
RUN sqlx migrate run --source src/app_state/database/migrations --database-url sqlite://db.sqlite3
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
RUN cargo build --release --target x86_64-unknown-linux-musl
# Runtime image
FROM alpine:3.22.1
FROM debian:trixie-slim
LABEL org.opencontainers.image.authors="andras@schmelczer.dev"
RUN apk add --no-cache curl
RUN apt update && \
apt install -y curl ca-certificates && \
apt clean && \
rm -rf /var/lib/apt/lists/*
COPY --from=builder /usr/src/backend/target/x86_64-unknown-linux-musl/release/sync_server /app/sync_server
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 \
HEALTHCHECK --interval=30s --timeout=5s \
CMD curl -f http://localhost:3000/vaults/fake/ping || exit 1
ENTRYPOINT ["/app/sync_server"]