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" ]