Files

50 lines
1.7 KiB
Docker

# syntax=docker/dockerfile:1
FROM python:3.13-slim-trixie AS builder
ARG SCALABLE_CLI_VERSION=1.0.0
ARG TARGETARCH
RUN apt-get update && apt-get install -y --no-install-recommends curl ca-certificates \
&& rm -rf /var/lib/apt/lists/*
RUN ARCH=$([ "$TARGETARCH" = "arm64" ] && echo "aarch64" || echo "x86_64") \
&& curl -fsSL -o /tmp/sc.tar.gz \
"https://github.com/ScalableCapital/scalable-cli/releases/download/v${SCALABLE_CLI_VERSION}/sc-v${SCALABLE_CLI_VERSION}-linux-${ARCH}-gnu.tar.gz" \
&& curl -fsSL -o /tmp/SHA256SUMS \
"https://github.com/ScalableCapital/scalable-cli/releases/download/v${SCALABLE_CLI_VERSION}/sc-v${SCALABLE_CLI_VERSION}-SHA256SUMS" \
&& cd /tmp \
&& EXPECTED=$(grep "linux-${ARCH}-gnu.tar.gz" SHA256SUMS | awk '{print $1}') \
&& ACTUAL=$(sha256sum sc.tar.gz | awk '{print $1}') \
&& if [ "$EXPECTED" != "$ACTUAL" ]; then \
echo "SHA256 mismatch: expected $EXPECTED, got $ACTUAL"; exit 1; \
fi \
&& tar -xzf sc.tar.gz \
&& mv sc-v${SCALABLE_CLI_VERSION}-linux-${ARCH}-gnu/sc /usr/local/bin/sc \
&& chmod +x /usr/local/bin/sc
FROM python:3.13-slim-trixie
ARG PUID=1000
ARG PGID=1000
RUN apt-get update && apt-get install -y --no-install-recommends \
gosu dbus \
&& rm -rf /var/lib/apt/lists/*
RUN groupadd -g ${PGID} appgroup \
&& useradd -u ${PUID} -g appgroup -m -d /home/appuser appuser
COPY --from=builder /usr/local/bin/sc /usr/local/bin/sc
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY scalable_sync.py .
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENV XDG_CONFIG_HOME=/home/appuser/.config
ENV PUID=${PUID}
ENV PGID=${PGID}
ENTRYPOINT ["/entrypoint.sh"]