38 lines
1.6 KiB
Docker
38 lines
1.6 KiB
Docker
FROM rust:1.85.0 AS lib_builder
|
|
WORKDIR /src
|
|
COPY rust/ .
|
|
RUN cargo build
|
|
|
|
FROM ghcr.io/allanger/dumb-downloader as dudo
|
|
RUN apt-get update -y && apt-get install unzip -y
|
|
ENV RUST_LOG=info
|
|
ENV GODOT_VERSION=4.3
|
|
WORKDIR /out
|
|
RUN dudo -l "https://github.com/godotengine/godot/releases/download/{{ version }}-stable/Godot_v{{ version }}-stable_{{ os }}.{{ arch }}.zip" -d /tmp/godot.zip -p $GODOT_VERSION
|
|
RUN cd /tmp && unzip godot.zip && rm -f godot.zip
|
|
RUN sh -c 'find /tmp -type f -print0 -name "Godot*" | xargs --null -I{} mv {} godot'
|
|
|
|
RUN dudo -l "https://github.com/godotengine/godot/releases/download/{{ version }}-stable/Godot_v{{ version }}-stable_export_templates.tpz" -d /tmp/export_templates.zip -p $GODOT_VERSION
|
|
RUN cd /tmp && unzip export_templates.zip && rm -f export_templates.zip
|
|
RUN ls /tmp
|
|
RUN mkdir -p /out/templates
|
|
RUN sh -c 'cd /tmp && find . -type f -print0 -name "Godot*" | xargs --null -I{} mv {} /out/{}'
|
|
RUN chmod +x /out/godot
|
|
|
|
FROM ubuntu as builder
|
|
RUN apt-get update -y && apt-get install fontconfig -y
|
|
WORKDIR /src
|
|
COPY --from=dudo /out/godot /usr/bin/godot
|
|
COPY --from=lib_builder /src/target/debug/libopen_strike_2.so /src/rust/target/debug/libopen_strike_2.so
|
|
RUN mkdir -p /root/.local/share/godot/export_templates/4.3.stable/
|
|
COPY --from=dudo /out/templates /root/.local/share/godot/export_templates/4.3.stable
|
|
COPY . .
|
|
RUN mkdir /out
|
|
RUN godot --verbose --headless --export-debug "[Dedicated Server] Linux" /out/open_strike
|
|
|
|
FROM ubuntu
|
|
RUN apt-get update -y && apt-get install fontconfig -y
|
|
WORKDIR /app
|
|
COPY --from=builder /out .
|
|
CMD ["/app/open_strike.sh"]
|