mirror of
https://github.com/lone-cloud/prism
synced 2026-06-03 08:43:10 -07:00
45 lines
1.6 KiB
Docker
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
|
|
|
|
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 /usr/local/bin/sup
|
|
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"]
|