diff --git a/Dockerfile b/Dockerfile index 5939cfb..e392773 100644 --- a/Dockerfile +++ b/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" ] \ No newline at end of file diff --git a/build.sh b/build.sh index 7ef9d1e..a86ead6 100644 --- a/build.sh +++ b/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