mirror of
https://github.com/DarkflameUniverse/DarkflameServer
synced 2024-08-30 18:43:58 +00:00
9116317834
* greatly simplify docker * back to gcc since I can't the libs to load properly * fix typo add set -e to entrypoint better copy of entrypoint.sh and use proper entrypoint * use debian instead of gcc for runtime comment and organize it a bit drop gcc to 12 since we are using debian 12 as well * explicitly include mariadb libs * Make the server not crash in the case we are using only env-vars make the dockerfile have configs in the expected location incase of bypassing entrypoint.sh * remove unneede var from example, since it's in the container now * coments to dockerfile * Revert master server changes * Resolve conflicting port options between chat, master, and world move chat_server_port to shared since it's used by world and chat * Don't error if file does not exists when updating a config option move update before and use bin dir var
52 lines
1.5 KiB
Docker
52 lines
1.5 KiB
Docker
FROM gcc:12 as build
|
|
|
|
WORKDIR /app
|
|
|
|
RUN set -ex; \
|
|
apt-get update; \
|
|
apt-get install -y cmake
|
|
|
|
COPY . /app/
|
|
COPY --chmod=0500 ./build.sh /app/
|
|
|
|
RUN sed -i 's/MARIADB_CONNECTOR_COMPILE_JOBS__=.*/MARIADB_CONNECTOR_COMPILE_JOBS__=2/' /app/CMakeVariables.txt
|
|
|
|
RUN ./build.sh
|
|
|
|
FROM debian:12 as runtime
|
|
|
|
WORKDIR /app
|
|
|
|
RUN --mount=type=cache,id=build-apt-cache,target=/var/cache/apt \
|
|
apt update && \
|
|
apt install -y libssl3 libcurl4 && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# Grab libraries and load them
|
|
COPY --from=build /app/build/mariadbcpp/src/mariadb_connector_cpp-build/libmariadbcpp.so /usr/local/lib/
|
|
COPY --from=build /app/build/mariadbcpp/src/mariadb_connector_cpp-build/libmariadb/libmariadb/libmariadb.so.3 /usr/local/lib
|
|
RUN ldconfig
|
|
|
|
# Server bins
|
|
COPY --from=build /app/build/*Server /app/
|
|
|
|
# Necessary suplimentary files
|
|
COPY --from=build /app/build/*.ini /app/configs/
|
|
COPY --from=build /app/build/vanity/*.* /app/vanity/*
|
|
COPY --from=build /app/build/navmeshes /app/navmeshes
|
|
COPY --from=build /app/build/migrations /app/migrations
|
|
COPY --from=build /app/build/*.dcf /app/
|
|
|
|
# backup of config and vanity files to copy to the host incase
|
|
# of a mount clobbering the copy from above
|
|
COPY --from=build /app/build/*.ini /app/default-configs/
|
|
COPY --from=build /app/build/vanity/*.* /app/default-vanity/*
|
|
|
|
# needed as the container runs with the root user
|
|
# and therefore sudo doesn't exist
|
|
ENV USE_SUDO_AUTH=0
|
|
ENV DLU_CONFIG_DIR=/app/configs/
|
|
|
|
COPY --chmod=0500 ./entrypoint.sh /app/
|
|
ENTRYPOINT [ "/app/entrypoint.sh" ]
|