Remnawave_Node/dev.Dockerfile

54 lines
1.9 KiB
Docker

FROM mcr.microsoft.com/devcontainers/base:jammy
ARG S6_OVERLAY_VERSION=3.2.0.2
RUN apt-get update && apt-get install -y \
curl \
xz-utils \
&& rm -rf /var/lib/apt/lists/*
RUN S6_ARCH="$(uname -m)" \
&& curl -L -o /tmp/s6-noarch.tar.xz "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz" \
&& curl -L -o /tmp/s6-arch.tar.xz "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_ARCH}.tar.xz" \
&& xz -dc /tmp/s6-noarch.tar.xz | tar -C / -xpf - \
&& xz -dc /tmp/s6-arch.tar.xz | tar -C / -xpf - \
&& rm -f /tmp/s6-noarch.tar.xz /tmp/s6-arch.tar.xz
ENV NVM_DIR=/root/.nvm
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash \
&& . $NVM_DIR/nvm.sh \
&& nvm install v24.12.0 \
&& nvm alias default v24.12.0 \
&& nvm use default
ENV PATH="/root/.nvm/versions/node/v24.12.0/bin:${PATH}"
RUN curl -L https://raw.githubusercontent.com/remnawave/scripts/main/scripts/install-latest-xray.sh | bash -s -- v26.5.3 \
&& ln -s /usr/local/bin/xray /usr/local/bin/rw-core
ARG ASN_LMDB_URL=https://github.com/remnawave/asn-index/releases/latest/download/asn-prefixes-lmdb.tar.gz
RUN mkdir -p /var/log/xray /var/lib/rnode/xray /app /usr/local/share/asn \
&& echo '{}' > /var/lib/rnode/xray/xray-config.json \
&& curl -L ${ASN_LMDB_URL} -o /tmp/asn-prefixes-lmdb.tar.gz \
&& tar -xzf /tmp/asn-prefixes-lmdb.tar.gz -C /usr/local/share/asn \
&& rm -f /tmp/asn-prefixes-lmdb.tar.gz
COPY rootfs/ /
RUN chmod +x /etc/s6-overlay/scripts/init-env.sh \
/etc/s6-overlay/s6-rc.d/xray/run \
/etc/s6-overlay/s6-rc.d/xray-log/run
WORKDIR /app
EXPOSE 24000
# /init brings up the s6 service tree (init-env + xray[down] + xray-log),
# then runs CMD. Node is started manually by the developer (see DEV_ENV.md).
ENTRYPOINT ["/init"]
CMD ["tail", "-f", "/dev/null"]