Moved build dependencies to different stage to reduce final image size
This commit is contained in:
parent
615674d5b6
commit
bb3ef5a926
34
Dockerfile
34
Dockerfile
@ -1,5 +1,8 @@
|
||||
FROM alpine:3.21
|
||||
|
||||
#
|
||||
# Build stage
|
||||
#
|
||||
FROM alpine:3.21 AS rr-builder
|
||||
ARG RR_VERSION
|
||||
|
||||
# Install Essential Utilities
|
||||
@ -10,12 +13,8 @@ RUN apk add bash git curl build-base unzip libc++-dev libc-dev lld cmake ninja m
|
||||
RUN apk add curl-dev sdl2-dev zlib-dev libpng-dev libogg-dev libvorbis-dev libvpx-dev
|
||||
RUN apk add --update --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/main libyuv libyuv-dev
|
||||
|
||||
# Create a 'ringracers' group and user
|
||||
RUN addgroup -S ringracers && adduser -S ringracers -G ringracers
|
||||
RUN mkdir /buildfiles && chown ringracers:ringracers /buildfiles
|
||||
USER ringracers
|
||||
|
||||
# Clone the repo
|
||||
RUN mkdir /buildfiles
|
||||
WORKDIR /buildfiles/
|
||||
RUN git clone https://github.com/KartKrewDev/RingRacers.git
|
||||
|
||||
@ -25,14 +24,31 @@ COPY --chown=ringracers:ringracers build.sh .
|
||||
RUN chmod +x build.sh
|
||||
RUN ./build.sh
|
||||
|
||||
# After building
|
||||
#
|
||||
# Server stage
|
||||
#
|
||||
FROM alpine:3.21 AS rr-server
|
||||
ARG RR_VERSION
|
||||
|
||||
# Install runtime dependencies
|
||||
RUN apk add bash curl sdl2 zlib libpng libogg libvorbis libvpx
|
||||
RUN apk add --update --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/main libyuv
|
||||
|
||||
# Create a 'ringracers' group and user
|
||||
RUN addgroup -S ringracers && adduser -S ringracers -G ringracers
|
||||
USER ringracers
|
||||
|
||||
# After building, copy build files to new container
|
||||
WORKDIR /home/ringracers/server
|
||||
COPY --chown=ringracers:ringracers --from=rr-builder /buildfiles/RingRacers/build/ninja-release/bin/ringracers_$RR_VERSION .
|
||||
COPY --chown=ringracers:ringracers ringserv-template.cfg .
|
||||
|
||||
# Copy runner script
|
||||
WORKDIR /home/ringracers
|
||||
COPY --chown=ringracers:ringracers run_server.sh .
|
||||
RUN chmod +x run_server.sh
|
||||
COPY --chown=ringracers:ringracers ringserv-template.cfg ./server
|
||||
|
||||
# Set up environment variables
|
||||
ENV RINGRACERSWADDIR=/data/ringracers-data
|
||||
ENV RR_VERSION=${RR_VERSION}
|
||||
|
||||
ENTRYPOINT [ "./run_server.sh" ]
|
||||
4
build.sh
4
build.sh
@ -1,12 +1,8 @@
|
||||
#! /bin/bash
|
||||
BUILDDIR=/buildfiles/RingRacers
|
||||
OUTDIR=/home/ringracers/server
|
||||
|
||||
cd $BUILDDIR
|
||||
git fetch --tags
|
||||
git switch --detach tags/$RR_VERSION
|
||||
cmake --preset ninja-release
|
||||
cmake --build --preset ninja-release
|
||||
|
||||
[[ -d $OUTDIR ]] || mkdir $OUTDIR
|
||||
cp build/ninja-release/bin/ringracers_$RR_VERSION $OUTDIR
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user