fix(devcontainer): resonite-share volume を dev 所有で先行作成し resoio launch ハングを解消#70
Merged
Merged
Conversation
空の named volume はマウント先がイメージ内に存在しないと Docker が root 所有 で初期化する。resonite-share の実マウント先 .../Yellow Dog Man Studios だけ Dockerfile の pre-create リストから漏れていたため root 所有になり、USER dev で 動く engine が DataPath/ を作れず SetupExceptionHandler で UnauthorizedAccess 例外を投げて起動直後にクラッシュ。renderer も gRPC も上がらず resoio launch が renderer PID を 60s ポーリングしてタイムアウト (= ハング) していた。 install -d -o dev -g dev のリストに実マウント先を追加し、/opt/resonite 等と 同じく fresh volume が dev 所有を継承するようにする。既存の root 所有 volume は リビュルドでは直らないため chown か volume 再作成が別途必要。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要
devcontainer 内で
resoio launchが約 60 秒ハングしてタイムアウトする問題を修正する。原因
engine の
DataPath=/home/dev/.local/share/Yellow Dog Man Studiosは named volumeresonite-shareのマウント先。空の named volume はマウント先がイメージ内に存在しないと Docker が root 所有で初期化するが、Dockerfile の pre-create リストはこの実マウント先 (.../Yellow Dog Man Studios) だけ漏れていた (/home/dev/.local/shareまでしか作っていなかった)。結果、
USER dev(uid 1000) で動く engine が root 所有ディレクトリ直下にData/を作れず、FrooxEngine.Engine.SetupExceptionHandlerのDirectory.CreateDirectoryでUnauthorizedAccessException: ... Permission deniedを投げて起動直後 (約1秒) にクラッシュ。renderer も gRPC socket も上がらず、launcher が renderer PID を 60s ポーリングしてタイムアウトしていた。/opt/resonite(resonite-app) と/home/dev/prefix(resonite-prefix) が dev 所有で正常動作するのは、まさにこれらが pre-create 済みだから。1 ディレクトリだけ漏れていたのが本質。修正
install -d -o dev -g devのリストに実マウント先"/home/dev/.local/share/Yellow Dog Man Studios"を追加し、fresh volume が dev 所有を継承するようにした。あわせて該当コメントを実パス + 理由に修正。検証
resoio launch→error: timed out waiting for the Resonite renderer process to appear(EXIT=1, ちょうど 60s)、engine ログに上記例外。resoio launch --data-path <dev書込可能パス>で engine がInitializing RenderSystem... → Renderer process started: Renderite.Renderer.exe → resonite_pid/renderer_pid 返却まで完走 (EXIT=0)。root 所有が唯一のブロッカーであることを実機確認。適用上の注意 (reviewer/利用者向け)
イメージ再ビルドが必要。既存の root 所有 volume はリビルドだけでは直らない (Docker は既存 volume を再初期化しない) ため、次のいずれかを併用する:
sudo chown -R dev:dev "/home/dev/.local/share/Yellow Dog Man Studios"docker compose down後docker volume rm resonite-io-resonite-share→ リビルド (ユーザーデータは消える)🤖 Generated with Claude Code