This commit is contained in:
Andras Schmelczer 2025-08-27 21:10:09 +01:00
commit aada6a3b87
No known key found for this signature in database
GPG key ID: FC8F2C3D3D1A718C
2 changed files with 15 additions and 14 deletions

View file

@ -67,6 +67,7 @@ jobs:
uses: docker/build-push-action@0565240e2d4ab88bba5387d719585280857ece09 # v5.0.0 uses: docker/build-push-action@0565240e2d4ab88bba5387d719585280857ece09 # v5.0.0
with: with:
context: sync-server context: sync-server
platforms: linux/amd64,linux/arm64,linux/arm/v7
push: ${{ github.ref_type == 'tag' }} push: ${{ github.ref_type == 'tag' }}
tags: ${{ steps.meta.outputs.tags }} tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }} labels: ${{ steps.meta.outputs.labels }}

View file

@ -1,33 +1,33 @@
FROM rust:1.89 AS builder FROM rust:1.89-alpine AS builder
WORKDIR /usr/src/backend WORKDIR /usr/src/backend
RUN apt update && apt install -y musl-tools # Install build dependencies for Alpine
RUN cargo install sqlx-cli 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 . . COPY . .
RUN sqlx database create --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 && \
RUN 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 # Runtime image
FROM alpine:3.22.0 FROM alpine:3.22.0
LABEL org.opencontainers.image.authors="andras@schmelczer.dev" LABEL org.opencontainers.image.authors="andras@schmelczer.dev"
RUN apk add --no-cache curl RUN apk add --no-cache curl ca-certificates
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 VOLUME /data
EXPOSE 3000/tcp EXPOSE 3000/tcp
WORKDIR /data WORKDIR /data
HEALTHCHECK \ HEALTHCHECK --interval=30s --timeout=5s \
--interval=30s \
--timeout=5s \
CMD curl -f http://localhost:3000/vaults/fake/ping || exit 1 CMD curl -f http://localhost:3000/vaults/fake/ping || exit 1
ENTRYPOINT ["/app/sync_server"] ENTRYPOINT ["/app/sync_server"]