/ docker / proxy.Dockerfile
proxy.Dockerfile
 1  FROM node:24.14.0-alpine AS build
 2  
 3  RUN mkdir -p /opt/lineage2ts
 4  WORKDIR /opt/lineage2ts
 5  
 6  COPY proxy proxy
 7  
 8  COPY package.json package.json
 9  COPY package-lock.json package-lock.json
10  
11  RUN apk add python3 && ln -sf python3 /usr/bin/python
12  RUN apk add py3-pip
13  RUN apk add build-base
14  RUN apk add 7zip
15  
16  RUN npm ci --workspace=proxy --build-from-source
17  RUN cd proxy && npm run build && rm -rf source
18  
19  RUN rm -rf node_modules
20  RUN npm ci --cache .npm --omit=dev --workspace=proxy --build-from-source
21  RUN 7z a node_modules.7z node_modules
22  
23  FROM node:24.14.0-alpine
24  
25  RUN mkdir -p /opt/lineage2ts
26  WORKDIR /opt/lineage2ts
27  
28  COPY --from=build /opt/lineage2ts/proxy /opt/lineage2ts/proxy
29  COPY --from=build /opt/lineage2ts/node_modules.7z /opt/lineage2ts/node_modules.7z
30  
31  COPY package.json /opt/lineage2ts/package.json
32  COPY package-lock.json /opt/lineage2ts/package-lock.json
33  COPY LICENSE /opt/lineage2ts/LICENSE
34  COPY Readme.md /opt/lineage2ts/Readme.md
35  
36  COPY docker/proxy-entry.sh proxy-entry.sh
37  RUN chmod +x proxy-entry.sh
38  
39  RUN apk add 7zip
40  
41  LABEL maintainer="MrTREX" version="latest"  website="https://gitlab.com/MrTREX/lineage2ts"
42  
43  # Please note that proxy server variables are prefixed via: PS.<config>.<property>
44  ENV PS.server.ExternalProxyIp=127.0.0.1
45  ENV PS.server.LoginServerHost=127.0.0.1
46  ENV PS.server.LoginServerPort=2106
47  ENV PS.logger.LogLevel=info
48  
49  # Pass Nodejs runtime parameters via PS_NODE_OPTIONS
50  # ENV PS_NODE_OPTIONS=--expose-gc
51  
52  EXPOSE 7777 2106
53  ENV NODE_ENV=production
54  
55  CMD [ "/bin/sh", "proxy-entry.sh" ]