This commit is contained in:
Loup-Garou911XD 2024-09-27 18:09:27 +05:30
parent 34ed3c6445
commit 5e12ee328a
3 changed files with 15 additions and 122 deletions

View File

@ -8,7 +8,7 @@ ARG base_image=ubuntu:latest
#-------------------------------BUILDER--------------------------------
# Start with the base image
FROM ${base_image} AS builder
FROM --platform=$TARGETPLATFORM ${base_image} AS builder
# Renew the args
ARG headless_build
@ -24,19 +24,21 @@ ENV HEADLESS_BUILD=${headless_build}
# Install build dependencies
RUN apt-get update && \
apt-get install -y \
python3.12-dev \
python3.12-venv \
python3-pip \
libsdl2-dev \
apt-get install -y --no-install-recommends \
build-essential \
clang \
clang-format \
cmake \
curl \
libglut-dev \
libopenal-dev \
libsdl2-dev \
libvorbis-dev \
make \
curl \
rsync \
clang-format \
cmake
python3-pip \
python3.12-dev \
python3.12-venv \
rsync
# Copy source code
COPY ./ /ballistica
@ -55,10 +57,9 @@ RUN mkdir /ballistica_cmake && \
fi && \
mv build/cmake/*/staged/* /ballistica_cmake
#-------------------------------RUNNER--------------------------------
# Create a new stage for the runtime environment
FROM ${base_image}
FROM --platform=$TARGETPLATFORM ${base_image} as runner
# Environment settings
ENV LANG=en_US.utf8
@ -70,11 +71,10 @@ ENV DEBIAN_FRONTEND=noninteractive
ARG headless_build
ENV HEADLESS_BUILD=${headless_build}
ARG cmake_build_type
LABEL BOMBSQUAD_BUILD_TYPE=${cmake_build_type}
# Install runtime dependencies
RUN apt-get update -y && \
RUN apt-get update && \
apt-get install -y \
python3.12-dev && \
if [ "$HEADLESS_BUILD" = "0" ]; then \

View File

@ -1,104 +0,0 @@
# if provided it will make debug build
ARG cmake_build_type=Release
# whether to make GUI or headless build (defaults to headless)
ARG headless_build=1
# system to start with the build with
# currently will break for other images
ARG base_image=ubuntu:latest
#-------------------------------BUILDER--------------------------------
# Start with the base image
FROM --platform=linux/arm64 ${base_image} AS builder
# Renew the args
ARG headless_build
ARG cmake_build_type
# Environment settings
ENV LANG=en_US.utf8
ENV LANGUAGE=en_US
ENV LC_ALL=en_US.utf8
ENV DEBIAN_FRONTEND=noninteractive
ENV CMAKE_BUILD_TYPE=${cmake_build_type}
ENV HEADLESS_BUILD=${headless_build}
# Install build dependencies
RUN apt-get update && \
apt-get install -y --no-install-recommends \
python3.12-dev \
python3.12-venv \
python3-pip \
libsdl2-dev \
libglut-dev \
libopenal-dev \
make \
curl \
rsync \
clang-format \
clang \
cmake \
libvorbis-dev \
build-essential
# Copy source code
COPY ./ /ballistica
# Set the working directory
WORKDIR /ballistica
# Compile the application
RUN mkdir /ballistica_cmake && \
if [ "$HEADLESS_BUILD" != "0" ]; then \
make cmake-server-build && \
mv build/cmake/*/ballisticakit_headless build/cmake/*/staged/dist; \
else \
make cmake-build && \
mv build/cmake/*/ballisticakit build/cmake/*/staged/; \
fi && \
mv build/cmake/*/staged/* /ballistica_cmake
#-------------------------------RUNNER--------------------------------
# Create a new stage for the runtime environment using ARM64 base image
FROM --platform=linux/arm64 ${base_image}
# Environment settings
ENV LANG=en_US.utf8
ENV LANGUAGE=en_US
ENV LC_ALL=en_US.utf8
ENV DEBIAN_FRONTEND=noninteractive
# Renew the args
ARG headless_build
ENV HEADLESS_BUILD=${headless_build}
ARG cmake_build_type
LABEL BOMBSQUAD_BUILD_TYPE=${cmake_build_type}
# Install runtime dependencies
RUN apt-get update -y && \
apt-get install -y \
python3.12-dev && \
if [ "$HEADLESS_BUILD" = "0" ]; then \
apt-get install -y \
libsdl2-dev \
libvorbis-dev \
libglut-dev \
pulseaudio-utils \
libopenal-dev; \
fi && \
rm -rf /var/lib/apt/lists/* && \
python3.12 -c "import uuid; print(uuid.uuid4())" > /etc/machine-id
# Copy the compiled application from the builder stage
COPY --from=builder /ballistica_cmake \
/home/ubuntu/ballistica
# Set the working directory
WORKDIR /home/ubuntu/ballistica
RUN ln -s ballisticakit* run
# Expose the necessary port
EXPOSE 43210/udp
# Set the default command to run the application
CMD [ "./run" ]

View File

@ -71,10 +71,7 @@ def docker_build(
headless_build=headless_build, build_type=build_type
)
if platform is not None and 'arm64' in platform:
config_file = 'config/docker/Dockerfile_arm64'
else:
config_file = 'config/docker/Dockerfile'
config_file = 'config/docker/Dockerfile'
print(
f'Building docker image {image_name} '