github-samples / github-samples/pets-workshop
full-day workshop: Make the generated devcontainer startup portable and non-blocking
まだ誰も着手していません。
- 主要言語
- Python
- スター
- 80
- フォーク
- 161
- 平均マージ
- 31分
- マージ済み PR(30日)
- 1
説明
Problem
Step 0 allows a repository name chosen by the learner or workshop leader, but content/full-day/3-codespaces.md hard-codes this startup command:
"postStartCommand": "chmod +x /workspaces/pets-workshop/app/scripts/start-app.sh && /workspaces/pets-workshop/app/scripts/start-app.sh"
It fails when the generated repository is not named pets-workshop. In addition, start-app.sh deliberately waits for both application processes and does not exit, so using it directly as a lifecycle command can leave the Codespaces startup task running indefinitely.
Suggested change
Use the dev container workspace variable or a workspace-relative command, and launch the long-running application through a non-blocking mechanism appropriate for dev containers.
Acceptance criteria
- The command works for any repository name allowed by Step 0.
- The dev container lifecycle command completes after starting the services.
- Flask and Astro logs remain accessible to the learner.
- Both services restart predictably after a Codespace stop/start.
- Service cleanup does not leave duplicate processes.
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
content/full-day/3-codespaces.md と app/scripts/start-app.sh から始め、postStartCommand がどのように生成されるか、またスクリプトが両方のサービスをどのように処理するかを調べます。pets-workshop 以外のリポジトリ名を使い、Codespace を停止して再起動してテストし、ライフサイクルの完了、Flask と Astro のログが表示されること、予測可能な再起動、重複プロセスがないことを確認します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- flask, python, shell
- 領域
- developer-experience, devops
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 活発
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 55/100