Skip to content

chore: 機密の受け渡しを環境変数注入へ移行 (PLAN35) - #3

Merged
takemi-ohama merged 1 commit into
mainfrom
chore/plan35-encrypted-env
Aug 15, 2026
Merged

takemi-ohama merged 1 commit into
mainfrom
chore/plan35-encrypted-env

Conversation

@takemi-ohama

Copy link
Copy Markdown
Contributor

背景

devbase 本体に環境変数の暗号化が入った (devbasex/devbase#90)。これに伴い、各プロジェクトの compose.yml から機密ファイルの直接参照を外す必要がある。

暗号化すると ${DEVBASE_ROOT}/.env は secrets/global.env.age へ移るため、env_file がそのパスを参照したままだとファイルが存在せず起動に失敗する。

変更

devbase env encrypt が行う書き換えをそのまま取り込んだもの。

     env_file:
-      - ${DEVBASE_ROOT}/.env
+      # devbase(PLAN35) 機密は環境変数で注入: - ${DEVBASE_ROOT}/.env
       - env
-      - .env
+      # devbase(PLAN35) 機密は環境変数で注入: - .env

機密は devbase が起動時に復号し、変数名だけを列挙した構成 (.docker-compose.scale.yml) で渡す。暗号文も平文ファイルも Docker Compose には渡らない。非機密の env はこれまでどおり env_file で読む。

対象 6 プロジェクト: adminer / ai-plugins / devbase / github_work_time / md-specgen / tmllib

あわせて .gitignore に .docker-compose.scale.yml* を追加した (up が生成する構成と、その退避ファイル .prev)。これまで生成物が未追跡ファイルとして残っていた。

暗号化していない環境への影響

なし。 秘密ストアは暗号化ファイルが無ければ平文 ($DEVBASE_ROOT/.env) へフォールバックし、同じ注入経路を通る。移行済みの compose.yml は暗号化・平文の両モードで動作する。

ただし devbase up を介さず docker compose up を直接実行する場合は、機密が注入されない点に注意 (devbase が復号と注入を担うため)。

🤖 Generated with Claude Code

devbase 側で環境変数の暗号化 (PLAN35 / devbasex/devbase#90) を導入したのに
合わせ、`devbase env encrypt` が行う compose.yml の書き換えを取り込む。

機密ファイル (`${DEVBASE_ROOT}/.env` と `.env`) の env_file 参照を外し、
devbase が起動時に復号して変数名だけを列挙した構成で注入する形にする。
暗号化していない環境でも秘密ストアが平文へフォールバックして同じ経路で
注入されるため、`devbase up` 経由なら両モードで動作する。

あわせて、up が生成する .docker-compose.scale.yml と、その退避ファイル
(.prev) を除外対象に追加する。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@takemi-ohama
takemi-ohama merged commit bb98841 into main Aug 15, 2026
@takemi-ohama
takemi-ohama deleted the chore/plan35-encrypted-env branch August 15, 2026 17:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant