Skip to content

Commit da1daf6

Browse files
committed
Mod: Node.jsインストール方法をNodeSourceから公式バイナリに変更
- Debian 13のSHA1拒否ポリシー(2026-02-01〜)によるNodeSourceリポジトリの 署名検証エラーを解消 - Node.js公式バイナリを直接ダウンロード・展開する方式に変更 - マルチアーキテクチャ対応(amd64, arm64, armhf) - NODE_VERSION環境変数でバージョン管理を明示化 - xz-utilsパッケージを追加(tar.xz展開用) - nodeバージョンを現時点の最新に変更
1 parent ee53339 commit da1daf6

File tree

2 files changed

+41
-11
lines changed

2 files changed

+41
-11
lines changed

Dockerfile

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ LABEL org.opencontainers.image.licenses="MIT"
1414
# 非対話的インストールの設定
1515
ENV DEBIAN_FRONTEND=noninteractive
1616

17+
# Node.jsのバージョン設定
18+
# ※ バージョン更新時はここを変更
19+
ENV NODE_VERSION=25.6.0
20+
1721
# 基本パッケージのインストール
1822
RUN apt-get update && apt-get install -y --no-install-recommends \
1923
# 開発ツール
@@ -24,6 +28,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
2428
nano \
2529
ca-certificates \
2630
gnupg \
31+
xz-utils \
2732
# ビルドツール
2833
build-essential \
2934
# データベース
@@ -39,11 +44,21 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
3944
&& apt-get clean \
4045
&& rm -rf /var/lib/apt/lists/*
4146

42-
# Node.js 20 LTS のインストール
43-
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
44-
&& apt-get install -y nodejs \
45-
&& apt-get clean \
46-
&& rm -rf /var/lib/apt/lists/*
47+
# Node.js LTS のインストール(公式バイナリを直接使用)
48+
# NodeSourceリポジトリはDebian 13のSHA1拒否ポリシーに対応していないため、
49+
# Node.js公式バイナリを直接ダウンロードしてインストール
50+
RUN ARCH=$(dpkg --print-architecture) \
51+
&& case "${ARCH}" in \
52+
amd64) NODE_ARCH='x64' ;; \
53+
arm64) NODE_ARCH='arm64' ;; \
54+
armhf) NODE_ARCH='armv7l' ;; \
55+
*) echo "Unsupported architecture: ${ARCH}" && exit 1 ;; \
56+
esac \
57+
&& curl -fsSL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${NODE_ARCH}.tar.xz" -o /tmp/node.tar.xz \
58+
&& tar -xJf /tmp/node.tar.xz -C /usr/local --strip-components=1 \
59+
&& rm /tmp/node.tar.xz \
60+
&& node --version \
61+
&& npm --version
4762

4863
# グローバルnpmパッケージのインストール(rootユーザーで実行)
4964
RUN npm install -g \

local-build/Dockerfile.base

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# ========================================
2-
# カスタムDevContainerベースイメージ
2+
# カスタムDevContainerベースイメージ(ローカルビルド版)
33
# Debian 13 (trixie) + Node.js 20 LTS
44
# User: vscode
55
# ========================================
@@ -14,6 +14,10 @@ LABEL org.opencontainers.image.licenses="MIT"
1414
# 非対話的インストールの設定
1515
ENV DEBIAN_FRONTEND=noninteractive
1616

17+
# Node.jsのバージョン設定
18+
# ※ バージョン更新時はここを変更
19+
ENV NODE_VERSION=25.6.0
20+
1721
# 基本パッケージのインストール
1822
RUN apt-get update && apt-get install -y --no-install-recommends \
1923
# 開発ツール
@@ -24,6 +28,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
2428
nano \
2529
ca-certificates \
2630
gnupg \
31+
xz-utils \
2732
# ビルドツール
2833
build-essential \
2934
# データベース
@@ -39,11 +44,21 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
3944
&& apt-get clean \
4045
&& rm -rf /var/lib/apt/lists/*
4146

42-
# Node.js 20 LTS のインストール
43-
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
44-
&& apt-get install -y nodejs \
45-
&& apt-get clean \
46-
&& rm -rf /var/lib/apt/lists/*
47+
# Node.js LTS のインストール(公式バイナリを直接使用)
48+
# NodeSourceリポジトリはDebian 13のSHA1拒否ポリシーに対応していないため、
49+
# Node.js公式バイナリを直接ダウンロードしてインストール
50+
RUN ARCH=$(dpkg --print-architecture) \
51+
&& case "${ARCH}" in \
52+
amd64) NODE_ARCH='x64' ;; \
53+
arm64) NODE_ARCH='arm64' ;; \
54+
armhf) NODE_ARCH='armv7l' ;; \
55+
*) echo "Unsupported architecture: ${ARCH}" && exit 1 ;; \
56+
esac \
57+
&& curl -fsSL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${NODE_ARCH}.tar.xz" -o /tmp/node.tar.xz \
58+
&& tar -xJf /tmp/node.tar.xz -C /usr/local --strip-components=1 \
59+
&& rm /tmp/node.tar.xz \
60+
&& node --version \
61+
&& npm --version
4762

4863
# グローバルnpmパッケージのインストール(rootユーザーで実行)
4964
RUN npm install -g \

0 commit comments

Comments
 (0)