éçºã³ã³ããã«ã€ããŠ
éçºã³ã³ãããŒã¯ãå®å šãªæ©èœãåããéçºç°å¢ãæäŸããããã«ç¹å¥ã«æ§æããã Docker ã³ã³ãããŒã§ãã codespace ã§äœæ¥ãè¡ããšãã¯åžžã«ãä»®æ³ãã·ã³ã§éçºã³ã³ãããŒã䜿çšããŸãã
ãªããžããªã®éçºã³ã³ãããŒãæ§æã§ããã®ã§ããã®ãªããžããªçšã«äœæããã codespace ã«ãã£ãŠãç¹å®ã®ãããžã§ã¯ãã®äœæ¥ãè¡ãããã«å¿ èŠãªãã¹ãŠã®ããŒã«ãšã©ã³ã¿ã€ã ãåãããã«ã¹ã¿ãã€ãºãããéçºç°å¢ãæäŸãããŸãã ãªããžããªã§æ§æãå®çŸ©ããªãå ŽåãGitHub Codespaces ã§æ¢å®ã®æ§æã䜿çšãããŸãããã®æ§æã«ã¯ãããŒã ããããžã§ã¯ãã§éçºãè¡ãããã«å¿ èŠãªå¯èœæ§ãããäžè¬çãªããŒã«ã®å€ããå«ãŸããŠããŸãã ãæ¢å®ã®éçºã³ã³ãããŒæ§æã®äœ¿çšããã芧ãã ããã
éçºã³ã³ãããŒã®æ§æãã¡ã€ã«ã¯ããªããžããªã® .devcontainer
ãã£ã¬ã¯ããªã«å«ãŸããŠããŸãã Visual Studio Code ã䜿çšããŠãæ§æãã¡ã€ã«ã远å ã§ããŸãã ããŸããŸãªãããžã§ã¯ã ã¿ã€ãåãã«ãããããå®çŸ©ãããŠããæ§æã®äžããéžæã§ããŸãã ãããã远å ã®æ§æãªãã§äœ¿ãããšãã§ããŸãããæ§æãç·šéããŠçæãããéçºç°å¢ãæ¹åããããšãã§ããŸãã ãäºåå®çŸ©æžã¿ã®éçºã³ã³ãããŒæ§æã®äœ¿çšããã芧ãã ããã
ãŸãã¯ãç¬èªã®ã«ã¹ã¿ã æ§æãã¡ã€ã«ã远å ããããšãã§ããŸãã ãã«ã¹ã¿ã éçºã³ã³ãããŒæ§æã®äœæããã芧ãã ããã
ãªããžããªçšã«åäžã®éçºã³ã³ãããŒæ§æãå®çŸ©ããããç°ãªããã©ã³ãçšã«ç°ãªãæ§æãå®çŸ©ããããè€æ°ã®æ§æãå®çŸ©ãããã§ããŸãã è€æ°ã®æ§æãå©çšã§ããå ŽåããŠãŒã¶ãŒã¯ codespace ãäœæãããšãã«å¥œã¿ã®æ§æãéžæã§ããŸãã ããã¯ãç°ãªãããã°ã©ãã³ã°èšèªã®ãœãŒã¹ ã³ãŒããå«ãå€§èŠæš¡ãªãªããžããªã®å ŽåããããŸããŸãªãããžã§ã¯ããããå Žåã«ç¹ã«åœ¹ç«ã¡ãŸãã æ§æã®éžæè¢ãäœæããããšã§ãç°ãªãããŒã ããå®è¡ããäœæ¥çšã«é©åã«èšå®ããã codespace ã§äœæ¥ã§ããããã«ãªããŸãã
ãã³ãã¬ãŒããã codespace ãäœæããå Žåã¯ãã¯ãŒã¯ã¹ããŒã¹å ã® 1 ã€ä»¥äžã®éçºã³ã³ãããŒæ§æãã¡ã€ã«ã䜿çšããŠéå§ã§ããŸãã ç°å¢ãããã«æ§æããã«ã¯ããããã®ãã¡ã€ã«ã®èšå®ã远å ãŸãã¯åé€ããã³ã³ãããŒããªãã«ãããŠãäœæ¥äžã® codespace ã«å€æŽãé©çšããŸãã GitHub äžã®ãªããžããªã« codespace ãå ¬éãããšããã®ãªããžããªããäœæããããã¹ãŠã® codespace ã§ãå®çŸ©ããæ§æãå ±æãããŸãã ãcodespace ãžã®æ§æå€æŽã®é©çšããšããã³ãã¬ãŒããã codespace ãäœæããããã芧ãã ããã
devcontainer.json
éçºã³ã³ãããŒæ§æã®ãã©ã€ã㪠ãã¡ã€ã«ã¯ devcontainer.json
ãã¡ã€ã«ã§ãã ãã®ãã¡ã€ã«ã䜿çšããŠããªããžããªçšã«äœæããã codespace ã®ç°å¢ã決å®ã§ããŸãã ãã®ãã¡ã€ã«ã®å
容ã«ãã£ãŠããã¬ãŒã ã¯ãŒã¯ãããŒã«ãæ¡åŒµæ©èœãããŒã ãã©ã¯ãŒãã£ã³ã°ãå«ããããšãã§ããéçºã³ã³ãããŒãå®çŸ©ãããŸãã éåžžãdevcontainer.json
ãã¡ã€ã«ã«ã¯ Dockerfile (é垞㯠devcontainer.json
ãã¡ã€ã«ãšäžç·ã«é
眮ããŸã) ãžã®åç
§ãå«ãŸããŠããŸãã
devcontainer.json
ãã¡ã€ã«ãå«ãŸãªããªããžããªãã codespace ãäœæããå ŽåããŸã㯠GitHub ã®ç©ºã®ãã³ãã¬ãŒãããéå§ããå Žåã¯ãæ¢å®ã®éçºã³ã³ãããŒæ§æã䜿çšãããŸãã ãæ¢å®ã®éçºã³ã³ãããŒæ§æã®äœ¿çšããã芧ãã ããã
éåžžãdevcontainer.json
ãã¡ã€ã«ã¯ãªããžããªã® .devcontainer
ãã£ã¬ã¯ããªã«é
眮ããŸãã ãŸãã¯ããªããžããªã®ã«ãŒãã«çŽæ¥é
眮ããããšãã§ããŸãããã®å Žåã¯ããã¡ã€ã«åã®å
é ãããªãªãã«ããå¿
èŠããããŸã (.devcontainer.json
)ã
ãªããžããªå
ã§éçºã³ã³ãããŒæ§æãéžæã§ããããã«ããã«ã¯ã.devcontainer/devcontainer.json
(ãŸã㯠.devcontainer.json
) ãã¡ã€ã«ã®ä»£æ¿ãšãªããã®ã¯ãã¹ãŠãã¹ .devcontainer/SUBDIRECTORY/devcontainer.json
ã®ç¬èªã®ãµããã£ã¬ã¯ããªã«é
眮ããå¿
èŠããããŸãã ããšãã°ã次㮠2 ã€ã®æ§æããéžã¶ããã«ããããšãã§ããŸãã
.devcontainer/database-dev/devcontainer.json
.devcontainer/gui-dev/devcontainer.json
ãªããžããªã«è€æ°ã® devcontainer.json
ãã¡ã€ã«ãããå Žåãå codespace ã¯ããããã®æ§æã®ã¿ããäœæãããŸãã devcontainer.json
ãã¡ã€ã«éã§èšå®ãã€ã³ããŒããŸãã¯ç¶æ¿ããããšã¯ã§ããŸããã ã«ã¹ã¿ã ãµããã£ã¬ã¯ããªã® devcontainer.json
ãã¡ã€ã«ã«äŸåãã¡ã€ã« (Dockerfile ãªã©) ã devcontainer.json
ãã¡ã€ã«å
ã®ã³ãã³ãã«ãã£ãŠå®è¡ãããã¹ã¯ãªãããããå Žåã¯ããããã®ãã¡ã€ã«ãåããµããã£ã¬ã¯ããªã«äžç·ã«é
眮ããããšããå§ãããŸãã
codespace ã®äœææã«å¥œã¿ã®éçºã³ã³ãããŒæ§æãéžã¶æ¹æ³ã«ã€ããŠã¯ãããªããžããªã® codespace ãäœæããããã芧ãã ããã
devcontainer.json
ãã¡ã€ã«ã§èšå®ã§ããèšå®ãšããããã£ã«ã€ããŠè©³ããã¯ãéçºã³ã³ãã㌠Web ãµã€ãã®ã仿§ããã芧ãã ããã
devcontainer.json ã®äœ¿ç𿹿³
devcontainer.json
ãã¡ã€ã«ã¯ã"ããŒãœãã«å" ã§ã¯ãªã "ã«ã¹ã¿ãã€ãº" ãæäŸãããã®ã ãšèãããšæçã§ãã ã³ãŒãããŒã¹ã§äœæ¥ãããã¹ãŠã®ãŠãŒã¶ãŒãå¿
èŠãšãããã®ã®ã¿ãéçºç°å¢ã®æšæºèŠçŽ ãšããŠå«ããå人ã®å¥œã¿ã®ãã®ã¯å«ããªãããã«ããå¿
èŠããããŸãã ãªã³ã¿ãŒã®ãããªãã®ã¯æšæºåããŠããã¹ãŠã®ãŠãŒã¶ãŒã«ã€ã³ã¹ããŒã«ããããæ±ããããšãé©åãªã®ã§ãdevcontainer.json
ãã¡ã€ã«ã«å«ããããšãã§ããŸãã ãŠãŒã¶ãŒ ã€ã³ã¿ãŒãã§ã€ã¹ã®ãã³ã¬ãŒã¿ãŒãããŒããªã©ã¯ãdevcontainer.json
ãã¡ã€ã«ã«å«ããã¹ãã§ãªãå人çãªéžæè¢ã§ãã
ããããã¡ã€ã«ãšèšå®ã®åæã䜿ããšãcodespace ãããŒãœãã«åã§ããŸãããã¢ã«ãŠã³ãã® GitHub Codespaces ãããŒãœãã©ã€ãºããããã芧ãã ããã
Dockerfile
éçºã³ã³ãããŒæ§æã®äžéšãšã㊠Dockerfile ã远å ã§ããŸãã
Dockerfile 㯠Docker ã³ã³ãã㌠ã€ã¡ãŒãžãäœæããããã«å¿
èŠãªåœä»€ãå«ãŸããŠããããã¹ã ãã¡ã€ã«ã§ãã ãã®ã€ã¡ãŒãžã¯ããã® Dockerfile ãåç
§ãã devcontainer.json
ãã¡ã€ã«ã䜿çšã㊠codespace ãäœæãããã³ã«ãéçºã³ã³ãããŒã®çæã«äœ¿çšãããŸãã Dockerfile å
ã®åœä»€ã¯éåžžãäœæãããæ°ããã€ã¡ãŒãžã®åºã«ãªã芪ã€ã¡ãŒãžãåç
§ããããšããå§ãŸããŸãã ãã®åŸã«ããœãããŠã§ã¢ ããã±ãŒãžã®ã€ã³ã¹ããŒã«ãªã©ãã€ã¡ãŒãžã®äœæããã»ã¹äžã«å®è¡ãããã³ãã³ããç¶ããŸãã
éçºã³ã³ãããŒã® Dockerfile ã¯éåžžãåç
§å
ã® devcontainer.json
ãšå
±ã« .devcontainer
ãã©ã«ããŒã«é
眮ããŸãã
ã¡ã¢
Dockerfile ã䜿çšãã代ããã«ãimage
ããããã£ã devcontainer.json
ãã¡ã€ã«ã§äœ¿çšããŠã䜿çšããæ¢åã®ã€ã¡ãŒãžãçŽæ¥åç
§ã§ããŸãã ããã§æå®ããã€ã¡ãŒãžã¯ãèšå®ãããŠãã Organization ã®ã€ã¡ãŒãž ããªã·ãŒã§èš±å¯ãããŠããå¿
èŠããããŸãã ãcodespace ã®åºæ¬ã€ã¡ãŒãžãå¶éããããã芧ãã ããã Dockerfile ãã€ã¡ãŒãžãèŠã€ãããªãå Žåã¯ãæ¢å®ã®ã³ã³ãã㌠ã€ã¡ãŒãžã䜿çšãããŸãã ãæ¢å®ã®éçºã³ã³ãããŒæ§æã®äœ¿çšããã芧ãã ããã
ã·ã³ãã«ãª Dockerfile ã®äŸ
次ã®äŸã§ã¯ã4 ã€ã®åœä»€ã䜿çšããŸãã
ARG
ã¯ããã«ãæã®å€æ°ãå®çŸ©ããŸãã
FROM
ã¯ãçæããã Docker ã€ã¡ãŒãžã®åºã«ãªã芪ã€ã¡ãŒãžãæå®ããŸãã åºæ¬ã€ã¡ãŒãž ããªã·ãŒãæ§æãããŠããŠãç¹å®ã®ã€ã¡ãŒãžã®ã¿ã䜿çšã§ããããã«ããå Žåãæå®ãããã€ã¡ãŒãžã¯ããªã·ãŒå
ã®ããããã®ã€ã¡ãŒãžåç
§ãšäžèŽããå¿
èŠããããŸãã ããã§ãªãå Žåã¯ããã®ãªããžããªã®ã³ãŒãã¹ããŒã¹ãå埩ã¢ãŒãã§äœæãããŸãã ãcodespace ã®åºæ¬ã€ã¡ãŒãžãå¶éããããã芧ãã ããã
COPY
ã¯ãªããžããªãããã¡ã€ã«ãã³ããŒããã³ãŒãã¹ããŒã¹ã®ãã¡ã€ã«ã·ã¹ãã ã«è¿œå ããŸãã
RUN
ã¯ãããã±ãŒãžã®äžèŠ§ãæŽæ°ããŠãã¹ã¯ãªãããå®è¡ããŸãã ã³ã¡ã³ã ã¢ãŠããããåœä»€ã§ç€ºãããŠããããã«ãRUN
åœä»€ã䜿çšããŠãœãããŠã§ã¢ãã€ã³ã¹ããŒã«ããããšãã§ããŸãã è€æ°ã®ã³ãã³ããå®è¡ããã«ã¯ã&&
ã䜿çšããŠãã³ãã³ãã 1 ã€ã® RUN
ã¹ããŒãã¡ã³ãã«çµåããŸãã
ARG VARIANT="16" FROM mcr.microsoft.com/devcontainers/javascript-node:1-${VARIANT} RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ && apt-get -y install --no-install-recommends bundler # [Optional] Uncomment if you want to install an additional version # of node using nvm # ARG EXTRA_NODE_VERSION=18 # RUN su node -c "source /usr/local/share/nvm/nvm.sh \ # && nvm install ${EXTRA_NODE_VERSION}" COPY ./script-in-your-repo.sh /tmp/scripts/script-in-codespace.sh RUN apt-get update && bash /tmp/scripts/script-in-codespace.sh
ARG VARIANT="16"
FROM mcr.microsoft.com/devcontainers/javascript-node:1-${VARIANT}
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
&& apt-get -y install --no-install-recommends bundler
# [Optional] Uncomment if you want to install an additional version
# of node using nvm
# ARG EXTRA_NODE_VERSION=18
# RUN su node -c "source /usr/local/share/nvm/nvm.sh \
# && nvm install ${EXTRA_NODE_VERSION}"
COPY ./script-in-your-repo.sh /tmp/scripts/script-in-codespace.sh
RUN apt-get update && bash /tmp/scripts/script-in-codespace.sh
ã¡ã¢
äžèšã®äŸã§ã¯ãã³ãŒãã¹ããŒã¹ (script-in-your-repo.sh
) ã«ã³ããŒãããã¹ã¯ãªããããªããžããªã«ååšããŠããå¿
èŠããããŸãã
Dockerfile ã®åœä»€ã«ã€ããŠè©³ããã¯ãDocker ã®ããã¥ã¡ã³ãã®ãDockerfile ãªãã¡ã¬ã³ã¹ããã芧ãã ããã
Dockerfile ã®äœ¿çš
éçºã³ã³ãããŒæ§æã®äžéšãšã㊠Dockerfile ã䜿çšããã«ã¯ãdevcontainer.json
ãã¡ã€ã«å
ã§ dockerfile
ããããã£ã䜿çšããŠåç
§ããŸãã
{ // ... "build": { "dockerfile": "Dockerfile" }, // ... }
{
// ...
"build": { "dockerfile": "Dockerfile" },
// ...
}
éçºã³ã³ãããŒå ã§æ¢åã®ã³ã³ãã㌠ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã䜿çšããå Žåã¯ãããŸããŸãªãªãã·ã§ã³ã䜿çšã§ããŸãã éçºã³ã³ãããŒã® Web ãµã€ãã§ä»æ§ã®ããªãŒã±ã¹ãã¬ãŒã·ã§ã³ ãªãã·ã§ã³ãã»ã¯ã·ã§ã³ãã芧ãã ããã
æ¢å®ã®éçºã³ã³ãããŒæ§æã®äœ¿çš
éçºã³ã³ãããŒæ§æããªããžããªã«è¿œå ããªãå ŽåããŸãã¯æ§æã§äœ¿çšããåºæ¬ã€ã¡ãŒãžãæå®ãããŠããªãå Žåã¯ãGitHub ã«ãã£ãŠæ¢å®ã® Linux ã€ã¡ãŒãžããã³ã³ãããŒãäœæãããŸãã ãã® Linux ã€ã¡ãŒãžã«ã¯ãPythonãNodeãPHPãJavaãGoãC++ãRubyã.NET Core/C# ãªã©ã®äžè¬çãªèšèªã®ã©ã³ã¿ã€ã ããŒãžã§ã³ã倿°å«ãŸããŠããŸãã ãããã®èšèªã®ææ°ãŸã㯠LTS ãªãªãŒã¹ã䜿çšãããŸãã JupyterLab ã Conda ãªã©ãããŒã¿ ãµã€ãšã³ã¹ã𿩿¢°åŠç¿ããµããŒãããããŒã«ããããŸãã æ¢å®ã®éçºã³ã³ãã㌠ã€ã¡ãŒãžã«ã¯ãGitãGitHub CLIãyarnãopensshãvim ãªã©ã®ä»ã®éçºè
ããŒã«ããŠãŒãã£ãªãã£ãå«ãŸããŠããŸãã å«ãŸããŠãããã¹ãŠã®èšèªãã©ã³ã¿ã€ã ãããŒã«ã確èªããã«ã¯ãcodespace ã¿ãŒããã«å
ã§ devcontainer-info content-url
ã³ãã³ãã䜿çšããã³ãã³ãã§åºåããã URL ã«ã¢ã¯ã»ã¹ããŠãã ããã
æ¢å®ã® Linux ã€ã¡ãŒãžã«äœãå«ãŸããŠãããã«ã€ããŠã¯ãdevcontainers/images
ãªããžããªãã芧ãã ããã
GitHub Codespaces ãæäŸããèšèªãšããŒã«ã䜿çšããå°ããªãããžã§ã¯ãã§äœæ¥ããŠããå Žåã¯ãæ¢å®ã®æ§æãé©ããŠããŸãã
ã¡ã¢
GitHub ã¯ãæ¢å®ã®éçºã³ã³ãã㌠ã€ã¡ãŒãžãããã«ããããã³ã³ãããŒã®ã¹ãã¬ãŒãžã«å¯ŸããŠã¯èª²éãããŸããã codespace ã¹ãã¬ãŒãžã®èª²éã«ã€ããŠè©³ããã¯ããGitHub Codespaces ã®èª²éããã芧ãã ããã codespace ãæ¢å®ã®éçºã³ã³ãã㌠ã€ã¡ãŒãžããæ§ç¯ããããã©ããããã§ãã¯ããæ¹æ³ã«ã€ããŠã¯ããå«ãŸããŠãã䜿çšéã®æå€§éã®æŽ»çšããåç §ããŠãã ããã
äºåå®çŸ©æžã¿ã®éçºã³ã³ãããŒæ§æã®äœ¿çš
Visual Studio Code ãŸã㯠Web ãã©ãŠã¶ãŒã§ Codespaces ã䜿çšããå Žåã¯ãå®çŸ©æžã¿ã®æ§æã®äžèЧããéžã¶ããšã§ããªããžããªã®éçºã³ã³ãããŒæ§æãäœæã§ããŸãã ãããã®æ§æã¯ãç¹å®ã®ãããžã§ã¯ã ã¿ã€ãã®å ±éã»ããã¢ãããæäŸãããã®ã§ãããŸããé©åãªã³ã³ãã㌠ãªãã·ã§ã³ãVisual Studio Code èšå®ãã€ã³ã¹ããŒã«ããå¿ èŠããã Visual Studio Code æ¡åŒµæ©èœãæ§æã§æ¢ã«çšæãããŠããã®ã§ãçæéã§äœ¿ãå§ããããšãã§ããŸãã
远å ã®æ¡åŒµæ§ãå¿
èŠãªå Žåã¯ãäºåå®çŸ©æžã¿ã®èšå®ã䜿çšããããšããå§ãããŸãã äºåå®çŸ©æžã¿ã®æ§æããå§ããŠããããžã§ã¯ãã«åãããŠä¿®æ£ããããšãã§ããŸãã å®çŸ©æžã¿ã®éçºã³ã³ãããŒã®å®çŸ©ã«ã€ããŠè©³ããã¯ãdevcontainers/images
ãªããžããªãã芧ãã ããã
äºåå®çŸ©æžã¿ã®éçºã³ã³ãããŒæ§æã¯ãcodespace ã§ã®äœæ¥äžããŸãã¯ããŒã«ã«ã§ã®ãªããžããªã®äœæ¥äžã«è¿œå ã§ããŸãã ããŒã«ã«ã§äœæ¥ããŠããŠãcodespace ã«æ¥ç¶ãããŠããªããšãã« VS Code ã§ãããè¡ãã«ã¯ã"Dev Containers" æ¡åŒµæ©èœãã€ã³ã¹ããŒã«ãããæå¹ã«ãªã£ãŠããå¿ èŠããããŸãã ãã®æ¡åŒµæ©èœã«ã€ããŠè©³ããã¯ããVS Code Marketplaceããã芧ãã ããã æ¬¡ã®æé ã§ã¯ãcodespace ã䜿çšããŠããå Žåã®ããã»ã¹ã«ã€ããŠèª¬æããŸãã codespace ã«æ¥ç¶ããŠããªãå Žåã® VS Code ã®æé ã¯éåžžã«ãã䌌ãŠããŸãã
-
Visual Studio Code Command Palette ã«ã¢ã¯ã»ã¹ (Shift + Command + P / Ctrl + Shift + P) ãããéçºã®è¿œå ããšå ¥åããŸãã [Codespaces: éçºã³ã³ãããŒæ§æãã¡ã€ã«ã®è¿œå ] ãã¯ãªãã¯ããŸãã
-
[æ°ããæ§æã®äœæ] ãã¯ãªãã¯ããŸãã
-
[ãã¹ãŠã®å®çŸ©ã衚瀺ãã] ãã¯ãªãã¯ããŸãã
-
䜿çšããå®çŸ©ãã¯ãªãã¯ããŸãã
-
ããã³ããã«åŸã£ãŠå®çŸ©ãã«ã¹ã¿ãã€ãºããŸãã
-
[OK] ãã¯ãªãã¯ããŸãã
-
codespace ã§äœæ¥ããŠããå Žåã¯ããŠã£ã³ããŠã®å³äžã«ãããããã¢ããã§ [ä»ãããªãã«ã] ãã¯ãªãã¯ããŠå€æŽãé©çšããŸãã ã³ã³ãããŒã®ãªãã«ãã«ã€ããŠè©³ããã¯ããcodespace ãžã®æ§æå€æŽã®é©çšããã芧ãã ããã
devcontainer.json
ãã¡ã€ã«ãžã®è¿œå æ©èœã®è¿œå
åæ©èœã¯ãã€ã³ã¹ããŒã« ã³ãŒããšéçºã³ã³ãããŒæ§æã®èªå·±å®çµåãŠãããã§ãããããŸããŸãªåºæ¬ã³ã³ãã㌠ã€ã¡ãŒãžã§åäœããããã«èšèšãããŠããŸãã åæ©èœã䜿çšãããšãcodespace ã€ã¡ãŒãžã«ããŒã«ãã©ã³ã¿ã€ã ããŸãã¯ã©ã€ãã©ãªããã°ãã远å ã§ããŸãã 詳ããã¯ãéçºã³ã³ãããŒã® Web ãµã€ãã§ã䜿çšã§ããæ©èœãšæ©èœã®ä»æ§ã«é¢ããããŒãžãã芧ãã ããã
æ©èœã¯ãVS Code ããããGitHub ã®ãªããžããªãã devcontainer.json
ãã¡ã€ã«ã«è¿œå ã§ããŸãããdevcontainer.json ãã¡ã€ã«ãžã®æ©èœã®è¿œå ããã芧ãã ããã
ã«ã¹ã¿ã éçºã³ã³ãããŒæ§æã®äœæ
äºåå®çŸ©æžã¿ã®æ§æãã©ããããŒãºãæºãããªãå Žåã¯ãç¬èªã® devcontainer.json
ãã¡ã€ã«ãèšè¿°ããŠã«ã¹ã¿ã æ§æãäœæã§ããŸãã
-
ãªããžããªãã codespace ãäœæãããã¹ãŠã®ãŠãŒã¶ãŒã䜿çšããåäžã®
devcontainer.json
ãã¡ã€ã«ã远å ããå Žåã¯ããªããžããªã®ã«ãŒãã«ãã.devcontainer
ãã£ã¬ã¯ããªå ã«ãã¡ã€ã«ãäœæããŸãã -
ãŠãŒã¶ãŒãæ§æãéžæã§ããããã«ããå Žåã¯ãè€æ°ã®ã«ã¹ã¿ã
devcontainer.json
ãã¡ã€ã«ãäœæããŠãããããã.devcontainer
ãã£ã¬ã¯ããªã®åå¥ã®ãµããã£ã¬ã¯ããªå ã«é 眮ã§ããŸããã¡ã¢
devcontainer.json
ãã¡ã€ã«ã¯ã.devcontainer
ãã 2 ã¬ãã«ä»¥äžäžäœã®ãã£ã¬ã¯ããªã«é 眮ããããšã¯ã§ããŸããã ããšãã°ã.devcontainer/teamA/devcontainer.json
ã«ãããã¡ã€ã«ã¯æ©èœããŸããã.devcontainer/teamA/testing/devcontainer.json
ã®å Žåã¯æ©èœããŸããã- ãŠãŒã¶ãŒããã³ãã¬ãŒã ãªããžããªã§ [ãã®ãã³ãã¬ãŒãã䜿çš] ãã¿ã³ãã codespace ãäœæããå Žåãæ§æãéžã¶ããšã¯ã§ããŸããã codespace ã¯ããªããžããªã®ã«ãŒãã«ãã
.devcontainer/devcontainer.json
ãŸãã¯.devcontainer.json
ã§å®çŸ©ãããŠããæ¢å®ã®æ§æã«åºã¥ããŠæ§ç¯ãããŸãããGitHub Codespaces çšã®ãã³ãã¬ãŒã ãªããžããªãèšå®ããããã芧ãã ããã
ãªããžããªã§è€æ°ã®
devcontainer.json
ãã¡ã€ã«ãèŠã€ãã£ãå Žåããããã codespace ã®äœæãªãã·ã§ã³ ããŒãžã® [éçºã³ã³ãããŒæ§æ] ããããããŠã³ã«äžèŠ§è¡šç€ºãããŸãã ããªããžããªã® codespace ãäœæããããã芧ãã ããã
devcontainer.json
ãã¡ã€ã«ã®è¿œå
ãªããžããªã«ãŸã devcontainer.json
ãã¡ã€ã«ããªãå ŽåãGitHub ãããã°ãã远å ã§ããŸãã
-
ãèªåã®ãªããžããªã«ç§»åãã [ ã³ãŒã] ããããããŠã³ãã¯ãªãã¯ããŠãã ããã
-
[Codespaces] ã¿ãã§çç¥èšå· ( ... ) ãã¯ãªãã¯ããæ¬¡ã« [éçºã³ã³ãããŒã®æ§æ] ãéžæããŸãã
æ°ãã .devcontainer/devcontainer.json
ãã¡ã€ã«ããšãã£ã¿ãŒã§éããŸãã ãã¡ã€ã«ã«ã¯ãæ°ããããŒã«ãã©ã€ãã©ãªããŸãã¯ã©ã³ã¿ã€ã ã远å ã§ãã features
ãªããžã§ã¯ããªã©ãããã€ãã®åæããããã£ãå«ãŸããŸãã ãdevcontainer.json ãã¡ã€ã«ãžã®æ©èœã®è¿œå ããã芧ãã ããã
ã䜿ãã®ãªããžããªã«ãæ¢ã« 1 ã€ä»¥äžã® devcontainer.json
ãã¡ã€ã«ãããå Žåã¯ã [éçºã³ã³ãããŒã®æ§æ] ãã¯ãªãã¯ãããšãéçºã³ã³ãã㌠Web ãµã€ãäžã®ä»æ§ã«åŸã£ãŠãæãåªå
床ã®é«ãæ¢åã® devcontainer.json
ãã¡ã€ã«ãéããŸãã
codespace ã®äœææã«ãããæ¢å®ã®æ§æã®éžæ
.devcontainer/devcontainer.json
ãŸã㯠.devcontainer.json
ãååšããå Žåã¯ãcodespace ãäœæãããšãã«äœ¿çšå¯èœãªæ§æãã¡ã€ã«ã®äžèЧã§ãããæ¢å®ã®éžæã«ãªããŸãã ã©ã¡ãã®ãã¡ã€ã«ãååšããªãå Žåã¯ãæ¢å®ã®éçºã³ã³ãããŒæ§æãæ¢å®ã§éžæãããŸãã
次ã®ã¹ã¯ãªãŒã³ã·ã§ããã§ã¯ããªããžããªã« .devcontainer/devcontainer.json
ãã¡ã€ã«ã .devcontainer.json
ãã¡ã€ã«ãå«ãŸããŠããŸããããã®ãããæ¢å®ã®éçºã³ã³ãããŒæ§æãéžã°ããŸãã ãã ãã.devcontainer
ãã£ã¬ã¯ããªã®ãµããã£ã¬ã¯ããªã« 2 ã€ã®ä»£æ¿æ§æãã¡ã€ã«ãå®çŸ©ãããŠãããããããããéžæè¢ãšããŠäžèŠ§è¡šç€ºãããŸãã
devcontainer.json ãã¡ã€ã«ã®ç·šé
devcontainer.json
ãã¡ã€ã«ã§ãµããŒããããŠããæ§æããŒã远å ããã³ç·šéããŠãcodespace ã®ç°å¢ã®èŠçŽ ãæå®ã§ããŸã (ããšãã°ãã©ã® VS Code æ¡åŒµæ©èœãã€ã³ã¹ããŒã«ããã)ã devcontainer.json
ãã¡ã€ã«ã§èšå®ã§ããèšå®ãšããããã£ã«ã€ããŠè©³ããã¯ãéçºã³ã³ãã㌠Web ãµã€ãã®ã仿§ããã芧ãã ããã
devcontainer.json
ãã¡ã€ã«ã¯ JSONC (ã³ã¡ã³ãä»ãã® JSON) 圢åŒã䜿çšããŠèšè¿°ãããŸãã ããã«ãããæ§æãã¡ã€ã«å
ã«ã³ã¡ã³ããå«ããããšãã§ããŸãã VS Code ã®ããã¥ã¡ã³ããVS Code ã§ã® JSON ã®ç·šéããã芧ãã ããã
ã¡ã¢
ãªã³ã¿ãŒã䜿çšã㊠devcontainer.json
ãã¡ã€ã«ãæ€èšŒããå Žåã¯ãJSON ã§ã¯ãªã JSONC ã«èšå®ãããŠããããšã確èªããŠãã ãããããã§ãªããšãã³ã¡ã³ãããšã©ãŒãšããŠå ±åãããŸãã
VS Code ã®ã€ã³ã¿ãŒãã§ã€ã¹èšå®
VS Code ã®ã€ã³ã¿ãŒãã§ã€ã¹èšå®ã¯ããŠãŒã¶ãŒããªã¢ãŒã [Codespaces]ãã¯ãŒã¯ã¹ããŒã¹ã® 3 ã€ã®ã¹ã³ãŒãã§æ§æã§ããŸãã ãããã®ã¹ã³ãŒãã¯ãVS Code èšå®ãšãã£ã¿ãŒã§è¡šç€ºã§ããŸãã
èšå®ãšãã£ã¿ãŒã衚瀺ããã«ã¯ãããŒããŒã ã·ã§ãŒãã«ããã® Command+, (Mac) / Ctrl+, (Linux/Windows) ã䜿ããŸãã
èšå®ãè€æ°ã®ã¹ã³ãŒãã§å®çŸ©ãããŠããå Žåã¯ãã¯ãŒã¯ã¹ããŒã¹ èšå®ãåªå ãããæ¬¡ã«ãªã¢ãŒã [ã³ãŒãã¹ããŒã¹] ãåªå ãããæ¬¡ã«ãŠãŒã¶ãŒãåªå ãããŸãã
VS Code ã®æ¢å®ã®ã€ã³ã¿ãŒãã§ã€ã¹èšå®ã¯ã2 ãæã§å®çŸ©ã§ããŸãã
- ãªããžããªã®
.vscode/settings.json
ãã¡ã€ã«ã§å®çŸ©ãããã€ã³ã¿ãŒãã§ã€ã¹èšå®ã¯ãcodespace ã§ã¯ãŒã¯ã¹ããŒã¹ãã¹ã³ãŒããšããèšå®ãšããŠé©çšãããŸãã devcontainer.json
ãã¡ã€ã«ã®settings
ããŒã§å®çŸ©ãããã€ã³ã¿ãŒãã§ã€ã¹èšå®ã¯ãcodespace ã§ãªã¢ãŒã [Codespaces] ãã¹ã³ãŒããšããèšå®ãšããŠé©çšãããŸãã
codespace ãžã®æ§æå€æŽã®é©çš
æ§æã«å¯Ÿãã倿Žã¯ã次å codespace ãäœæãããšãã«é©çšãããŸãã ãã ããã³ã³ãããŒããªãã«ãããããšã§ãæ¢åã® codespace ã«å€æŽãé©çšã§ããŸãã ããã¯ãVS Code ã® Web ã¯ã©ã€ã¢ã³ããŸãã¯ãã¹ã¯ããã ã¢ããªã±ãŒã·ã§ã³ã® codespace å ã§è¡ãããGitHub CLI ã䜿çšããããšãã§ããŸãã
ã¡ã¢
codespace ã§ã³ã³ãããŒããªãã«ããããšã/workspaces
ãã£ã¬ã¯ããªã®å€éšã§å ãã倿Žã¯ã¯ãªã¢ãããŸãã /workspaces
ãã£ã¬ã¯ããªå
ã§å ããå€æŽ (codespace ãäœæãããªããžããªãŸãã¯ãã³ãã¬ãŒãã®ã¯ããŒã³ãå«ã) ã¯ããªãã«ãåŸãä¿æãããŸãã 詳ããã¯ããGitHub Codespaces ã®è©³çްããã芧ãã ããã
VS Code Web ã¯ã©ã€ã¢ã³ããŸãã¯ãã¹ã¯ããã ã¢ããªã±ãŒã·ã§ã³ã§éçºã³ã³ãããŒããªãã«ããã
-
VS Code Command Palette ã«ã¢ã¯ã»ã¹ (Shift+Command+P / Ctrl+Shift+P) ããããªãã«ãããšå ¥åããŸãã [Codespaces: ã³ã³ãããŒã®ãªãã«ã] ãã¯ãªãã¯ããŸãã
ãã³ã
ãã£ãã·ã¥ãã¯ãªã¢ããæ°ããã€ã¡ãŒãžã䜿çšããŠã³ã³ãããŒãåæ§ç¯ããããã«ãå®å šãªãªãã«ããå®è¡ããããšãå¿ èŠã«ãªãå ŽåããããŸãã 詳ããã¯ããcodespace ã§ã®ã³ã³ãããŒã®ãªãã«ãããã芧ãã ããã
-
éçºã³ã³ãããŒæ§æã倿ŽããŠã³ã³ãã㌠ãšã©ãŒãçºçããå Žåãcodespace ã¯å埩ã¢ãŒãã§åäœãããšã©ãŒ ã¡ãã»ãŒãžã衚瀺ãããŸãã
- äœæãã°ã確èªããŠãšã©ãŒã蚺æããã«ã¯ã View creation log ãã¯ãªãã¯ããŸãã
- ãã°ã§èå¥ããããšã©ãŒãä¿®æ£ããã«ã¯ã
devcontainer.json
ãã¡ã€ã«ãæŽæ°ããŸãã - 倿Žãé©çšããã«ã¯ãã³ã³ãããŒããªãã«ãããŸãã
GitHub CLI ã䜿çšããŠéçºã³ã³ãããŒããªãã«ããã
VS Code ã®å€éš (ããšãã°ãGitHub) ã§éçºã³ã³ãããŒã®æ§æã倿Žããå Žåã¯ãGitHub CLI ã䜿ã£ãŠæ¢åã® codespace ã®éçºã³ã³ãããŒããªãã«ãã§ããŸãã
-
ã¿ãŒããã«ã§ã次ã®ã³ãã³ããå ¥åããŸãã
gh codespace rebuild
codespace ãäžèŠ§è¡šç€ºãããŸãã
-
ããŒããŒãã®æ¹åããŒã䜿ã£ãŠå¿ èŠãª codespace ã匷調衚瀺ããŠãããEnter ããŒãæŒããŸãã