From 425a3190fb470694b333529fd944263033e591a7 Mon Sep 17 00:00:00 2001 From: Andras Schmelczer Date: Sat, 30 Aug 2025 11:47:22 +0100 Subject: [PATCH] Fix cross-platform docker --- sync-server/Dockerfile | 34 ++++++++++------------------------ 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/sync-server/Dockerfile b/sync-server/Dockerfile index e1c04973..10aeb4ae 100644 --- a/sync-server/Dockerfile +++ b/sync-server/Dockerfile @@ -1,42 +1,28 @@ FROM rust:1.89-slim-trixie AS builder -ARG TARGETPLATFORM WORKDIR /usr/src/backend -# Set RUST_TARGET based on platform and create sourceable script -RUN case "$TARGETPLATFORM" in \ - "linux/amd64") echo 'export RUST_TARGET="x86_64-unknown-linux-musl"' > /tmp/rust_env ;; \ - "linux/arm64") echo 'export RUST_TARGET="aarch64-unknown-linux-musl"' > /tmp/rust_env ;; \ - "linux/arm/v7") echo 'export RUST_TARGET="armv7-unknown-linux-musleabihf"' > /tmp/rust_env ;; \ - *) echo "Unsupported platform: $TARGETPLATFORM" && exit 1 ;; \ - esac - -# Install musl tools, cross-compilation toolchains, and OpenSSL dev packages -RUN . /tmp/rust_env && \ - apt update && \ - apt install -y musl-tools libssl-dev pkg-config \ - gcc-aarch64-linux-gnu \ - gcc-arm-linux-gnueabi &&\ - rustup target add $RUST_TARGET && \ +RUN apt update && \ + apt install -y libssl-dev pkg-config && \ cargo install sqlx-cli # Build application COPY . . -RUN . /tmp/rust_env && \ - export CFLAGS="-Wno-stringop-overread" && \ - 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 && \ - cargo build --release --target $RUST_TARGET + cargo build --release -# 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 ca-certificates +RUN apt update && \ + apt install -y curl ca-certificates && \ + apt clean && \ + rm -rf /var/lib/apt/lists/* -COPY --from=builder /usr/src/backend/target/*/release/sync_server /app/sync_server +COPY --from=builder /usr/src/backend/target/release/sync_server /app/sync_server VOLUME /data EXPOSE 3000/tcp