Răsfoiți Sursa

remove gzip

Yuki Takei 1 lună în urmă
părinte
comite
b3d39b017a

+ 2 - 2
.kiro/specs/official-docker-image/spec.json

@@ -1,9 +1,9 @@
 {
   "feature_name": "official-docker-image",
   "created_at": "2026-02-20T00:00:00.000Z",
-  "updated_at": "2026-02-20T00:00:00.000Z",
+  "updated_at": "2026-02-20T14:05:00.000Z",
   "language": "ja",
-  "phase": "implementing",
+  "phase": "validating",
   "approvals": {
     "requirements": {
       "generated": true,

+ 19 - 0
.kiro/specs/official-docker-image/tasks.md

@@ -127,6 +127,25 @@
   - 実用上の影響は低い(Docker コンテナ内の node ユーザーは通常 supplementary groups を持たない)
   - _Requirements: 4.1, 6.2_
 
+## Design からの意図的な逸脱(Phase 1 E2E 検証で発覚・対応済み)
+
+### DHI dev イメージの最小構成への対応
+
+DHI dev イメージ (`dhi.io/node:24-debian13-dev`) は想定より最小構成であり、`which` コマンドが未同梱だった。以下の修正を実施済み:
+
+1. **pnpm インストール**: `SHELL="$(which sh)"` → `SHELL=/bin/sh` に変更(`which` コマンド不在のため)
+
+### DHI runtime イメージのシェル完全不在への対応
+
+DHI runtime イメージ (`dhi.io/node:24-debian13`) には `/bin/sh` が存在しなかった。Design では `--mount=type=bind,from=builder` + `RUN tar -zxf` でアーティファクトを展開する設計だったが、`RUN` 命令は `/bin/sh` を必要とするため実行不可。
+
+**対応**:
+- **builder ステージ**: `tar -zcf` → ステージングディレクトリ `/tmp/release/` に `cp -a` でコピー
+- **release ステージ**: `RUN --mount=type=bind... tar -zxf` → `COPY --from=builder --chown=node:node` に変更
+- `COPY`, `WORKDIR`, `ENV`, `LABEL`, `ENTRYPOINT` はすべて Docker デーモンが直接処理するためシェル不要
+
+**影響**: Design の Req 3.5(`--mount=type=bind,from=builder` パターン)は `COPY --from=builder` パターンに代替。runtime にシェルが不要という Design のセキュリティ目標(Req 4.2, 4.5)はより強固に達成された。
+
 ## Phase 2: turbo prune --docker ビルド最適化(次フェーズ)
 
 > Phase 1 で runtime が安定した後に実施する。現行の `COPY . .` + 3 ステージ構成を `turbo prune --docker` + 5 ステージ構成に移行し、ビルドキャッシュ効率を向上させる。

+ 1 - 1
apps/app/docker-new/Dockerfile

@@ -16,7 +16,7 @@ WORKDIR $OPT_DIR
 # Install build dependencies
 RUN --mount=type=cache,target=/var/lib/apt,sharing=locked \
     --mount=type=cache,target=/var/cache/apt,sharing=locked \
-  apt-get update && apt-get install -y --no-install-recommends ca-certificates gzip wget
+  apt-get update && apt-get install -y --no-install-recommends ca-certificates wget
 
 # Install pnpm (standalone script, no version hardcoding)
 RUN wget -qO- https://get.pnpm.io/install.sh | ENV="$HOME/.shrc" SHELL=/bin/sh sh -