11# =============================================================================
22# Docker Development Environment for ad-blocking toolkit
3- # Includes: .NET 10, Node.js 22 LTS , Python 3.12, Rust, PowerShell 7
3+ # Includes: .NET 10, Deno 2.x , Python 3.12, Rust, PowerShell 7
44# =============================================================================
55
66FROM mcr.microsoft.com/dotnet/sdk:10.0-noble
77
88# Build arguments for version control
9- ARG NODE_VERSION=22
9+ ARG DENO_VERSION=2.x
1010ARG PYTHON_VERSION=3.12
1111ARG RUST_VERSION=stable
1212
@@ -15,12 +15,12 @@ ENV DEBIAN_FRONTEND=noninteractive \
1515 DOTNET_CLI_TELEMETRY_OPTOUT=1 \
1616 DOTNET_NOLOGO=1 \
1717 DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 \
18- NODE_ENV=development \
18+ DENO_DIR=/root/.deno \
1919 PYTHONDONTWRITEBYTECODE=1 \
2020 PYTHONUNBUFFERED=1 \
2121 CARGO_HOME=/root/.cargo \
2222 RUSTUP_HOME=/root/.rustup \
23- PATH="/root/.cargo/bin:${PATH}"
23+ PATH="/root/.deno/bin:/root/. cargo/bin:${PATH}"
2424
2525# =============================================================================
2626# Base dependencies
@@ -43,15 +43,16 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
4343 && apt-get clean && rm -rf /var/lib/apt/lists/*
4444
4545# =============================================================================
46- # Node.js 22.x LTS via NodeSource
46+ # Deno 2.x
4747# =============================================================================
48- RUN curl -fsSL https://deb.nodesource.com/setup_${NODE_VERSION}.x | bash - && \
49- apt-get install -y --no-install-recommends nodejs && \
50- npm install -g npm@latest && \
51- apt-get clean && rm -rf /var/lib/apt/lists/*
48+ RUN curl -fsSL https://deno.land/install.sh | sh && \
49+ ln -s /root/.deno/bin/deno /usr/local/bin/deno
5250
53- # Install global npm packages
54- RUN npm install -g @adguard/hostlist-compiler typescript ts-node
51+ # Install hostlist-compiler via Deno's npm compatibility
52+ # Create a wrapper script for hostlist-compiler
53+ RUN echo '#!/bin/sh\ndeno run --allow-read --allow-write --allow-env --allow-net --allow-run npm:@adguard/hostlist-compiler "$@"' > /usr/local/bin/hostlist-compiler && \
54+ chmod +x /usr/local/bin/hostlist-compiler && \
55+ deno cache npm:@adguard/hostlist-compiler
5556
5657# =============================================================================
5758# Python 3.12
@@ -107,16 +108,15 @@ RUN curl -sL https://github.com/mikefarah/yq/releases/latest/download/yq_linux_a
107108# =============================================================================
108109RUN echo "=== Installed Versions ===" && \
109110 echo "dotnet: $(dotnet --version)" && \
110- echo "node: $(node --version)" && \
111- echo "npm: $(npm --version)" && \
111+ echo "deno: $(deno --version | head -1)" && \
112112 echo "python: $(python --version)" && \
113113 echo "pip: $(pip --version)" && \
114114 echo "rustc: $(rustc --version)" && \
115115 echo "cargo: $(cargo --version)" && \
116116 echo "pwsh: $(pwsh --version)" && \
117117 echo "git: $(git --version)" && \
118118 echo "yq: $(yq --version)" && \
119- echo "hostlist-compiler: $(hostlist-compiler --version) " && \
119+ echo "hostlist-compiler: available via deno " && \
120120 echo "=========================="
121121
122122# =============================================================================
0 commit comments