1
- # Configure nwserver to run with nwnx
1
+ # Load nwnx image to import nwserver + nwnx plugins
2
2
ARG NWNX_VERSION
3
- FROM nwnxee/unified:${NWNX_VERSION}
3
+ FROM nwnxee/unified:${NWNX_VERSION} as nwnx
4
+
5
+ # Remove incompatible plugins
6
+ RUN rm -rf /nwn/nwnx/NWNX_Ruby.so \
7
+ /nwn/nwnx/NWNX_SpellChecker.so \
8
+ /nwn/nwnx/NWNX_Redis.so
9
+
10
+ FROM ubuntu:20.04
11
+
12
+ COPY --from=nwnx /nwn /nwn
13
+
14
+ RUN apt-get update \
15
+ && apt-get --no-install-recommends -y install ca-certificates wget \
16
+ && wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \
17
+ && dpkg -i packages-microsoft-prod.deb \
18
+ && rm packages-microsoft-prod.deb \
19
+ && apt-get update \
20
+ && apt-get --no-install-recommends -y install libc6 libstdc++6 \
21
+ hunspell \
22
+ default-libmysqlclient-dev \
23
+ libmariadb3 \
24
+ libpq5 \
25
+ libsqlite3-0 \
26
+ luajit libluajit-5.1-2 \
27
+ inotify-tools \
28
+ patch \
29
+ unzip \
30
+ dotnet-runtime-7.0 \
31
+ dotnet-apphost-pack-7.0 \
32
+ && rm -rf /var/cache/apt /var/lib/apt/lists/*
4
33
34
+ # Copy Anvil Binaries
5
35
ARG BINARY_PATH
6
36
COPY ${BINARY_PATH} /nwn/anvil/
7
37
@@ -11,11 +41,37 @@ ENV ANVIL_IMAGE=1
11
41
# Set which kill signal to exit upon
12
42
STOPSIGNAL SIGINT
13
43
14
- # Enable and configure DotNET plugins + dependencies
44
+ # Patch run-server.sh with our modifications
45
+ COPY ./scripts/run-server.patch /nwn
46
+ RUN patch /nwn/run-server.sh < /nwn/run-server.patch
47
+
48
+ # User Data
49
+ VOLUME /nwn/home
50
+
51
+ # Configure nwserver to run with nwnx
52
+ ENV NWNX_CORE_LOAD_PATH=/nwn/nwnx/
53
+ ENV NWN_LD_PRELOAD="/nwn/nwnx/NWNX_Core.so"
54
+
55
+ # Configure nwnx to run with anvil
15
56
ENV NWNX_DOTNET_SKIP=n
16
57
ENV NWNX_SWIG_DOTNET_SKIP=n
17
58
ENV NWNX_DOTNET_ASSEMBLY=/nwn/anvil/NWN.Anvil
18
59
19
- # Patch run-server.sh with our modifications
20
- COPY ./scripts/run-server.patch /nwn
21
- RUN patch /nwn/run-server.sh < /nwn/run-server.patch
60
+ # Use NWNX_ServerLogRedirector as default log manager
61
+ ENV NWNX_SERVERLOGREDIRECTOR_SKIP=n
62
+ ENV NWN_TAIL_LOGS=n
63
+ ENV NWNX_CORE_LOG_LEVEL=6
64
+ ENV NWNX_SERVERLOGREDIRECTOR_LOG_LEVEL=6
65
+
66
+ # Disable all other plugins by default.
67
+ ENV NWNX_CORE_SKIP_ALL=y
68
+
69
+ # Entrypoint & Executable
70
+ EXPOSE ${NWN_PORT:-5121}/udp
71
+
72
+ RUN chmod +x /nwn/data/bin/linux-amd64/nwserver
73
+ RUN chmod +x /nwn/run-server.sh
74
+ ENV NWN_EXTRA_ARGS="-userdirectory /nwn/run"
75
+
76
+ WORKDIR /nwn/data/bin/linux-amd64
77
+ ENTRYPOINT ["/bin/bash", "/nwn/run-server.sh"]
0 commit comments