Skip to content

Commit 008f70f

Browse files
committed
Mod: Node.jsインストール方法をNodeSourceから公式バイナリ直接ダウンロードに変更
Rem: NodeSource リポジトリの GPG 署名 (SHA1) が Debian Trixie の 2026年2月以降のセキュリティポリシーで拒否される問題を回避 - Node.js公式サイトからバイナリを直接ダウンロード - ARG NODE_VERSION でバージョン指定を明示化 - xz-utils パッケージを追加(tar.xz展開用) - amd64/arm64 マルチアーキテクチャ対応
1 parent 78e4aa1 commit 008f70f

File tree

3 files changed

+105
-22
lines changed

3 files changed

+105
-22
lines changed

CHANGELOG.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,14 @@
44

55
- [変更履歴](#変更履歴)
66
- [目次](#目次)
7+
- [v1.3.1 (2026-02-06)](#v131-2026-02-06)
8+
- [v1.3.1 - 1 - Node.jsインストール方法の変更](#v131---1---nodejsインストール方法の変更)
9+
- [v1.3.1 - 1-1 - 問題](#v131---1-1---問題)
10+
- [v1.3.1 - 1-2 - 原因](#v131---1-2---原因)
11+
- [v1.3.1 - 1-3 - 解決策](#v131---1-3---解決策)
12+
- [v1.3.1 - 1-4 - 変更内容](#v131---1-4---変更内容)
13+
- [v1.3.1 - 2 - 影響](#v131---2---影響)
14+
- [v1.3.1 - 3 - 追加パッケージ](#v131---3---追加パッケージ)
715
- [v1.3.0 (2026-02-05)](#v130-2026-02-05)
816
- [v1.3.0 - 1 - Node.jsインストール方法の変更](#v130---1---nodejsインストール方法の変更)
917
- [v1.3.0 - 1-1 - 問題](#v130---1-1---問題)
@@ -54,6 +62,79 @@
5462
- [v1.0.0 (2025-12-22)](#v100-2025-12-22)
5563
- [v1.0.0 - 1 - 初回リリース](#v100---1---初回リリース)
5664

65+
## v1.3.1 (2026-02-06)
66+
67+
### v1.3.1 - 1 - Node.jsインストール方法の変更
68+
69+
NodeSourceリポジトリからNode.js公式バイナリ直接ダウンロードに変更しました。
70+
71+
#### v1.3.1 - 1-1 - 問題
72+
73+
DevContainerビルド時に以下のエラーが発生しました。
74+
75+
```text
76+
E: The repository 'https://deb.nodesource.com/node_20.x nodistro InRelease' is not signed.
77+
ERROR: Feature "GitHub CLI" (ghcr.io/devcontainers/features/github-cli) failed to install!
78+
```
79+
80+
#### v1.3.1 - 1-2 - 原因
81+
82+
NodeSourceリポジトリのGPG署名がSHA1を使用しており、Debian Trixieでは2026年2月1日以降SHA1署名がセキュリティポリシーで拒否されるようになりました。
83+
84+
```text
85+
Sub-process /usr/bin/sqv returned an error code (1), error message is:
86+
Signing key on 6F71F525282841EEDAF851B42F59B5F99B1BE0B4 is not bound:
87+
No binding signature at time 2026-01-19T15:27:46Z
88+
because: Policy rejected non-revocation signature (PositiveCertification)
89+
requiring second pre-image resistance
90+
because: SHA1 is not considered secure since 2026-02-01T00:00:00Z
91+
```
92+
93+
#### v1.3.1 - 1-3 - 解決策
94+
95+
Node.js公式サイトからバイナリを直接ダウンロードしてインストールする方式に変更しました。
96+
97+
#### v1.3.1 - 1-4 - 変更内容
98+
99+
変更前(NodeSourceリポジトリ使用):
100+
101+
```dockerfile
102+
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
103+
&& apt-get install -y nodejs \
104+
&& apt-get clean \
105+
&& rm -rf /var/lib/apt/lists/*
106+
```
107+
108+
変更後(公式バイナリ直接ダウンロード):
109+
110+
```dockerfile
111+
ARG NODE_VERSION=20.18.2
112+
113+
RUN ARCH=$(dpkg --print-architecture) \
114+
&& case "${ARCH}" in \
115+
amd64) NODE_ARCH="x64" ;; \
116+
arm64) NODE_ARCH="arm64" ;; \
117+
*) echo "Unsupported architecture: ${ARCH}" && exit 1 ;; \
118+
esac \
119+
&& curl -fsSL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${NODE_ARCH}.tar.xz" \
120+
-o /tmp/node.tar.xz \
121+
&& tar -xJf /tmp/node.tar.xz -C /usr/local --strip-components=1 \
122+
&& rm /tmp/node.tar.xz \
123+
&& ln -sf /usr/local/bin/node /usr/local/bin/nodejs \
124+
&& node --version \
125+
&& npm --version
126+
```
127+
128+
### v1.3.1 - 2 - 影響
129+
130+
- [Dockerfile](./Dockerfile): Node.jsインストール方法を変更
131+
- [local-build/Dockerfile.base](./local-build/Dockerfile.base): 同上
132+
- その他のファイル: 変更なし
133+
134+
### v1.3.1 - 3 - 追加パッケージ
135+
136+
- `xz-utils`: `.tar.xz`ファイルの展開に必要
137+
57138
## v1.3.0 (2026-02-05)
58139

59140
### v1.3.0 - 1 - Node.jsインストール方法の変更

Dockerfile

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

17-
# Node.jsのバージョン設定
18-
# ※ バージョン更新時はここを変更
19-
ENV NODE_VERSION=25.6.0
17+
# Node.js バージョン設定
18+
# NOTE: LTSバージョンは https://nodejs.org/en/download で確認
19+
ARG NODE_VERSION=25.6.0
2020

2121
# 基本パッケージのインストール
2222
RUN apt-get update && apt-get install -y --no-install-recommends \
@@ -28,7 +28,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
2828
nano \
2929
ca-certificates \
3030
gnupg \
31-
xz-utils \
3231
# ビルドツール
3332
build-essential \
3433
# データベース
@@ -41,22 +40,24 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
4140
jq \
4241
zip \
4342
unzip \
43+
xz-utils \
4444
&& apt-get clean \
4545
&& rm -rf /var/lib/apt/lists/*
4646

47-
# Node.js LTS のインストール(公式バイナリを直接使用
48-
# NodeSourceリポジトリはDebian 13のSHA1拒否ポリシーに対応していないため
49-
# Node.js公式バイナリを直接ダウンロードしてインストール
47+
# Node.js LTS のインストール(公式バイナリを直接ダウンロード
48+
# NOTE: NodeSourceリポジトリのGPG署名(SHA1)がDebian Trixieで拒否されるため
49+
# 公式バイナリを直接インストールする方式に変更(2026年2月以降の対応)
5050
RUN ARCH=$(dpkg --print-architecture) \
5151
&& case "${ARCH}" in \
52-
amd64) NODE_ARCH='x64' ;; \
53-
arm64) NODE_ARCH='arm64' ;; \
54-
armhf) NODE_ARCH='armv7l' ;; \
52+
amd64) NODE_ARCH="x64" ;; \
53+
arm64) NODE_ARCH="arm64" ;; \
5554
*) echo "Unsupported architecture: ${ARCH}" && exit 1 ;; \
5655
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 \
56+
&& curl -fsSL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${NODE_ARCH}.tar.xz" \
57+
-o /tmp/node.tar.xz \
5858
&& tar -xJf /tmp/node.tar.xz -C /usr/local --strip-components=1 \
5959
&& rm /tmp/node.tar.xz \
60+
&& ln -sf /usr/local/bin/node /usr/local/bin/nodejs \
6061
&& node --version \
6162
&& npm --version
6263

local-build/Dockerfile.base

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

17-
# Node.jsのバージョン設定
18-
# ※ バージョン更新時はここを変更
19-
ENV NODE_VERSION=25.6.0
17+
# Node.js バージョン設定
18+
# NOTE: LTSバージョンは https://nodejs.org/en/download で確認
19+
ARG NODE_VERSION=25.6.0
2020

2121
# 基本パッケージのインストール
2222
RUN apt-get update && apt-get install -y --no-install-recommends \
@@ -28,7 +28,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
2828
nano \
2929
ca-certificates \
3030
gnupg \
31-
xz-utils \
3231
# ビルドツール
3332
build-essential \
3433
# データベース
@@ -41,22 +40,24 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
4140
jq \
4241
zip \
4342
unzip \
43+
xz-utils \
4444
&& apt-get clean \
4545
&& rm -rf /var/lib/apt/lists/*
4646

47-
# Node.js LTS のインストール(公式バイナリを直接使用
48-
# NodeSourceリポジトリはDebian 13のSHA1拒否ポリシーに対応していないため
49-
# Node.js公式バイナリを直接ダウンロードしてインストール
47+
# Node.js LTS のインストール(公式バイナリを直接ダウンロード
48+
# NOTE: NodeSourceリポジトリのGPG署名(SHA1)がDebian Trixieで拒否されるため
49+
# 公式バイナリを直接インストールする方式に変更(2026年2月以降の対応)
5050
RUN ARCH=$(dpkg --print-architecture) \
5151
&& case "${ARCH}" in \
52-
amd64) NODE_ARCH='x64' ;; \
53-
arm64) NODE_ARCH='arm64' ;; \
54-
armhf) NODE_ARCH='armv7l' ;; \
52+
amd64) NODE_ARCH="x64" ;; \
53+
arm64) NODE_ARCH="arm64" ;; \
5554
*) echo "Unsupported architecture: ${ARCH}" && exit 1 ;; \
5655
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 \
56+
&& curl -fsSL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${NODE_ARCH}.tar.xz" \
57+
-o /tmp/node.tar.xz \
5858
&& tar -xJf /tmp/node.tar.xz -C /usr/local --strip-components=1 \
5959
&& rm /tmp/node.tar.xz \
60+
&& ln -sf /usr/local/bin/node /usr/local/bin/nodejs \
6061
&& node --version \
6162
&& npm --version
6263

0 commit comments

Comments
 (0)