mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-01-19 21:37:57 +08:00
68 lines
1.6 KiB
Docker
68 lines
1.6 KiB
Docker
# Start with the base image
|
|
FROM ubuntu:24.04 AS builder
|
|
|
|
ENV LANG en_US.utf8
|
|
ENV LANGUAGE=en_US
|
|
|
|
# Install build dependencies
|
|
RUN DEBIAN_FRONTEND=noninteractive \
|
|
apt-get update -y && \
|
|
apt-get install -y \
|
|
python3.12-dev \
|
|
python3.12-venv \
|
|
python3-pip \
|
|
libsdl2-dev \
|
|
libvorbisfile3 \
|
|
freeglut3-dev \
|
|
libopenal-dev \
|
|
make \
|
|
curl \
|
|
rsync \
|
|
clang-format \
|
|
cmake \
|
|
libvorbis-dev
|
|
|
|
# Copy source code
|
|
COPY ./ /home/ubuntu/ballistica
|
|
|
|
WORKDIR /home/ubuntu/ballistica
|
|
|
|
# Compile the application
|
|
RUN ./do_stuff
|
|
|
|
# Create a new stage for the runtime environment
|
|
FROM ubuntu:24.04
|
|
|
|
ENV LANG en_US.utf8
|
|
ENV LANGUAGE=en_US
|
|
|
|
WORKDIR /home/ubuntu/ballistica
|
|
|
|
ARG BOMBSQUAD_VERSION=N/A
|
|
LABEL bombsquad_version=${BOMBSQUAD_VERSION}
|
|
|
|
# Copy apt cache from builder to avoid redownloading
|
|
COPY --from=builder /var/cache/apt/ /var/cache/apt/
|
|
COPY --from=builder /var/lib/apt/lists/ /var/lib/apt/lists/
|
|
|
|
# Install runtime dependencies
|
|
RUN DEBIAN_FRONTEND=noninteractive \
|
|
apt-get install -y \
|
|
python3.12-venv \
|
|
python3-pip \
|
|
libsdl2-dev \
|
|
libvorbisfile3 \
|
|
freeglut3-dev \
|
|
libopenal1 \
|
|
curl
|
|
|
|
# Copy the compiled application from the builder stage
|
|
COPY --from=builder /home/ubuntu/ballistica/build/cmake/server-debug/staged/ /home/ubuntu/ballistica
|
|
COPY --from=builder /home/ubuntu/ballistica/build/cmake/server-debug/ballisticakit_headless /home/ubuntu/ballistica/dist
|
|
|
|
# Expose the necessary port
|
|
EXPOSE 43210/udp
|
|
|
|
# Set the default command to run the application
|
|
CMD [ "./ballisticakit_server" ]
|