mirror of
https://github.com/kunkundi/crossdesk-server.git
synced 2026-03-24 15:29:55 +08:00
57 lines
1.7 KiB
Plaintext
57 lines
1.7 KiB
Plaintext
FROM ubuntu:22.04 AS builder
|
|
|
|
# Set non-interactive mode
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
# Install build dependencies
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends \
|
|
ca-certificates \
|
|
gnupg \
|
|
software-properties-common \
|
|
git \
|
|
curl \
|
|
unzip \
|
|
build-essential
|
|
|
|
# Add xmake repository and install xmake
|
|
RUN add-apt-repository -y ppa:xmake-io/xmake && \
|
|
apt-get update && \
|
|
apt-get install -y --no-install-recommends xmake && \
|
|
xmake --version --root
|
|
|
|
# Clean up to reduce image size
|
|
RUN apt-get clean && \
|
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
|
|
|
WORKDIR /src
|
|
COPY . .
|
|
|
|
# Build and copy only the binary, clean up build artifacts
|
|
RUN xmake b -vy --root crossdesk_server && \
|
|
mkdir -p /output && \
|
|
cp build/linux/x86_64/release/crossdesk_server /output/ && \
|
|
rm -rf build .xmake
|
|
|
|
|
|
FROM crossdesk/crossdesk-server-base:latest
|
|
|
|
# Generate coturn certificates and set permissions in one layer
|
|
RUN mkdir -p /opt/turnserver && \
|
|
cd /opt/turnserver && \
|
|
openssl genrsa -out turn_server_pkey.pem 2048 && \
|
|
openssl req -x509 -new -nodes \
|
|
-key turn_server_pkey.pem \
|
|
-sha256 -days 3650 \
|
|
-subj "/C=CN/ST=Beijing/L=Beijing/O=SelfSigned/OU=IT/CN=coturn.local" \
|
|
-out turn_server_cert.pem && \
|
|
chmod 600 /opt/turnserver/turn_server_pkey.pem
|
|
|
|
# Copy files and set permissions in one layer
|
|
COPY docker/start.sh /start.sh
|
|
COPY docker/generate_certs.sh /docker/generate_certs.sh
|
|
COPY --from=builder /output/crossdesk_server /crossdesk-server/crossdesk_server
|
|
RUN chmod +x /start.sh /docker/generate_certs.sh /crossdesk-server/crossdesk_server
|
|
|
|
ENTRYPOINT ["/start.sh"]
|