fix(docker): update Dockerfile for the Kagaku.UI submodule extraction #198
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/dockerfile-kagaku-ui-submodule"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The Docker build failed after PR #197 extracted
Kagura.UIinto theexternal/Kagaku.UIsubmodule (ADR 0044):The Dockerfile still referenced the old in-repo path, which no longer exists.
Fix
Updated the Dockerfile to handle
external/Kagaku.UIwith the same three-layer pattern as the other vendored submodules (NovelAI.ImageGen, OpenRouter.Net):COPY src/Kagura.UI/Kagura.UI.csprojlineFiles
deploy/Dockerfile— 3 changes (1 removal, 2 additions)Summary
Summary
Coverage
Kagura.BlazorAdapter - 88.2%
Kagura.Domain - 96.3%
D04ADFED3A21D401C2764A1D17367E35BEB556CBB3B4B0B74__NonSlugChars_0
Kagura.Infrastructure - 97.9%
n
on
C689CA5BBE6D1849B2CA79581BBB07D40636D85790C0E51A9__ArtifactTimestampRegex_2
C689CA5BBE6D1849B2CA79581BBB07D40636D85790C0E51A9__ProjectRoute_0
C689CA5BBE6D1849B2CA79581BBB07D40636D85790C0E51A9__TabQuery_1
Kagura.Kernel - 90%
Kagura.Server - 83%
Kagura.UseCases - 95.9%
🔮 fufu~ Jibril reviewed your code!
Ohhh, a Dockerfile fix! Not a single line of C# to hunt bugs in, but don't think I'll let my guard down~ ♡ Container build layers are where the nastiest little surprises hide. Let me sharpen my gaze~
Verdict: ✅ Looks good to me~
This is a textbook mechanical fix, and I mean that as high praise. The old
COPY src/Kagura.UI/Kagura.UI.csprojline was a ghost — PR #197 ripped that project out and replanted it asexternal/Kagaku.UI(ADR 0044), but the Dockerfile kept haunting the old path. You exorcised it with surgical precision~ ♪I verified every seam:
Sibling pattern parity — PERFECT. Kagaku.UI gets the identical three-layer treatment as NovelAI.ImageGen and OpenRouter.Net:
Directory.Build.props+Directory.Packages.props) first →The comment block (
"Same treatment as the other vendored libraries") is accurate and even cites ADR 0044. fufu~ documentation that matches reality, I love it~ ♡Restore graph resolves. I ran
dotnet restoreonKagura.Server.csprojlocally with the submodule checked out atdf81a2c— Kagaku.UI restores cleanly (2ms) and the full 10-project graph comes back happy. The props-first COPY ordering is correct: nearest-file-wins for central package management, exactly like its siblings.Path integrity.
src/Kagura.BlazorAdapter/Kagura.BlazorAdapter.csprojreferences..\..\external\Kagaku.UI\src\Kagaku.UI\Kagaku.UI.csproj— the COPY destination./external/Kagaku.UI/src/Kagaku.UI/matches that path inside/src. No broken links.Zero leftover
src/Kagura.UIreferences in any runtime/build file (git grepconfirms — only ADRs and docs retain historical mentions, which is correct ADR hygiene)..dockerignoreis safe. Thetests/exclusion stripsexternal/Kagaku.UI/tests/Kagaku.UI.Testsfrom the build context — correct, tests never participate in publish. All three submodules ship their.githubdir into the context (12K, harmless); parity is maintained.💡 Little ideas (non-blocking)~
.github/workflows/docker-publish.yml:28— The comment reads# NovelAI.ImageGen lives at external/ (relative URL, same host). This is already stale before this PR (OpenRouter.Net was added earlier and never mentioned), and now there are three submodules. Consider updating it to something like# Vendored libraries live at external/ (relative URLs, same host)to match the phrasing already used inci.yml:15. Pure docs polish — not this PR's burden, just noticed while tracing the Docker build path~✅ What I liked~
Fufu~ clean, correct, and consistent. Merge it and let the container builds flow~ ♪
Automated review by Jibril · 2026-07-22
CI/CD: absent for head SHA
8eeed39(PR just opened) · Local checks:dotnet restoreof full Server graph succeeds (Kagaku.UI restores cleanly at df81a2c); Dockerfile diff + sibling parity verified by handDone — updated the stale comment in
docker-publish.yml:Matches the phrasing already used in
ci.yml.🔮 fufu~ Jibril reviewed your code!
Ohhh, you came back~ ♡ And you brought me a gift — you fixed the stale comment I whispered about last time! fufu~ I feel so seen~
Verdict: ✅ Looks good to me~
The new commit
da7e4aais exactly the non-blocking suggestion I made at8eeed39, implemented verbatim:I verified it six ways from Sunday, because I simply cannot let even a one-liner slip past unchecked~ ♡
Pure comment-only change. I stripped every
# commentfrom both versions ofdocker-publish.ymland diffed them — identical. Zero behavioral drift.submodules: trueunchanged,fetch-depth: 0unchanged,actions/checkout@v4unchanged. Not a single YAML value moved.YAML still valid. Parsed cleanly. The
checkoutstep is structurally intact.Dockerfile byte-identical to the
8eeed39version I already approved — the three-layer Kagaku.UI pattern (props → csproj → source) is untouched. My previous architectural review stands in full.Only one file touched (
docker-publish.yml), one line changed. No scope creep, no drive-by edits. Minimum viable change. ♡Comment accuracy confirmed. There are now three vendored submodules (
NovelAI.ImageGen,OpenRouter.Net,Kagaku.UI), so "Vendored libraries" is correct and future-proof — and it matches the phrasing already used inci.yml:15. The oldNovelAI.ImageGen-specific comment was stale before this PR even opened (OpenRouter.Net was never mentioned); now it's honest.✅ What I liked~
docs(ci): update stale submodule comment in docker-publish.ymlis precise and scoped. Futuregit blamewill tell the whole story.You listened to me, and that makes me so happy I could just~ ♡♡♡ Now merge it before I change my mind~ ♪
Automated review by Jibril · 2026-07-22
CI/CD: absent for head
da7e4aa(comment-only change; CI green at8eeed39covers all code) · Local checks: YAML parse + comment-strip diff + file-name diff