mirror of
https://github.com/remnawave/node.git
synced 2026-07-01 05:32:10 +00:00
54 lines
1.9 KiB
Docker
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"]
|