éçºã³ã³ãããŒã®ãªãã«ãã«ã€ããŠ
codespace ã§äœæ¥ããå Žåãéçºç°å¢ã¯ä»®æ³ãã·ã³äžã§å®è¡ããã Docker ã³ã³ãããŒã§ãã codespace å ããéçºã³ã³ãããŒæ§æã«å€æŽãå ãããããã®å€æŽãçŸåšã® codespace ã«é©çšããå Žåã¯ãã³ã³ãããŒããªãã«ãããå¿ èŠããããŸãã
æ¢å®ã§ã¯ãéçºã³ã³ãããŒããªãã«ããããšãGitHub Codespaces ã«ãã£ãŠãã³ã³ãããŒã®ä»¥åã®ãã«ããããã£ãã·ã¥ãããã€ã¡ãŒãžãåå©çšããããšã§ãã«ã ããã»ã¹ãé«éåãããŸãã ããã¯éåžžãæ¬¡ã®çç±ã«ãããéçºã³ã³ãããŒæ§æã«å¯Ÿãã倿Žãå®è£ ããæãç°¡åãªæ¹æ³ã§ãã
- GitHub Codespaces ã§ã¯ãã³ã³ãã㌠ã¬ãžã¹ããªããå床ãã«ããã®ã§ã¯ãªãããã£ãã·ã¥å ã®ã€ã¡ãŒãžãåå©çšã§ããŸãã
- éçºã³ã³ãããŒã®æ©èœã Dockerfile åœä»€ãªã©ãã³ã³ãããŒã®æ§ç¯æ¹æ³ãå®çŸ©ããéçºã³ã³ãããŒæ§æã®äžéšãããã£ãã·ã¥å
ã®ã€ã¡ãŒãž ã¬ã€ã€ãŒã«æ¢ã«å®è£
ãããŠããå¯èœæ§ãããããããããã®ããã»ã¹ãå床å®è¡ãããã®ãåŸ
ã€å¿
èŠã¯ãããŸããã (ãã ãã
onCreateCommand
ãªã©ãã³ã³ãããŒã®æ§ç¯åŸã«å®è¡ãããæ§æå ã®ã³ãã³ãã¯ãå床å®è¡ãããŸãã)
å Žåã«ãã£ãŠã¯ãã³ã³ãããŒã®å®å šãªãªãã«ããå®è¡ããããšãå¿ èŠã«ãªãå ŽåããããŸãã å®å šãªãªãã«ãã«ãããGitHub Codespaces ã¯ãã£ãã·ã¥ãããã¹ãŠã® Docker ã³ã³ãããŒãã€ã¡ãŒãžãããªã¥ãŒã ãã¯ãªãŒã³ã¢ããããæ°ãããã«ãããã€ã¡ãŒãžã䜿çšããŠã³ã³ãããŒãåæ§ç¯ããŸãã æ§æã§å®çŸ©ãããŠãããã¹ãŠã®ã»ããã¢ãããå床å®è¡ãããæ°ããã€ã¡ãŒãž ã¬ã€ã€ãŒãçæãããŸãã æ¬¡ã®ãããªç¶æ³ã§ããã£ãã·ã¥ãããã€ã¡ãŒãžã䜿çšããŠã³ã³ãããŒãäœåºŠããªãã«ãããåŸãå®å šãªãªãã«ããå®è¡ã§ããŸãã
- æ§æã§å®çŸ©ãããŠããã»ããã¢ããããã£ãã·ã¥ãããã€ã¡ãŒãžã«äŸåããªãããã«ããæ§æã«åºã¥ããŠæ°ãã codespace ãäœæããããšãã«å¿ èŠã«å¿ããŠå®è¡ãããããã«ãããã ããšãã°ãäŸåé¢ä¿ãæåŸã« codespace ã«ãã«ãããŠãããåºæ¬ã€ã¡ãŒãžããåé€ãããŠããå¯èœæ§ããããŸãã
- ããšãã°ããã£ã¹ã¯é åãäžè¶³ããŠããå Žåããã¹ãã¬ãŒãžæéãæå°éã«æããå Žåãªã©ããã£ãã·ã¥ã§äœ¿çšããããã£ã¹ã¯é åãè§£æŸãããã åºæ¬ã€ã¡ãŒãžãè€æ°å倿Žããå Žåãæ§æã«å¯ŸããŠå€æ°ã®å埩çãªå€æŽãè¡ã£ãå ŽåããŸã㯠Docker Compose ã䜿ã£ãŠè€æ°ã®ã³ã³ãããŒãå®è¡ããŠããå Žåã¯ãã€ã¡ãŒãž ãã£ãã·ã¥ã§å€§éã®ãã£ã¹ã¯é åã䜿çšãããŠããå¯èœæ§ããããŸãã
ã³ã³ãããŒã®ãªãã«ã
ã³ã³ãããŒã¯ VS Code ã® Web ã¯ã©ã€ã¢ã³ããŸãã¯ãã¹ã¯ããã ã¢ããªã±ãŒã·ã§ã³ã® codespace å ã§ãªãã«ãã§ããŸããGitHub CLI ã䜿çšããããšãã§ããŸãã
VS Code Web ã¯ã©ã€ã¢ã³ããŸãã¯ãã¹ã¯ããã ã¢ããªã±ãŒã·ã§ã³ã§éçºã³ã³ãããŒããªãã«ããã
-
Shift+Command+P (Mac) ãŸã㯠Ctrl+Shift+P (Windows/Linux) ã䜿çšããŠãVS Code Command Palette ã«ã¢ã¯ã»ã¹ããŸãã
-
ãRebuildããšå ¥åãã[Codespaces: ã³ã³ãããŒã®ãªãã«ã] ãéžæããŸãã
-
éãã確èªãã€ã¢ãã°ã§ [ãªãã«ã] ãŸã㯠[å®å šãªãªãã«ã] ãéžæããŸãã
-
éçºã³ã³ãããŒæ§æã倿ŽããŠã³ã³ãã㌠ãšã©ãŒãçºçããå Žåãcodespace ã¯å埩ã¢ãŒãã§åäœãããšã©ãŒ ã¡ãã»ãŒãžã衚瀺ãããŸãã
- äœæãã°ã確èªããŠãšã©ãŒã蚺æããã«ã¯ã View creation log ãã¯ãªãã¯ããŸãã
- ãã°ã§èå¥ããããšã©ãŒãä¿®æ£ããã«ã¯ã
devcontainer.json
ãã¡ã€ã«ãæŽæ°ããŸãã - 倿Žãé©çšããã«ã¯ãã³ã³ãããŒããªãã«ãããŸãã
GitHub CLI ã䜿çšããŠéçºã³ã³ãããŒããªãã«ããã
VS Code ã®å€éš (ããšãã°ãGitHub) ã§éçºã³ã³ãããŒã®æ§æã倿Žããå Žåã¯ãGitHub CLI ã䜿ã£ãŠæ¢åã® codespace ã®éçºã³ã³ãããŒããªãã«ãã§ããŸãã
-
ã¿ãŒããã«ã§ã次ã®ã³ãã³ããå ¥åããŸãã
gh codespace rebuild
codespace ãäžèŠ§è¡šç€ºãããŸãã
-
ããŒããŒãã®æ¹åããŒã䜿ã£ãŠå¿ èŠãª codespace ã匷調衚瀺ããŠãããEnter ããŒãæŒããŸãã
GitHub CLI ã䜿çšããŠå®å
šãªãªãã«ããå®è¡ããã«ã¯ãgh codespace rebuild --full
ã³ãã³ãã䜿çšããŸãã
ãªãã«ãã§ã®ããŒã¿ã®ä¿æ
codespace ãäœæãããšããªããžããªã codespace å
ã® /workspaces
ãã£ã¬ã¯ããªã«è€è£œãããŸãã ããã¯ãã³ã³ãããŒã«ããŠã³ããããæ°žç¶çãªãã£ã¬ã¯ããªã§ãã ãã¡ã€ã«ã®ç·šéã远å ãåé€ãªã©ããã®ãã£ã¬ã¯ããªå
ã§è¡ã£ã倿Žã¯ãcodespace ã忢ããŠéå§ãããšããããã³ codespace å
ã®ã³ã³ãããŒããªãã«ããããšãã«ä¿æãããŸãã
/workspaces
ãã£ã¬ã¯ããªã®å€éšã§ã¯ãcodespace ã®ãã«ãã«äœ¿çšãããéçºã³ã³ãã㌠ã€ã¡ãŒãžã«ãã£ãŠç°ãªã Linux ãã£ã¬ã¯ããªæ§é ã codespace ã«å«ãŸããŠããŸãã /workspaces
ãã£ã¬ã¯ããªå€éšã§ããã¡ã€ã«ã远å ããããã¡ã€ã«ã«å€æŽãå ãããããããšãã§ããŸãã ããšãã°ãæ°ããããã°ã©ã ãã€ã³ã¹ããŒã«ãããã~/.bashrc
ã®ãããªãã¡ã€ã«ã«ã·ã§ã«æ§æãèšå®ãããããããšãã§ããŸãã ã«ãŒã以å€ã®ãŠãŒã¶ãŒã¯ãç¹å®ã®ãã£ã¬ã¯ããªãžã®æžã蟌ã¿ã¢ã¯ã»ã¹æš©ãèªåçã«æã£ãŠããªãå ŽåããããŸãããã»ãšãã©ã®ã€ã¡ãŒãžã§ã¯ããããã®ãã£ã¬ã¯ããªãžã® sudo
ã³ãã³ãã䜿ã£ãã«ãŒã ã¢ã¯ã»ã¹ãèš±å¯ãããŸãã
/workspaces
ã®å€éšã§ã¯ã/tmp
ãã£ã¬ã¯ããªãé€ããcodespace å
ã®ãã£ã¬ã¯ããªã¯ã³ã³ãããŒã®ã©ã€ããµã€ã¯ã«ã«é¢é£ä»ããããŸãã ã€ãŸããcodespace ã忢ããŠéå§ããå Žåãå ãã倿Žã¯ä¿æãããŸãããã³ã³ãããŒããªãã«ãããå Žåã¯ä¿æãããŸããã
ãªãã«ãã§ /workspaces
ãã£ã¬ã¯ããªã®å€éšã«ãã¡ã€ã«ãä¿æããå Žåã¯ãã³ã³ãããŒå
ã®ç®çã®å Žæã«ãæç¶ããããã£ã¬ã¯ããªãžã®ã·ã³ããªã㯠ãªã³ã¯ãäœæã§ããŸãã ããšãã°ã/workspaces/.devcontainer
ãã£ã¬ã¯ããªå
ã«ãåæ§ç¯å
ã§ãæç¶ããã config
ãã£ã¬ã¯ããªãäœæã§ããŸãã ãã®åŸãconfig
ãã£ã¬ã¯ããªãšãã®å
容ã devcontainer.json
ãã¡ã€ã«ã® postCreateCommand
ãšããŠã·ã³ããªã㯠ãªã³ã¯ããããšãã§ããŸãã
{
"image": "mcr.microsoft.com/devcontainers/base:alpine",
"postCreateCommand": "chmod +x .devcontainer/postCreate.sh && .devcontainer/postCreate.sh"
}
以äžã®äŸã® postCreate.sh
ãã¡ã€ã«ã§ã¯ãconfig
ãã£ã¬ã¯ããªã®å
容ãããŒã ãã£ã¬ã¯ããªã«ã·ã³ããªã㯠ãªã³ã¯ãããŠããŸãã
#!/bin/bash
ln -sf $PWD/.devcontainer/config $HOME/config && set +x