Skip to content

#415 を実装する(スプリント m7e) - #427

Merged
takemi-ohama merged 4 commits into
sprint/m7efrom
feat/issue-415-m7e
Oct 5, 2026
Merged

takemi-ohama merged 4 commits into
sprint/m7efrom
feat/issue-415-m7e

Conversation

@takemi-ohama

Copy link
Copy Markdown
Contributor

通常のビルドで、プロジェクトの Dockerfile を開発サービスの build の指定から決めるようにしました(#415)。あわせて、この経路と devbase build --context の接続先で構成を読む経路をテストで縛り、確定仕様と CHANGELOG に書きました。

利用者向けの変化

  • 通常のビルドは、開発サービスの build に指定された Dockerfile をプロジェクトの Dockerfile として使います
  • devbase build --context は、接続先で構成を読んでビルドします

変更の要点

  • lib/devbase/commands/project_dockerfile.py を新設し、開発サービスの build からプロジェクトの Dockerfile を決める処理を置いた
  • lib/devbase/utils/dockerfile.py・lib/devbase/commands/container.py・bin/devbase をこの処理を通る形に改めた
  • テストを追加・更新した
    • tests/cli/test_build_project_dockerfile.py:開発サービスの build から Dockerfile を決める経路
    • tests/cli/test_project_dockerfile_contract.py:2 つの経路で結果が一致すること
    • devbase build --context が接続先で構成を読むこと
    • tests/cli/conftest.py に共通の準備を加え、既存の test_build_browser_image.py・test_wrapper_shellcheck_fixes.py・test_docker_profiles.py を追従させた
  • docs/specifications/base-image-chain-build.md(確定仕様)と CHANGELOG.md に、開発サービスの build から Dockerfile を決めることを書いた

テスト

  • supervise.py の run の test-limited:exit 0(範囲テスト 1 本、114.2 秒、戦略 local-full)

モード: standard / 通した工程: 実装 → 完了判定 → Pull Request

🤖 Generated with Claude Code

takemi-ohama and others added 4 commits October 6, 2026 06:35
compose.yml の最初の build: の直後 3 行を読む compose_build_field と
resolve_project_dockerfile を消し、docker compose config の開発サービスの build から
場所を決める入口(python -m devbase.commands.project_dockerfile)を 1 回起動する。
決め方は project_dockerfile_path が持ち、--expires の判定も同じ関数を使う。
構成を読めないときは compose の理由を出し、どの段も建てずに終了コード 1 で止まる。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
入口を本物で動かし偽の docker が構成の JSON を返すハーネスで、受け入れ条件 1〜3・5・6・8 と
入口の契約を確かめる。1 つの入力の表を通常のビルドと _get_base_image_ref の両方に通す。
_compose_config_services の show_errors の行を足す。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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