prism/server/Dockerfile
2026-01-22 23:10:27 -08:00

45 lines
1.6 KiB
Docker

FROM oven/bun:1.3.6-debian AS builder
WORKDIR /app
COPY package.json bun.lock* ./
RUN bun install --frozen-lockfile
COPY server ./server
RUN bun build --compile server/index.ts --outfile sup-server
FROM debian:13.3-slim
ARG SIGNAL_CLI_VERSION=0.13.22
RUN apt-get update && apt-get install -y --no-install-recommends \
openjdk-21-jre-headless \
curl \
ca-certificates \
zip \
&& rm -rf /var/lib/apt/lists/*
RUN curl -L https://github.com/AsamK/signal-cli/releases/download/v${SIGNAL_CLI_VERSION}/signal-cli-${SIGNAL_CLI_VERSION}.tar.gz | tar xz -C /tmp \
&& mv /tmp/signal-cli-${SIGNAL_CLI_VERSION} /usr/local/signal-cli \
&& chmod +x /usr/local/signal-cli/bin/signal-cli
RUN ARCH=$(uname -m) && \
if [ "$ARCH" = "aarch64" ]; then \
echo "Installing ARM64 native library for signal-cli..." && \
LIBSIGNAL_VERSION=$(ls /usr/local/signal-cli/lib/libsignal-client-*.jar | sed 's/.*libsignal-client-\(.*\)\.jar/\1/') && \
curl -L https://github.com/exquo/signal-libs-build/releases/download/libsignal_v${LIBSIGNAL_VERSION}/libsignal_jni.so-v${LIBSIGNAL_VERSION}-aarch64-unknown-linux-gnu.tar.gz | tar xz -C /tmp && \
mv /tmp/libsignal_jni.so /tmp/libsignal_jni_aarch64.so && \
cd /tmp && zip -u /usr/local/signal-cli/lib/libsignal-client-*.jar libsignal_jni_aarch64.so && \
rm /tmp/libsignal_jni_aarch64.so; \
fi
COPY --from=builder /app/sup-server /usr/local/bin/sup-server
COPY --from=builder /app/server/public /public
ENV PATH="/usr/local/signal-cli/bin:${PATH}"
ENV LD_LIBRARY_PATH="/usr/local/signal-cli/lib:${LD_LIBRARY_PATH}"
EXPOSE 8080
CMD ["sup-server"]