ćć°ăŽăłăłăăăăŤăăŤăăCI/CDăŽĺçĺ
ăăăŤăĄăŻăDockerăŽăąăăłă§ăă ç§ăŻăăŤăăăźă ă§ĺăăŚăăăäťćĽăŻăăŤăăăźăŤăŽăżă使ç¨ăăCIçśçśçă¤ăłăă°ăŹăźăˇă§ăłăŤă¤ăăŚăŽăăŹăźăłăăźăˇă§ăłă§ăă
ćŚčŚ
ăžăă芹ăăăăăŽăŻăCI(çśçśçă¤ăłăă°ăŹăźăˇă§ăł)ăăăă¤ăă¨GitHub Actionsă§ăă ăăăŻç§ăăĄăćăŁăŚăăäşşć°ăŽăăăăăă¤ăăźă§ăăăç°ĄĺăŞç´šäťă¨GitHub Actionsă§ăăăŤçŚçšăĺ˝ăŚăăă¨ćăăžăă 丝ăŞăłăłăăźăăłăăŻăç§ăăĄăćäžăăŚăăDockeră˘ăŻăˇă§ăłăŤé˘ăăăăŽă§ăäťćĽăăăźăąăăăăŹă¤ăšăŤăŻăăŽăăĄăŽ6ă¤ăăăăžăă
ăžăăä˝ćĽăéĺ§ă§ăăĺşćŹçăŞăŻăźăŻăăăźăčŚăŚăżăžăăăă ăăăŻĺşćŹçăŞćé ă§ăăăăăăăŽĺşćŹçăŞăŻăźăŻăăăźăăăŠăŽăăăŤé˛ĺă§ăăăăăžăăăŤăăăŁăăˇăĽă使ç¨ăăŚćéŠĺăăćšćłăçč§Łă§ăăžăă ăĺçĽăŽăăăŤăDockeră¤ăĄăźă¸ă§ăŻč¤ć°ăŽăăŠăăăăŠăźă ăăľăăźăăăăŚăăžăă ăăăŻćčżäşşć°ăŽăăăăŹăłăă§ăăăăăăăžăăžăŞă˘ăźăăăŻăăŁăŤćéŠĺăăăăłăłăăă¤ăĄăźă¸ăä˝ćăăćšćłă確čŞă§ăăžăă ăăŽçŤ ăŤçśăăŚăăăăŞă˘ăŤăĺ ŹéăăăăăăžăăŻăżă°ă¨ăŠăăŤăŽčŞĺĺă使ç¨ăăŚçťĺăĺ ŹéăăăăăŽăŞăłăŻă襨示ăăăžăă ăăăç§ăăĄăŽĺ ŹĺźăŽčĄĺă使ç¨ăăŚăăžăă
ăăăŤçśăăŚă Bake ă使ç¨ăăŚăŻăźăŻăăăźăč§ŁăćžăĄăç°Ąç´ ĺăăćšćłăŤă¤ăăŚčŞŹćăăžăăăăăăăŤăăăźăŤă§ăăăăžăäşşć°ăŻăăăžăăăăăăŽăăŹăźăłăăźăˇă§ăłă§ăŻăăăŤçŚçšăĺ˝ăŚăŚăć°ăăĺŽçžŠă使ç¨ăăŚăăŤăăčĄăĺŠçšăçč§Łăăăă¨ćăăžăă
ăăăăăăăä¸ă¤ĺ°ăăŞé¨ĺăăăă§ăăăăăćŹĺ˝ăŤéčŚăŞăă¨ă ă¨ćăăžăăăŞăăŞăăäťćĽăCIă§ćŞăăăżăźăłă使ăăăŚăăăăăăăžăăăăăˇăźăŻăŹăăăŻéčŚăŞé¨ĺă§ăăăçŹčŞăŽçŤ ăŤĺ¤ăăă¨ćăăžăă ćĺžăŤăăłăłăăăăźăšăŽăŻăźăŻăăăźă使ç¨ăăŚăĺ é¨ăŤăźăă¨CIăăăă大ăăŞĺçć§ăéćăăćšćłăčŚăŚăăăžăă
GitHub ă˘ăŻăˇă§ăł
GitHub Actions ăĺ§ăăžăăăăGitHub Actionsă¨ăŻćĺăŤăŻăźăŻăăăźčŞä˝ăăăăŽă§ăăăă§ăă¤ăăŠă¤ăłăŻă¤ăăłăăăŠăłăăźăă¸ă§ăăŞăŠă§ĺŽçžŠăăăžăăăăŽäťć§ć¸ă§ăŻčŞŹćăăžăăăăăăŽčŹćźă§ăŻĺ¤ăăŽăŻăźăŻăăăźăç´šäťăăăăăăăŽäťçľăżăăăăăçč§ŁăăŚăăă ăăăăŤčŞŹćăăžăă
ăžăăă¤ăăłăăéĺŹăăŚăăžăă ăăăŻăăŻăźăŻăăăźăŽĺŽčĄăăăŞăŹăźăăăŞăă¸ăăŞä¸ăŽçšĺŽăŽă˘ăŻăăŁăăăŁă§ăă ăăăˇăĽăăŤăŞăŻă¨ăšăăŽăăăŞăăŽăăăăăăăăžăă ăŻăźăŻăăăźăăŁăšăăăăŻăăŻăźăŻăăăźăćĺă§ăăŞăŹăźăăăăăŤä¸čŹçăŤä˝żç¨ăăăăăŽă§ăă ăŠăłăăźăăăăžăă ă¤ăžăăăăăŻăUbuntuăŽćć°ămacOSăŽćć°ăăăăłăťăŤăăăšăăŠăłăăź(ăăĺ ´ĺ)ăŞăŠăŽăŻăźăŻăăăźăĺŽčĄăăăľăźăăźă§ăă ăžăăĺăŠăłăăźăŻä¸ĺşŚăŤ 1 ă¤ăŽă¸ă§ăăĺŽčĄă§ăăžăă
äťäşăăăăžăă ăăăŻăăŻăźăŻăăăźĺ ă§ĺŽčĄăăăä¸éŁăŽăšăăăă§ăăăĺăă¤ăłăšăżăłăšĺ ă§ĺŽčĄăăăžăă ăăăŚăă˘ăŻăˇă§ăłăŻăăăăŻăç§ăč¨ăăăăŤăăăŞăăć§çŻă§ăăăŤăšăżă ă˘ăăŞăąăźăˇă§ăłă§ăă ăłăłăăăŤăăăă¨ăăJavaScript ă˘ăŻăˇă§ăłăŤăăăă¨ăăč¤ĺă˘ăŻăˇă§ăłăŤăăăă¨ăă§ăăžăă ăăăŻăä˝ăăŽăłăăłăăĺŽčĄăăŚăăžăă ăăăăăăŽăăŹăźăłăăźăˇă§ăłă§ăŻăç§ăăĄăćäžăăŚăăăăšăŚăŽćĽçśăŤă¤ăăŚĺăä¸ăăăŽă§ăăăŽăăĄăŽ6ă¤ăăăăžăă
äťćĽăŽćĽçśăŽçžçśăčŚăŚăżăžăăăăăă¤ăăŠă¤ăłă厚ćăŤăăăă¨čăăŚăăăăăŽăăăŤăăŻăźăŻăăăźăŤăˇăźă ăŹăšăŤçľąĺă§ăăăăăŤăăăă㎠GitHub Actions ăćäžăăŚăăžăăăăŽä¸ă§ćăäşşć°ăăăăŽăŻăăăăăăăŤă-ăăăˇăĽ-ă˘ăŻăˇă§ăłă§ăăăăăăăŻĺşćŹçăŤă¤ăĄăźă¸ăăăăˇăĽăăŚăăŤăăăăă¨ă§ăăăăŤăăăźăŤă使ç¨ăăŚăăăăăăăăŻăăŤăăăŠăăăăŠăźă ăăŤăăăˇăźăŻăŹăăăŽä˝żç¨ăăăŁăăˇăĽăŽă¨ăŻăšăăźăăŞăŠăĺŽĺ ¨ăŤăľăăźăăă buildx 㨠BuildKit ă§ăăBuildKităŽăăăă§ăăăžăăžăŞăăŤăăźăăăăă¤ăééăŞăăˇă§ăłă使ç¨ăăăă¨ăă§ăăžăăăăĄăăăăăă§ăŽäťăŽčĄĺăŤă¤ăăŚă芹ăăžăăăă¨ăă°ăă¤ăĄăźă¸ăăăăˇăĽă§ăăăăăŤăăăăăŤăă°ă¤ăłă˘ăŻăˇă§ăłăĺż čŚăŤăŞăăŞăŠăăăăŤĺ¤ăăŽăľăăŠă¤ăă˘ăŻăˇă§ăłăăăăžăăćĺăŤăă°ă¤ăłă˘ăŻăˇă§ăłăăăŞăŹăźăăŚăăăbuild-push-action ă使ç¨ăăĺż čŚăăăăžăă
ă茧ăŽă¨ăăăactions-toolkităăăăžăă ăăăŻăăčŞä˝ăčĄĺă§ăŻăăăžăăă ăăăŻăăăšăŚăŽćä˝ăŤä˝żç¨ăăŚăăăŠă¤ăăŠăŞăŤăăăžăăă ăăăŻăăăŤăăăźăŤăŤé˘ăăăăă¤ăăŽăŚăźăăŁăŞăăŁă¨ĺ ąéăŽăă¸ăăŻăćäžăăžăă ăăăŻăĺż čŚăŤĺżăăŚä˝żç¨ă§ăăćĺ°éăŽăŠăăăźă§ăăăç§ăăĄăăăăă¨ĺŻžčŠąăăăŽă厚ćăŤăăAPIă§ăă ăăăŚăăĄăăăăăŽăăźăŤăăăăŻăäťćĽăŽç§ăăĄăŽăăšăŚăŽčĄĺăŤăăŁăŚćśč˛ťăăăžăă
ĺşćŹçăŞăŻăźăŻăăăź
ĺşćŹçăŞăŻăźăŻăăăźăčŚăŚăżăžăăăă ăžăăăăŽăŻăźăŻăăăźăŻăŻăźăŻăăăź ăăŁăšăăă ă¤ăăłăă§ăăŞăŹăźăăăžăă ćĺă§ĺźăłĺşăăăă ăă§ăăŞăă¸ăăŞăŤç§ťĺăăă ăă§ć¸ăżăžăă ăăŽăŻăźăŻăăăźăŻăçšĺŽăŽă¤ăăłăăŞăă§ćĺă§ć§ćăăăăăŤăŻ 2 ă¤ăŽĺ Źĺźă˘ăŻăˇă§ăłă使ç¨ăăăžăă login-action 㨠build-push-action ăăăăžăă ăăăăŁăŚălogin-actionăŻDocker Hubă§ăăăŤăă°ă¤ăłăăžăă ăăŽĺžăbuild-push-action ă使ç¨ăăŚă¤ăĄăźă¸ăŤăżă°ăäťăăă¤ăĄăźă¸ăăăăˇăĽă§ăăžăă ă ăăăăăăŻćŹĺ˝ăŤç°Ąĺă§ăă ç§ăŻĺžă§ăăŤăăăŠăăăăŠăźă ăŤă¤ăăŚčŠąăăăăŽă§ăăăŽăăăŞăăă¸ă§ăŻăăćă¤ăŽăŻç°ĄĺăŞăŽă§ăĺç´ăŞGoăăă¸ă§ăŻăă使ç¨ăăŚăăžăă ăăăŻĺç´ăŞWebăľăźăăźă§ăă ăăŽčĺžăŤăŻć´žćăŞăăŽăŻä˝ăăăăžăăă
ăăŤăăĺŽčĄăă
ăăŽăăŤăăĺŽčĄăăŚăżăžăăăă ĺŽéăŤăăăĺŽéăŤčŚăăăăŤăŠă¤ăăă˘ăčĄăăăăŁăăŽă§ăăăăăŽăăŹăźăłăăźăˇă§ăłăŽăšăŻăŞăźăłăˇă§ăăăŤăŞăăžăă ă茧ăŽéăăç´ 24 ç§ăăăăžăăă ä˝ăăć§çŻăăăŽăŻćŞăăăăžăăăăĺŽéăŤăăŁăăˇăĽăć´ťç¨ăăă¨ăăŻăăăŤăăžăăăăă¨ăă§ăăžăă ăăăăŁăŚăăăăŤăăŤăăă°ăčŚăă¨ăăăŽăšăăźă¸ăăăŁăăˇăĽăăăŚăăŞăăă¨ăăăăăžăă ăăŽăŻăźăŻăăăźăĺŽčĄăăăăłăŤĺŽčĄăăăžăă ăăŽăšăăźă¸ăŻĺŽčĄăăăăăŁăăˇăĽăăăĺśéăŻăăăžăăă ăăăăŁăŚăăăăŤăăŁăăˇăłă°ăć´ťç¨ă§ăăžăă
ăăŁăăˇăĽăŽćéŠĺ
ăăŁăăˇăĽă使ç¨ăăŚăŻăźăŻăăăźăăăéŠĺăŤćéŠĺă§ăăžăă ăžăăăăŁăăˇăĽăă¨ăŻăšăăźăăăăăăŽăăŁăăˇăĽĺŽčŁ ăŽčŚłçšăăăBuildKităćäžăăăăŽă確čŞă§ăăžăă äťćĽăăăŤăăăăă§ĺŠç¨ă§ăăĺ¤ăăŽăăăŻă¨ăłăăăăăžăă ăĺçĽăŽăăăŤăBuildKităŻăăăŤăăčĄăă¨ăăăŤăçľćăčŞĺçăŤçŹčŞăŽĺ é¨ăăŁăăˇăĽăŤăăŁăăˇăĽăăžăă ăăăăGitHubăŠăłăăźăăăçĽăŁăŚăăăăăŤăăăŽăăŁăăˇăĽăŻĺĺ¨ăăăć°¸çśĺăăăŚăăžăăă BuildKităŽčăćšăŻăăăŤăăăŁăăˇăĽăĺ¤é¨ăŽĺ ´ćăŤă¨ăŻăšăăźăăăĺ°ćĽăŽăăŤăă§ă¤ăłăăźăă§ăăăăăŤăăăă¨ă§ăă ăăăăŁăŚăĺŽčĄăŽéăŤăŻă揥ăŽăăŁăăˇăĽăăăŻă¨ăłăăĺŠç¨ĺŻč˝ă§ăăăäťćĽä˝żç¨ăăăăŽăăăăžăă
ăăăŻăGitHub APIă使ç¨ăăŚăăGHA1ăGitHub Action1 ă§ăă ĺşćŹçăŤăŻĺ ŹĺźăŽGitHubăăŁăăˇăĽă˘ăŻăˇă§ăłă¨ĺăă§ăă ăăăŻĺă税éĄăŽAPIă使ç¨ăăŚăăžăă ăŻăźăŻăăăźă§ăăŽăăŁăăˇăĽăćĺšăŤăăăŤăŻăä¸éŁăŽ buildx ă˘ăŻăˇă§ăłăčż˝ĺ ăăă ăă§ăă ăăŽä¸éŁăŽ buildx ă˘ăŻăˇă§ăłăŻăçžĺ¨ĺŠç¨ĺŻč˝ăŞăăšăŚăŽ BuildKit ćŠč˝ăć´ťç¨ăăăăăŽăłăłăăăăŤăăźăä˝ćăăžăă ăăŽăăăDockeră¨ăłă¸ăłĺ ăŤĺăčžźăžăăBuildKită§ăŻçžĺ¨ĺŠç¨ă§ăăŞăBuildKităŽćć°ăŽăăźăăŤă使ç¨ăăŚăăžăă
ăăă§ăăăŁăăˇăĽĺ˝äť¤ăč¨ĺŽăăŚăăăăŽăăŁăăˇăĽă使ç¨ăăăăă¨č¨ăăă¨ăă§ăăžăă ăăŽăăŁăăˇăĽăGHAăŤă¨ăŻăšăăźăăăăăăŤăăăˇăĽăăžăă ăăŽăăŁăăˇăĽăŻăGitHub ActionsăăăŻă¨ăłăăăăčŞăżĺăăă¨ăă§ăăžăă ăăăăŁăŚăăăŽăłăźăăăăŤăăăă¨ăăăŽăăŁăăˇăĽăŻăăŁăăˇăĽăĄăżăăźăżă¨ăŹă¤ă¤ăźăŽä¸Ąćšă GitHub ăăŁăăˇăĽăľăźăăšăŤäżĺăăžăă ăăăŻăĺ é¨çăŤăŻ Azure Blob ăšăăŹăźă¸ă§ăă ăăŽä¸ă彟ăăŻçŹčŞăŽAPIăćăŁăŚăăăăăăŻăăĄăăĺ ŹĺźăŽGitHub Actionsă§ä˝żç¨ăăăŚăăăŽă¨ĺăăăăŻă¨ăłăă§ăă
ăăŽăăă¸ă§ăŻăăăăŤăăăĺ ´ĺăć°ăăăŞăăˇă§ăłă§ăŠăŽăăăŤćŠč˝ăăăăčŚăŚăżăžăăăă ă茧ăŽă¨ăăăăăŁăăˇăĽăč¨ĺŽăăŚăă8ç§ăăăăăăăăăŻăŻăăăŤĺŞăăŚăăžăă ăăŤăćéă 67%çŻç´ăăăŽă§ăăăăŻăăŞăç´ ć´ăăăăă¨ă§ăă ăă°ăčŚăă¨ăăăŤăăšăăźă¸ăăăŽĺ˝äť¤ăăăŁăăˇăĽăăăŚăăăă¨ăăăăăžăă GitHub ăăŁăăˇăĽ ăăăŻă¨ăłă㨠GitHub Actions ă使ç¨ăăă¨ăă㎠CI ă使ç¨ăăă¨ăăŤçžĺ¨ä˝żç¨ă§ăăćăç°ĄĺăŞăŞă˘ăźă ăăŁăăˇăĽă§ăă ĺĽăŽ CI ăăăă¤ăăźă使ç¨ăăŚăăĺ ´ĺăŻăăă¨ăă°ăS3 ăăăŻă¨ăłăăAZ BLOB ăăăŻă¨ăłăăăžăăŻĺż čŚăŤĺżăăŚĺĽăŽăšăăŹăźă¸ăăăŻă¨ăłăă使ç¨ă§ăăžăă ăă ăăčŞč¨źăŹă¤ă¤ăźăĺż čŚă§ăă ăăŽăăăŞăăŽăĺż čŚă§ăă GitHub Actions ă使ç¨ăăă¨ăăăăăăăŤĺŠç¨ă§ăăăăăäťăŤä˝ăĺż čŚăăăžăăă
ĺ ăŤé˛ăĺăŤăăăŁăăˇăĽă¨GitHub ActionăŤă¤ăăŚćł¨ćăăŞăăă°ăŞăăŞăăă¨ăăăăžăă ăăŁăăˇăĽăŤăŻăăŞăă¸ăăŞĺ ¨ä˝ă§ĺ ąćăăă 10 ăŽăŹăă¤ăăŽăľă¤ăşĺśéăăăăžăă ăăŽăăăGitHubăŻăăŁăăˇăĽăäżĺăăžăăăăľă¤ăşăčś ăăă¨ăăŁăăˇăĽăŽĺé¤ăéĺ§ăăžăă ăăŁăăˇăĽăăŞăľă¤ăŻăŤăăă¨ăĺ ¨ä˝çăŤĺŽčĄćéăé ăăŞăĺŻč˝ć§ăăăăăă注ćăĺż čŚă§ăă ă¨ăŻăšăăźăăăĺż čŚăăăăăŽăŻăăăăŠăŤăă§ăŻăDockerăăĄă¤ăŤăŽćĺžăŽăšăăźă¸ăă¨ăŻăšăăźăăăă ăă§ăă ăăăăäžăă° mode=max ăŽăăăŤăăšăŚăă¨ăŻăšăăźăăăăĺ ´ĺăŻăăăăŤćł¨ćăăĺż čŚăăăăžăă
ăšăłăźăăăźăăăăžăă ăăăăŁăŚăăšăłăźă ăăźăŻăăăŠăŤăă§ BuildKit ă¨ăăĺĺăŤăŞăŁăŚăăăăăăăăăăŁăăˇăĽăĺąăăăăźă§ăă ăă¨ăă°ăă˘ăăŠăŤăŞăă¸ăăŞăŤĺ¤ăăŽăăă¸ă§ăŻăăĺŤăžăăŚăăĺ ´ĺăŤäžżĺŠă§ăă ăă¨ăă°ăăăŽăăŁăăˇăĽăfooăŤăäťăŽăăŁăăˇăĽăbarăŤé 罎ăăŚăä¸çˇăŤĺăŤăŞăăŞăăăăŤăăăă¨č¨ăăă¨ăă§ăăžăăăžăăă˘ăăŞăă¸ăăŞă使ç¨ăăŚč¤ć°ăŽăăă¸ă§ăŻăăŤĺśéăăăă¨ăă§ăăžăă ăăăŠăŤăă§ăŻăäťćĽăŽ BuildKit 㯠GitHub Actions ăăŁăăˇăĽĺ ăŽăăŁăăˇăĽ ăăŚăłăăă¨ăŻăšăăźăăăžăăă ăăăčĄăĺ ´ĺăŻăă㎠GitHub Actions ă使ç¨ăăŚĺéżçăăăăăăăăŁăăˇăĽ ăăŚăłăăă¨ăŻăšăăźăă§ăăžăă
ăăŤăăăŠăăăăŠăźă ăăŤă
揥ăŤăăăŤăăăŠăăăăŠăźă ăăŤăăŤă¤ăăŚĺ°ăă芹ăăăžăăăă ăĺçĽăŽăăăŤăDockeră¤ăĄăźă¸ăŻč¤ć°ăŽăăŠăăăăŠăźă ăăľăăźăăăŚăăăăă1ă¤ăŽă¤ăĄăźă¸ăŤč¤ć°ăŽăăŞă˘ăłăă¨OSä¸ăŽč¤ć°ăŽăăŠăăăăŠăźă ăĺŤăăăă¨ăă§ăăžăă ăăăŻçšăŤCIă§äşşć°ăŽăăăăŹăłăăŞăŽă§ăäťćĽăŻăăăăčŚăăăăă¨ćăăžăă
ăăŤăăăŠăăăăŠăźă ăăŤăăčĄăăŤăŻăĺşćŹçăŤăŻĺä¸ăŽĺ Ľĺăćäžăăă ăă§ăă ăăŽĺ ´ĺăç§ăŻăă x96ăArmăăŤăă揲ăăă¨č¨ăăžăă ăăăčĄăăŤăŻăăăăćĺŽăăă ăă§ăĺ ´ĺăŤăăŁăŚăŻăDockerfileăŽč¨čż°ćšćłăŤĺ¤§ăăäžĺăăžăă ăăăăŁăŚăă¨ăăĽăŹăźăżăźăă¤ăłăšăăźăŤăăĺż čŚăăăăăăŽăăăŤăç§ăăĄăćäžăăăťăăă˘ăăQEMUă˘ăŻăˇă§ăłă使ç¨ăăăă¨ăă§ăăžăă ăăăŻăăŞăăŽăăŤăăŽă¨ăăĽăŹăźăżăă¤ăłăšăăźăŤăăă ăă§ăă ă茧ăŽă¨ăăăŤăăŽăăŤăăĺŽčĄăăă¨ăăŻăă3ĺă§ăăăăăăŻčŻăăăăžăă
čż˝ĺ ăŽăăŠăăăăŠăźă ăć§çŻăăă ăă§ă大ĺ¤ăŞăă¨ă§ăăăă˘ă¤ăă˘ăŻăăăžăă? 誰ăăăŞăăăăŞăŤćéăăăăăŽăčăăŚăăžăă? ăăăăăăśăăăăăăžăăăç§čŞčşŤăčăăćăŁăŚăăăŽă§ăăă°ăçăăăăăăăăăăžăăă čŚăŚăżăžăăăă ă ăăăăŻăăç§ăăĄăŻçŻäşşăčŚă¤ăăă¨ćăăžăă ă茧ăŽă¨ăăăArm ㎠1 ă¤ăŻăăŽăăă¸ă§ăŻăăŽăăŤăă ăă§ç´ 3 ĺăăăăăă 1 ă¤ăŻ 30 ç§ăăăăžăă ă§ăăăăăŻăăăăăĺéĄă§ăă ă¨ăăĽăŹăźăˇă§ăłăŻć罪ă§ăă ĺşćŹçăŤăăĺçĽăăăăăžăăăăGită¤ăăłăă¤ăłăăŠăšăăŠăŻăăŁă§ăŻăUbuntuăŽćć°ăŽăŠăłăăźăŻx96 ă˘ăźăăăŻăăŁă§ăă ăăăăŁăŚăArmăăŤăăčĄăă¨ăăŻăă¨ăăĽăŹăźăˇă§ăłăŽăżă使ç¨ăăžăă ăžăăă¨ăăĽăŹăźăˇă§ăłăŻăăŤăăčĄăéăŽĺ¤§ăăŞăăăŤăăŁă§ăăăăăé常ăŤćéăăăăăžăă ă§ăŻăăŠăăăă°ăăăč§Łćąşă§ăăăŽă§ăăăă? ăăŽĺéĄăč§ŁćąşăăăŤăŻ2ă¤ăŽč§ŁćąşçăăăăăăăăčŚăŚăăăŽăŻăă¨ăăĽăŹăźăˇă§ăłă使ç¨ăăŚăăŽăăăŤăăŁăĺăé¤ăăăăŤDockerfileă§ăŻăăšăłăłăă¤ăŤă使ç¨ăăćšćłă§ăă
ăžăăDockerfileăŤćťăăžăăăă ăă°ă§ç˘şčŞăăăăăŤăăăŤăçść ăŻăăăăăŽăăŠăăăăŠăźă ăŤĺŻžăăŚăăŤăăăăžăă ăăăŚăăŽĺ ´ĺăGoă§ăŻăăšăłăłăă¤ăŤă使ç¨ăăăŽăŻé常ăŤç°Ąĺă§ăă ä¸éŁăŽĺ¤ć°ă渥ăă ăă§ăăżăźă˛ăăă˘ăźăăăŻăăŁă使ç¨ăăăă¨ăă§ăăžăă Dockerfile ăŽă°ăăźă㍠ăšăłăźăă§ĺźć°ăćäžăăžăă ăăăăŁăŚăăăăłăă¨ăłăă§ăŻăăăŽĺźć°ăŽăťăăă使ç¨ăăă¨ăçšĺŽăŽăżăźă˛ăăă使ç¨ăăăžăă ăăŽĺ ´ĺăăŻăăšăłăłăă¤ăŤă使ç¨ăăŚăăă¤ăăŁăăăŠăăăăŠăźă ă使ç¨ăăŚăăŤăăčĄăăăżăźă˛ăăĺźć°ă使ç¨ăăŚGoăłăłăă¤ăŠă§ăŻăăšăłăłăă¤ăŤăčĄăăžăă
ăăăăăăăć¨ć¸ŹăăăŤăŻăŠăăăă°ăăă§ăăăă? ăăŽăăăŤăDockerfileă§ăăăˇăĽăăăˇăĽăăŠăăăăŠăźă ă使ç¨ă§ăăăăăăăŤăăăŠăăăăŠăźă ăŤĺłĺŻăŤăŞăăžăă ăăăŻăăŤăăĺŽčĄăăăĺ ´ćă§ăăăăżăźă˛ăăOSă¨ăżăźă˛ăăă˘ăźăăăŻăăŁăćĺŽă§ăăžăă ăăŽĺžăGOOS 㨠GOARCH ăćĺŽă§ăăăăăĺŽçžŠăăăżăźă˛ăă ăăŠăăăăŠăźă ă¨ä¸č´ăăžăă ăăŚăăăŤăăŞăŽă§ăăŠăăăăăŽćéăăăăăă確čŞăăĺż čŚăăăăžăă äťăŻ 47 ç§ă§ăăăăŽăťăăăăă§ăă ăăăŻăăŻăăšăłăłăă¤ăŤă使ç¨ăăŚăăăăă§ăă
ăăă§ăă°ăčŚăă¨ăAMD 64 ă¨Arm㎠64 ăĺćăŤăăăŁăŚăăăă¨ăăăăăžăă ăăăŤăŻăžă ăăă¤ăăŽăăăŤăăŁăăăăžăă 䝼ĺăŽăă¨ăćăĺşăă¨ăç´ 24 ç§ăăăăžăăăĺăăŠăłăăźă§ 2 ă¤ăŽăăŤăăçşçăăŚăăăăă 31 ç§ăăăăžăă ăăăăŁăŚăĺăă¤ăłăšăżăłăšăŤ 2 ă¤ăŽăăŤăăăăăžăă ăă¨ăă°ăăăŽăăŤăăč¤ć°ăŽăŠăłăăźăŤĺćŁăăŚăăăŤăăŁăć¸ăăăĺžă§çľćăăăźă¸ă§ăăăăăŤăăăă¨ăă§ăăžăă ăăăăăăăŻĺžă§čŚăăă¨ăŤăŞăăžăă ăăĄăăăăŻăăšăłăłăă¤ăŤăŻăăă°ăŠăăłă°č¨čŞăŤăăŁăŚăŻéŠĺă§ăŞăĺ ´ĺăăăăă¨ăŤçćăăŚăă ăăă ăă¨ăă°ăGoă使ç¨ăăă¨ăăăăŻé常ăŤç°Ąĺă§ăă Rustă使ç¨ăăă¨ăăăăç°ĄĺăŤăŞăăžăă ăăăăăăăă§ăăĺ ´ĺă使ç¨ă§ăăĺŻä¸ăŽĺŽčĄĺŻč˝ăŞă˝ăŞăĽăźăˇă§ăłăŻăARMä¸ăŤăă¤ăăŁăăăźăăćă¤ăă¨ă§ăă AMDăŤăŻăă¤ăăŁăăăźăăăăăăă¨ăă° 64ăăăăăăŤĺşăĽăăŚć§çŻă§ăăžăăăăŻăźăŻăăăźă§ăăéŤĺşŚăŞăťăăă˘ăăăĺż čŚă§ăă ăăăăŁăŚăăăăŤăŻăăă¤ăăŽĺśç´ăăăăžăă
ă¤ăĄăźă¸ăżă°ă玥çăă
ăăŤăăăŠăăăăŠăźă ăăŤăăŽćšćłăčŚăŚăăăŽă§ăă¤ăĄăźă¸ăăăăˇăĽăăă¨ăăŤă¤ăĄăźă¸ăżă°ăăŹăăŤă§çŽĄçăăćšćłă確čŞă§ăăžăă ĺ°ăč¤éăŤăŞăăăăăăžăăă CIă§ăŻăăăăăăčŚăăăžăă GitHub ActionăŽĺé ăŤăŻăăŞăă¸ăăŞăŤĺć§ăŽăżă°ăăăăˇăĽăăăŚăăăăŠăăăŤĺżăăŚăăăăˇăĽăăăżă°ăŽăŞăšăăćĺŽăăăăă ăăŤă大ăăŞăšăŻăŞăăăŽăăŁăłăŻăćă¤ăă¨ăă§ăăăă¨ăăăăăžăă ăžăăŻăăă¨ăă°ă¨ăă¸ăŞăŞăźăšă使ç¨ăăĺ ´ĺămainăŤä˝ăăăăăăăă§ćĄäťśăć˝ĺşăăăăăŤăăŠăłăăŽĺĺăăăăˇăĽăăăă¨č¨ăă§ăăăă ă ăăăăăăŻăĄăăŁă¨ăăčŚçă§ăă ćéăçăăăăŤăăŻăźăŻăăăźăŽăżă°ă¨ăŹăăŤăŽä˝ćăčŞĺĺă§ăăGitHub Actionăéçşăăžăăă
čŚăŚăżăžăăăă ăĄăżăăźăżă˘ăŻăˇă§ăłă使ç¨ăăŚăăŤăăăĺăŤăć˝ĺşăšăăăăĺŽçžŠăăĺż čŚăăăăžăă ăăăăŁăŚăçťĺĺ ĽĺăŽăżăĺż čŚă§ăă ăăŽĺ ´ĺăŻăăŞăă¸ăăŞă§ăă ăăăŻĺç´ăŞăŞăă¸ăăŞă§ăă GHCRăŤăăăˇăĽăăăĺ ´ĺăŻĺ¤ăăŽă¤ăĄăźă¸ă使ç¨ă§ăăĺćăŤDocker HubăĺŽçžŠă§ăăžăă ĺ°ç¨ăŽăżă°ăăăĺ ´ĺăŻăăăŽĺžăŤbuild-push-actionăŤéŠç¨ăăĺż čŚăăăăŹăăŤăŽăżă°ăçćăăăžăă ăăŽĺ ´ĺăĺăŽćé ăŽĺ Ľĺă§ăżă°ăč¨ĺŽăăžăăă ăă¨ăă°ăăĄă¤ăłăăŠăłăăŤăăăˇăĽăăă¨ăăăŽăżă°ăŽăŞăšăăçćăăăžăă ăăăăŁăŚămaină¨ĺźă°ăăăăŽăŻ1ă¤ă ăăăăčŞĺçăŤçćăăăOCI形ĺźăŽäťć§ăŠăăŤăŽăŞăšăăăăăžăă ăăŽç¨ŽăŽăă¨ăăŞăăă˘ăŚăăăćšćłăŻăăăžăăăăă茧ăŽă¨ăăă誏ćăăăăžăă ăă㯠GitHub API ăăĺĺžăăăžăă ăăăŻăŞăă¸ăăŞăŽčŞŹćă§ăă ăžăăĺĺžăăăŚăăăŤé 罎ăăăŚăăăŞăă¸ăăŞăŽăżă¤ăăŤăăăăăăăăŽç¨ŽăŽă˘ăŻăˇă§ăłă使ç¨ăăŚă¤ăĄăźă¸ăŤä˝ăĺŤăžăăŚăăăă追补ă§ăăžăă ăăăŻăăŞăäžżĺŠă ă¨ćăăžăă ăă¨ăă°ăăłăłăăăťă¤ăĄăźă¸ăŤă¤ăĄăźă¸ăŽREADMEă襨示ăăăă¨ăOCIăŠăăŤăĺŠç¨ăăăăă¨ăă°ăREADMEăŤćĺłăŽăăć ĺ ąă襨示ăăăžăă
ăăăŚăv1 ăżă°ăćźăă¨ăv1.0ă0ăćć°ăŽ v1ăçćăăžăă0ă0 ăĺć§ă§ăă ĺ°ăăăăăŤăăăăăăăžăăăăĺ é¨ă§ä˝ă辡ăăŁăŚăăăŽăă誏ćăăžăăăă ăăŽç¨ŽăŽăŤăšăżăă¤ăşăăăăżă°ă使ç¨ăăă¨ăă˘ăŻăˇă§ăłăăŠăŽăăăŤĺ ăŤćťăăŽăçĺăŤćăăăăăăžăăă ăăăŠăŤăă§ăŻătags ĺ ĽĺăćĺŽăăŞăĺ ´ĺăăăăŠăŤăĺ¤ăŻ type=schedule 㨠type=ref ă§ăevent=branch ăżă°ăžă㯠PR ăćĺŽăăăžăă ăăăăŁăŚătype=scheduleăŻăăŻăźăŻăăăźăŤăŽăżăšăąă¸ăĽăźăŤă¤ăăłăăăăĺ ´ĺăŤä˝żç¨ăăăĺĺăăżă°äťăăăžăă ăżă°ăŤăŻăăăŠăŤăă§éŠĺăŞĺĺăäťăăăăGit ĺç §ăŽä¸ăŽ ref ăŻăăŠăłăă¨ĺć§ăŤăăŞăŻă¨ăšăăŽăżă°ăŤăăŞăăžăă çšĺŽăŽăŚăźăšăąăźăšăŤăŻäťăŤăăŤăźăŤăăăăăă¨ăă°ăGit ăăăźăŽä¸čŹçăŞăăżăźăłăŻăĺć§ăŽăżă°ăăăăˇăĽăăŚăăă¸ă§ăŻăăăŞăŞăźăšăăăă¨ă§ăă
ç§ăăĄăŽĺ ´ĺăçťĺăżă°ă¨ćć°ăŽăżă°ăč¨ĺŽăăă ăă§ăŞăăăĄă¸ăŁăź/ăă¤ăăźăŽăăăŞăăŽăĺż čŚăŞĺ ´ĺăăăă°ăăĄă¸ăŁăźăŽăżăĺż čŚăŞĺ ´ĺăăăăžăă ăăăčĄăăŤăŻăăżă°ăŤéŠç¨ăăăŤăźăŤăćĺŽăăĺż čŚăăăăžăă ăăŽĺ ´ĺăăă¨ăă°ăăăŤăăźă¸ă§ăłă揲ăăă¨č¨ăăžăăăä¸é¨ăŽăŚăźăśăźăŻăăăăć°ăŤăăăă¤ăĄăźă¸ă§ăĄă¸ăŁăźăă¤ăăźăŽăżă使ç¨ăăăăăăĄă¸ăŁăź/ăă¤ăăźăč¨ĺŽăăŚăťăăă¨č¨ăăžăă ăăăăŁăŚăăăŽĺ ´ĺătype=semverăżă°ăŽĺ¨ăă§ăŻăăă¨ăă°ăv1ăćźăă¨çćăăăžăă0ă0ăăăăŻč¨ăă§ăăăăç§ăŻ 1ăćăŁăŚăăžăă0ă0, ç§ăŻv1ăćăŁăŚăăžăă0ă 㨠latestăăăăłăłăăă SHA ăč¨ĺŽăăă SHAă
ăăăŻčŞĺçăŤçćăăăžăă ć°ăŤăăĺż čŚăŻăŞăă ăăăŻăăŞăăŽăăăŤăăăč¨ĺŽăăžăă ăă¨ăă°ăăăŤăŞăŻă¨ăšăăŽĺ ´ĺ㯠Snd ăçćăăăăăŽĺ ´ĺ㯠PR196ăçćăăăSHA ăŽĺ ´ĺăĺć§ă§ăă ăăăŻä˝ăăćźăăăłăŤč¨ĺŽăăăŚăăăŽă§ăăăăŻăăŞăäžżĺŠă§ăă äťăŤăăąăźăšăăăăžăă Pythonă¨ăăźă¸ă§ăłçŽĄçăŤĺşćăŽăăŽăăăăžăă ăžăăă¨ăă¸ăąăźăšăŤä˝żç¨ăăăŚăăäťăŽăăŽăăăăäžăă°ăăăŹăăŁăăŻăšăľăăŁăăŻăšăŽä¸ăŤăăăŞăăŹăźăăźăĺ Ľăăăă¨ăăžăă äžăă°ăAlpineăăźă¸ă§ăłăŽă¤ăĄăźă¸ăDebianăăźă¸ă§ăłăĺż čŚă ă¨ăăžăăăă DebianăŞăŠăŽăăŹăăŁăăŻăšăäťăăăă¨ăă§ăăžăă ă ăăăĺ¤ăăŽăŤăźăŤăăăăžăă ăŞăă¸ăăŞăŤăŻč¨ĺ¤§ăŞăăăĽăĄăłăăăăăžăăŽă§ăă茧ăă ăăă
çźă
BakeăŽčŠąăăăăăŽă§ăăăă茧ăŽéăăŻăźăŻăăăźăŻăăŞă塨大ă§ăăăŽăŻăźăŻăăăźăŽăľă¤ăşăĺ¤§ĺš ăŤç¸Žĺ°ăăăă¨ćăăžăă ăă¤ăŻăŻăăăĺŠăăŚăăăžăă ĺ§ăăĺăŤăBakeăä˝ă§ăăăăăăăŞăăăăăăŞăăŽă§ăbuildăłăăłăă§ăŤăźăăŤćťăăžăă ăĺçĽăŽăăăŤăäťćĽăŽăăŤăăłăăłăă§ăăŽăăăŞăăŽăćă¤ăă¨ăă§ăăžăă
ăăŞă大ăăă§ăă buildăłăăłăăŤăŻĺ¤ăăŽăăŠă°ăç¨ćăăăŚăăăăăăăăźăŤăŤç°ĺ˘ăăCIăŤç§ťć¤ăăă¨ăăłăăźăăźăšăăĺż čŚăŤăŞăĺŻč˝ć§ăăăăăăăăŽç¨ŽăŽăă¨ăĺç´ĺăăăă¨čăăŚăăžăă 严ćšăçśćăăĺż čŚăăăăŽă§ăăăăŻç´ ć´ăăăăă¨ă§ăŻăăăžăăă ăăŞăăŽăŻăźăŻăăăźă§ăŻăăăăăăăăźăŤăŤăłăăłăăăăŤăăăăˇăĽă˘ăŻăˇă§ăłĺ ăŽĺ ĽĺăŤç§ťć¤ăăĺż čŚăăăăăăăăŽăăăŞăăŽăăăă§ăăăă ăăăŻé常ăŤĺ¤§ăăă§ăă ăăăŻçćłçă§ăŻăăăžăăă ç§ăăĄăŻä¸Ąćšăçśćăăĺż čŚăăăăžăă ĺŤă§ăă ăžăăăăă¸ă§ăŻăăăăŤăăăăăăŤăŻăăłăłăăŞăăĽăźăăŁăłă°ăăźăăŽăăăĽăĄăłăăć´ć°ăăĺż čŚăăăăžăăŽă§ăăăăŻăăžăčŻăăăăžăăă Bake ă使ăă°ă䝣ăăăŤăăŽăăăŞăă¨ăă§ăăžăă ă§ăăăăäžăă°ăăăŽăăăˇăĽăăŠă°ăĺŽçžŠăăă ăă§ăä˝ăăä˝ăăăăä˝ăăä˝ăăăăăăăăăăˇăĽăăăăă¨ăăăăŠă°ăĺŽçžŠăăĺż čŚăăăăžăă
ăăă§ăĺ ăŤé˛ăĺăŤăăžăăă¤ăŻăŽĺŽçžŠă¨ăŻä˝ăăŤă¤ăăŚă芹ăăăăă¨ćăăžăă ăăăBakeă使ç¨ăăăăăŽĺşçşçšă§ăă ăăăăŁăŚăBakeă§ăŻăăŚăźăśăźăăăă¸ă§ăŻăăçšăŤĺŽçžŠăăĄă¤ăŤă使ç¨ăăŚčްă§ăç°ĄĺăŤĺźăłĺşăăă¨ăă§ăăĺĺŠç¨ĺŻč˝ăŞăăŤăăăăźăĺŽçžŠă§ăăăăăŤăăăă¨čăăŚăăžăă ăăăăŁăŚăăăŽĺŽçžŠăăĄă¤ăŤăŻăHCLăăĄă¤ăŤăJSONăăĄă¤ăŤăăžăăŻComposeăăĄă¤ăŤă§ăăĺŻč˝ć§ăăăăžăă č¤ć°ăŽăăĄă¤ăŤăćĺŽă§ăăăăĄăăăăăăăŻçšĺŽăŽé ĺşă§ăĄăăˇăĽĺăăăä˝ăćĺŽăăŞăĺ ´ĺăŻăăăŠăŤăă§ăăăăŤăŞăăžăă ă¤ăžăăComposečŞä˝ăŽăăăŤčŚăăbakeăłăăłăăĺŽčĄăăĺ ´ćă§ĺŠç¨ĺŻč˝ăŞăăăŠăŤăăŽăăĄă¤ăŤă調ăšăžăăă
ă茧ăŽéăăç§ăŻHCLăŽéŁăŤĺ°ăăŞăăźăăć˛ăăŚăăžăăăŞăăŞăăăăăăăŽčŹćźă§ç§ă芹ăăă¨ă ăăă§ăă HCLăŻăăŽç¨ŽăŽăă¨ăŤĺŻžăăŚé常ăŤĺźˇĺă§ăă ăăăăŁăŚăHCL形ĺźăŻăTerraformăŽăăăŞăăăăŻĺŽçžŠăäťăăŚăľăăźăăăžăă ăăăŻăťă¨ăăŠĺăăă¨ă§ăă ĺ¤ć°ăăăŤăĺźć°ă¨ăăŚä˝żç¨ăăăă¨ăăDockerfile ă Bake ăăĄă¤ăŤăŽĺąć§ĺ¤ă§ĺ¤ć°ăčŁéăăăă¨ăă§ăăžăă ä¸čŹçăŞç´ç˛ăŞäşĺžé˘ć°ăŽăťăăăăăăžăă go-cty ă§ĺŠç¨ĺŻč˝ăŞäťťćăŽé˘ć°ă使ç¨ă§ăăžăăăçŹčŞăŽăŚăźăśăźĺŽçžŠé˘ć°ă使ç¨ăăăă¨ăă§ăăžăă
HCL ĺŽçžŠăŽäžăčŚăŚăżăžăăăă ăăăŻčŚăçŽăŞăŽă§ăĺşćŹçăŤăŤăšăżă ăăŤăă°ăŤăźăăŽăľăăźăăčż˝ĺ ăăăžăă ă茧ăŽă¨ăăăç°ăŞăăżăźă˛ăă ă°ăŤăźăă使ç¨ăăŚăăă¸ă§ăŻăĺ ¨ä˝ă§ăłăźăăĺĺŠç¨ăăćšăéŠĺă§ăă ăżăźă˛ăăăŻăăă¨ăă°ăă¤ăĄăźă¸ăă¤ăĄăźă¸ all ăăăăă°ăŤăźăă§ Docker ăăŤă ăłăăłăăŤćĺŽăăăŽă¨ĺăăŞăăˇă§ăłăć㤠1 ă¤ăŽ Docker ăăŤăĺźăłĺşăăĺć ăăŚăăăă¨ăăăăăžăă
ă茧ăŽă¨ăăădefaultă¨ĺźă°ăăăăŽăŻătargetăŞăăˇă§ăłă使ç¨ăăŚăżăźă˛ăăăŽăŞăšăăćĺŽă§ăăžăă ăżăźă˛ăăăŻăinherit ăŞăăˇă§ăłăăżăźă˛ăăăŽăŞăšăăŤč¨ĺŽăăăă¨ă§ăăăŤă ăŞăăˇă§ăłăçśćżăăăă¨ăă§ăăžăă ăă¨ăă°ăçťĺăŻăăšăŚçťĺăŽ1ă¤ăăçśćżăăăăăăçťĺăŽăŞăăˇă§ăłăăçśćżă§ăăžăă ăăăŻăTerraformă¨é常ăŤăăäźźăŚăăăĺ¤ć°ăĺŽçžŠăăćšćłăćäžăăŚăăžăă ăăăăŁăŚăHCLăăĄă¤ăŤĺ˝˘ĺźăŻăăżă°äťăăŽăăŽăăăŞĺ¤ć°ăăăăŻĺŽçžŠăăľăăźăăăŚăăžăă ăžăăçžĺ¨ăŽç°ĺ˘ăŤăăŁăŚćäžăăăĺ¤ăćă¤ĺ¤ć°ăĺŽçžŠăăăăăŤă使ç¨ă§ăăžăă ăăăăŁăŚăç°ĺ˘ĺ¤ć°ă使ç¨ăăă¨ăăăŽĺ¤ăŻĺ¤ć°ĺ¤ć°ăŤç˝Žăćăăăăžăă
揥ăŤăăă¨ăă°ăă¤ăĄăźă¸ăăăšăŚăżăźă˛ăăăŤăăŤăăăăă¨ćăăžăă ç§ăŻăă ă¤ăĄăźă¸ăĺŽçžŠăăĺż čŚăăăăžă ăăšăŚăŽDocker buildx bake image allăăăă ăă§ăă ăăăŻăžăăŤç§ăćăăăŽăć§çŻăăžăă ăăăŻăĺ é¨ăŤăźăăĺšçĺăăäťăŽç°ĺ˘ăŤć´ťç¨ăăăŽăŤé常ăŤäžżĺŠă§ăă
ç°ĄĺăŞăăŽăčŚăŚăżăžăăăâĺăŽăăŽăŻĺˇ¨ĺ¤§ăŞăăŽă§ăăă ĺç §ăăŠăŽăăăŤčĄăăăŚăăăă大ăžăăŤç˘şčŞă§ăăžăă ăăă§ăŻăĺşćŹçăŞăŻăźăŻăăăźăŤćťăăžăăăă ç§ăăĄăŻĺ§ăžăă§ăăăBakeăŽĺŽçžŠă¨ăŻăźăŻăăăźăŤăăžăă ăăă§ăŻăăă¤ăŻă˘ăŻăˇă§ăłă ăă使ç¨ăăĺż čŚăăăăžăă ăăŽăăăBake ăŤăă˘ăŻăˇă§ăłăăăăžăăăăăăŻăżă°ăŽä¸ăŤăŻăžăŁăăăăăžăăă ăăăˇăĽă使ç¨ăăă ăă§ăăăăŠăŤăă§ăŻăăăăŤčĄ¨ç¤şăăăŚăăçťĺĺă使ç¨ăăăžă crazymax.comă ăăăˇăĽăżă°ăăăŽçťĺăč¨ĺŽăăžăă
ăăăčŚăŚăăăŽă§ăă˘ăŻăˇă§ăłăŽĺ é¨ăŤčĄ¨ç¤şăăăćŁčŚčĄ¨çžăăăăŽă§ăä˝ă辡ăăŁăŚăăăŽăăä˝ăčć ŽăăăŚăăăŽăăäžăă°ĺ¤ć°ă渥ăăăŚăăăŽăăăăăăžăă ăăŽăăăăăŤăăăăˇăĽăăă¤ăŻă˘ăŻăˇă§ăłăŽĺ é¨ă§ç˘şčŞă§ăăăăăăăăˇăĽăăăˇăĽăăŞăłăăżă°ă使ç¨ăăŚćŁčŚčĄ¨çžă示ăăŚăăžăă
äťăăă¤ăŻăŤă¤ăăŚç§ĺŻă交ăăŚă芹ăăăăă¨ćăăžăă CIăŤé˘ăăćŞăć ŁčĄăĺ¤ăăăŚăćŠĺŻć ĺ ąăčłć źć ĺ ąă渥ăăăăŤăăŤăĺźć°ă使ç¨ăăŚăăäşşăčŚăăăžăă ă ăăăăăăŻćă çťĺčŞä˝ăŽä¸ăŤăăăăăăăŞăăŽă§ăčŻăăăăžăăă ăă ăăăŤăćă§ăŻăăăžăăă ăăăăŁăŚăăăŽăăăŞĺ ´ĺăŻăăăŤăćăŤăˇăźăŻăŹăăă使ç¨ăăĺż čŚăăăăžăă ăˇăźăŻăŹăăăŻăăă使ç¨ăăç°ĄĺăŞćšćłă§ăă
ĺ ăŤé˛ăĺăŤăăăă¸ă§ăŻăăăăšăăăăăăŤDockerfileăŤć°ăăăšăăźă¸ăčż˝ĺ ăăăă¨ćăăžăăăBakeĺŽçžŠĺ ăŤć°ăăăżăźă˛ăăăčż˝ĺ ăăăă¨ăă§ăăžăă ăăăŚăăăŽç´ĺăŤăăăŤăă¨ăăăˇăĽăŽĺăŤăăăŽăăă¸ă§ăŻăăăăšăăăăăŽă§ăă ăăăăĺéĄăăăăžăă ăăšăăŤăŻ GitHub API ă¸ăŽă˘ăŻăťăšăĺż čŚă§ăăăă¨ăçĽăŁăŚăăžăăăă䝼ĺ¤ăŽĺ ´ĺăŻăšăăăăăăžăă
ăŠăăăăăăăăăŽăŻăźăŻăăăźăŤGitHubăăźăŻăłă渥ăĺż čŚăăăăžăă ăŠăăăă°ăăă§ăă? ăăăŤăŻăăŤăćăŽăˇăźăŻăŹăăăčż˝ĺ ă§ăăžăă ĺşćŹçăŤăăăăŻç§ăŽăă¤ăŻăŽĺŽçžŠă§ăŻăĺ Źéăăăç§ĺŻăĺŽçžŠăăă ăă§ăă ă ăăç§ăŻç°ĺ˘ĺ¤ć°name github tokenă使ç¨ăăŚăˇăźăŻăŹăăĺghăăźăŻăłăĺ Źéăăăă¨ćăăžăă ăăăŻăsecret ăăŠă°ă使ç¨ăăĺ ´ĺă¨ĺăă§ăbuild ăłăăłăă§ă使ç¨ăăžăă ä˝ăĺ¤ăăăŞăă ăžăăDockerfileăçĽăŁăŚăăă¨ăăăšăăĺŽčĄăăă¨ăăŤăăăăŽăˇăźăŻăŹăăăç§ťĺă§ăăžăă ăžăăăăŽç°ĺ˘ĺ¤ć°githubăăźăŻăłăŻăăăšăĺ ă§ä˝żç¨ăăăăăŽă使ç¨ă§ăăžăă ćĺžăŤăăŻăźăŻăăăźă§ăŻăćäžăăă GitHub ăăźăŻăł ăˇăźăŻăŹăăă使ç¨ă㌠GitHub ăăźăŻăłăč¨ĺŽăăžăă ă ăăăăăŻééăăăăăăăăăŻç§ăŽăłăłăăĺ ă§ç´ćĽä˝żç¨ăăăă¨ăă§ăăžăă ă ăăăăăăŻăăŞăäžżĺŠă§ăă ăăăŻăăăŽĺŽčĄĺ˝äť¤ă§ăŽăżä˝żç¨ăăăăăăĺŽĺ ¨ă§ăă ćçľçăŞçťĺăŤăŻĺŤăžăăžăăă ăăŽçťĺăăăăˇăĽăăăă¨ăăŻăăăŽăšăăźă¸ăŽăżăŤä˝żç¨ăăăžăă
ăłăłăăăăźăšăŽăŻăźăŻăăăź
ăăŽăă¨ăĺżľé ăŤç˝ŽăăŚăCIă§ăłăłăăă使ç¨ăăăă¨ăŽĺ¤§ăăŞĺŻč˝ć§ăć˘ăăĺ é¨ăŤăźăă¨CIç°ĺ˘éăŽç§ťć¤ć§ăĺä¸ăăăćšćłăć˘ăăă¨ăă§ăăžăă ăłăłăăă使ç¨ăăă¨ç§ťć¤ć§ăĺä¸ăăăăăăłăłăăă使ç¨ăăă¨ăăčăćšă§ăă ăăăŚăäžăă°ăć°ăăăżăźă˛ăăăčż˝ĺ ăă㨠- ăăă lint ă¨ĺźăśăă¨ăŤăăžă - ăăŽăăăç§ăŽăă㯠ăăĄă¤ăŤăŻĺˇ¨ĺ¤§ăŤăŞăĺ§ăăžăăăăăăŻäžżĺŠă§ăă ĺ°ćĽĺż čŚăŤĺżăăŚăăăĺĺŠç¨ăăDockerfileăŤălintăšăăźă¸ăä˝ćă§ăăžăă ăăăŚăăăăŻç§ăŽăłăźăă大ä¸ĺ¤ŤăăŠăăă確čŞăăăăăŤgolang CI lintăĺŽčĄăăă ăă§ăă ăăăŚăç§ăŽĺŽçžŠă§ăŻăăŻăźăŻăăăźă§ăć°ăălintăšăăăăčż˝ĺ ăăžăă
äťăăă°ăčŚăă¨ăç§ăŽlintăšăăźă¸ăééăăŚăăăă¨ăăăăăžăă 大ä¸ĺ¤ŤăŞăŽăŤăä˝ăĺ¤ăŞă¨ăăăăăăžăă çťĺăă¨ăŻăšăăźăăăă¨ăăăăŽăăăăžăăăç§ăŻăăăćăă§ăăžăăă ç§ăŻăă 糸ăăăŽé¨ĺăĺăăăăă ăă§ăă ăă ăăăăăŠăŤăă§ăŻăăăŤăăłăăłăăĺŽčĄăăă¨ăăăŤăăčĄăăăłăŤă¤ăĄăźă¸ăăăźăŤăŤăšăă˘ăŤć¸ăčžźăžăăžăă ăă ăăä˝ăă¨ăŻăšăăźăăăăŤăăŤăă§ăăžăă ăăăčĄăăŤăŻăăăŽăżăźă˛ăăăĺéżăăŚăăăŁăăˇăĽăŽăżăŽĺşĺăżă¤ăăŽăżă使ç¨ă§ăăžăă ăăŽĺşĺăżă¤ăăŻăĺşćŹçăŤăăŤăçľćăĺşĺăăăŽăç ´ćŁăăžăăăăăŽçšĺŽăŽăżăźă˛ăăăŽăăŁăăˇăĽăć¸ăčžźăżăžăă ăăšăăŽăăŽăŤă¤ăăŚăĺăăă¨ăăăĺż čŚăăăăžăă ĺăŤăăăĺżăăŚăăăŽă§ăăăšăăăă¨ăä˝ăĺşĺăăăžăăă ĺ°ćĽăăăšăĺŽçžŠăă¨ăŻăšăăźăăăŚăăłăźăăăŤăăăăăŞăŠăŤć稿ăăăă¨ăăžăă ăăŤăçľćăă¨ăŻăšăăźăăăăă¨ăă§ăăžăă ăăăăŁăŚăćéăçĄé§ăŤăăăăŞăĺ ´ĺăăăšăăźă¸ă§ăăšăăĺŽčĄăă䝼ĺ¤ăŤä˝ăĺşĺăăĺż čŚăăŞăĺ ´ĺăŤäžżĺŠă§ăă
ă茧ăŽă¨ăăăĺ ąéăŽăăżăźăłăăăăžăă ä˝ăăčż˝ĺ ăăăăłăŤăăŻăźăŻăăăźăŤć°ăăăšăăăăčż˝ĺ ăăăžăă ăăŽăăăăŻăźăŻăăăźăŻé常ăŤĺ¤§ăăăŞăĺŻč˝ć§ăăăăžăă ăăŽĺ ´ĺăćŻĺć°ăăăšăăăăĺż čŚă§ăă ăă¨ăă°ăăăă§ăŻăăăšă㨠lint ăă°ăŤăźăĺă§ăăžăăăăăŻăăăŽćé ăŽçŽçăăłăźăăŽć¤č¨źă§ăăăăă§ăă äťă§ăăăă¨ăŻăăăăăĺé¤ăăăăĄăăˇăĽĺăăŚăć¤č¨źăăăăŽă ăăç¨ćăăć¤č¨źăĺźăłĺşăăă¨ăă§ăăăŽă§ăăăăĺé¤ăăăă¨ă§ăă
ăăźăŤăŤç°ĺ˘ăŽĺ¨ăă§ăŻăăć˝čąĄĺăăăŚăăăăăăŚăźăśăźăŤéçĽăăăăć¤č¨źăĺŽčĄăăăăăăă¨ăă§ăăžăă ăăăŻăăŞăăŽăăăŤăăšăŚăčĄăăžăă ć示ăăăăăăšăăĺŽčĄăăăălintăĺŽčĄăăăăäťăŽä˝ăăĺŽčĄăăĺż čŚăŻăŞăăŽă§ăć¤č¨źăăă ăă§çľăăă§ăă ăăĄăăăBuildKităŽăăăă§ä¸ŚĺăŤĺŽčĄăăăăăămakeăăĄă¤ăŤăŽăăăŞĺśĺžĄăŻăăăžăăă ăăŽĺ ´ĺă丌ĺăŤĺŽčĄăăăžăă ćŁčŚăŽčĄ¨çžă§ăăăăăăăŤă严ćšăĺźăłĺşăăă¨ăăăăăžăă
ăăŽăăźăŤăŽăăŽăťăŻăˇă§ăłăŤă¸ăŁăłăăăăăŞăăŁăăŽă§ăăăăăăŻé˘ç˝ăăăăăăŞăă¨ćăăžăă 䝼ĺăŻăăăšăă¨ăŞăłăăŽé¨ĺăŤă¤ăăŚăŻăĺăăŠăłăăźä¸ă§ĺä˝ăăă¨č¨ăŁăŚăăžăăă ăăăŻäžżĺŠă§ăăăăă¨ăă°ăăăšăăăŞă˝ăźăšăŽĺśç´ăŤăŞăăă¨ăăăăŁăŚăăĺ ´ĺ (CPU ă RAM ă使ăăăăĺ ´ĺ) ă§ăăăăăŠăłăăźéă§ĺĺ˛ă㌠GitHub ăŻăźăŻăăăźăĺŠç¨ăăăĺ ´ĺăŞăŠă§ăă ăăăč§ŁćąşăăăŤăŻăăżăźă˛ăăăŽă°ăŤăźăăĺćŁăăăăă¨ăă§ăăăŽă§ăć¤č¨źăżăźă˛ăăăăăăžăăăăăăăŠăłăăźĺ ¨ä˝ăŤĺćŁăăăăŽă§ăĺăă¸ă§ăăŽä¸é¨ă§ăŻăŞăăĺŽéăŤăŻ2ă¤ăŽă¸ă§ăăŤĺćŁăăžăă ăăăč§ŁćąşăăăăăŤăĺă大ăăŞă°ăŤăźăăçśćăăŞăăăă°ăŤăźăăżăźă˛ăăă¨č¤ć°ăŽăŠăłăăźăĺćŁăăăăă¨ăă§ăăžăă ăăăăŁăŚăăăźăŤăŤăăăźăŻĺăăžăžă§ăăŻăźăŻăăăźĺ ă§ĺ°ăĺ¤ć´ăăă ăă§ăă ăăŽăăăčĄĺăĺçăŤč¨ĺŽăăăăăŽGitHubă˘ăŻăˇă§ăłăŽăăżăźăłăăăăžăă
ăăăŻĺ°ăä¸ĺŻč§Łă§ăă äťĺžăŻăă¤ăŻă˘ăŻăˇă§ăłă使ç¨ăăŚăăă使ç¨ăăăăŽă§ăăăăčĄăĺż čŚăŻăăăžăăă čŞĺçăŤĺźăłĺşăăăč¤ć°ăŽăŠăłăăźăä˝ćăăžăă ăăăä˝ăăăăăăăŽĺ ´ĺăă茧ăŽă¨ăăăvalidateă°ăŤăźăă§bakeăłăăłăă使ç¨ăăžăă ăăŽă°ăŤăźăă§ä˝żç¨ĺŻč˝ăŞăżăźă˛ăăăŽăŞăšăăĺ°ĺˇăăăăŽćşĺăăăă¸ă§ăăŽçšĺŽăŽăżăźă˛ăăĺşĺĺ ăŤé 罎ăăăăŽĺžăăżăźă˛ăăĺ¤ăĺŤăăăăŞăăŻăšă使ç¨ă§ăăžăă ăăăŻă使ç¨ĺŻč˝ăŞăżăźă˛ăă(testă¨lint)ăŽăŞăšăă§ăăăăăĺăŠăłăăźă§ä¸ĄćšăŽć¤č¨źăĺŽčĄăăăžăă ăăăăŁăŚă1ă¤ăŽăŠăłăăźă§ăăšăăăĺĽăŽăŠăłăăźă§ăŞăłăăăžăă
ăăăăăéŠĺăŤčĄ¨çžăăăŽăŻătest 㨠lint ăŽä¸Ąćšă丌čĄăăŚĺŽčĄăăĺä¸ăŽć¤č¨źăčż˝ĺ ăăĺă§ăăăçžĺ¨ăŻăŠăłăăźéă§ĺĺ˛ăăăŚăăăăăćéăăăăăžăăă çš°ăčżăăŤăŞăăžăăă 57 ç§ă§ăŻăŞăăĺăŠăłăçŹčŞăŽăŠăłăăźă§ĺŽčĄăăăăă§ăă ă¤ăžăăăăăŻăăŤăăé ĺ¸ăăćšćłă§ăă ăăăĽăĄăłăăŤăŻăYouTube ăăŠăăăăŠăźă ă¤ăĄăźă¸ăŽăăŤăăé ĺ¸ăăäžăăăăžăă ăă¨ăă°ă5ă¤ăŽăăŠăăăăŠăźă ă5ă¤ăŽăŠăłăăźăŤĺćŁăăăă¨ăĺăăŠăłăăźă§ăăăčĄăă¨ăŞă˝ăźăšă大éăŤćśč˛ťăăĺŻč˝ć§ăăăăăăăăăĺĺ˛ăăăă¨ăă§ăăžăă ăžăăĺĽăŽăŚăźăšăąăźăšă¨ăăŚăĺ¤ăăŽäşşăăŹă¸ăšăăŞăŤă¤ăĄăźă¸ăăăăˇăĽăăăăăŽä˝ăăć§çŻăăžăă ăăăŻĺ¤ăăŽäşşăăăŁăŚăăăă¨ă§ăăăç§ăăĄăăă¤ăăŞăĺ ĽăăŚăăăŽăă¤ăăŞăăăăˇăĽăăŚăŞăŞăźăšăŞăŠăĺžăăă¨ćăŁăŚăăžăă ăăăăŁăŚăĺŽéăŤăŻBuildKită使ç¨ăăŚăăăčĄăăă¨ăă§ăăžăă ĺşĺăĺ¤ć´ăăŚăăŹă¸ăšăăŞă§ăŻăŞăĺşĺăăăăăăŻăŠă¤ă˘ăłăă§ăăźăŤăŤăŤĺşĺăăăă¨č¨ăă ăă§ăă ăăŽĺ ´ĺăăă¤ăăŞă¨ĺźă°ăăăšăăźă¸ăăăă¤ăăŞăăăźăŤăŤ ăăĄă¤ăŤ /bin ăŤĺşĺăăăžăă ăăă§ăĺ°ç¨ăŽăŻăźăŻăăăźăä˝ćăăžăă ăăŽăŻăźăŻăăăźăŻăăżă°ăăăăˇăĽăăăă¨ăăŤăăŞăŹăźăăăăăŽĺžăăăŽăă¤ăăŞăĺŽäşăăă¨ăăŤăGitHubăŞăŞăźăšăä˝ćăăŚăăŽăă¤ăăŞăăăăˇăĽăăžăă
ăăăŻăăă¨ăă°ăč¤ć°ăŽăăŠăăăăŠăźă ăăăăŞăŠăäťăŽăŚăźăšăąăźăšă§čĄăăă¨ăă§ăăžăă ăăŽĺ ´ĺăĺăăă¨ăă§ăăăŽă§ăăăŤăăăŠăăăăŠăźă ăăŤăăĺŽčĄăăăăšăŚăŽăă¤ăăŞăć˝ĺşăăŚăGitHubăŞăŞăźăšĺ ăŤç´ćĽăăăˇăĽă§ăăžăă ăăăăŁăŚăćçľçăŞă˘ăŻăˇă§ăłă使ç¨ăăĺż čŚăăăăžăă ăăŽăťăŻăˇă§ăłă§ăăDockerfilečŞä˝ăŽä¸ăŤĺ Ľăăăă¨ăă§ăăžăăăGitHub APIă¨é俥ăăĺż čŚăăăăăăăăĺ¤ăăŽä˝ćĽăĺż čŚăŤăŞăăžăă ăăăŻăăă§ăŤĺŠç¨ĺŻč˝ăŞGitHubă˘ăŻăˇă§ăłă使ç¨ăăă¨ăăç°ĄĺăŞăăŽă§ăă
çľčŤ
äťćĽăç§ăăĄăŻä˝ăčŚăžăăă? ăăŁăăˇăĽă¨ăŻăšăăźăżăźă使ç¨ăăăżă°ăčŞĺĺăăăăăŽăăžăăžăŞă˘ăźăăăŻăăŁăă¤ăăŠă¤ăłćŚçĽă使ç¨ăăŚĺšççăŞă¤ăĄăźă¸ăä˝ćăăćšćłă使ç¨ăăžăăă ç§ăăĄăŻăăŻăźăŻăăăźăç°Ąç´ ĺăăCIăŽăŞăźăăźăŠă¤ăăć¸ăăăăăŤăBakeă¨ăăŤăăˇăźăŻăŹăăă使ç¨ăăŚăBakeăŤă¤ăăŚĺ¤ăăŽăă¨ă芹ăăžăăă ăžăăăăźăŤăŤç°ĺ˘ă¨CIç°ĺ˘éăŽç§ťć¤ć§ăĺä¸ăăăăăă ăăŤăłăłăăă使ç¨ăăćšćłă誏ćăăžăă
ćĺžăŤăăłăłăăă使ăŁăăăă¸ă§ăŻăăăăă¤ăăăăžăă ăă¨ăă°ăbuildx ăăăăžăă ăăĄăăăăăŽç¨ŽăŽăăżăźăłă使ç¨ăăă¨ăăŻăăšăłăłăă¤ăŤăăăłăăźăŽć´ć°ăăăłăăźăŽăă§ăăŻăŞăŠăĺ¤ăăŽăă¨ăčĄăăă¨ăă§ăăžăă 糸ăăăăăăžăă ć°ăăăăżăźăłă使ç¨ăăăĄăăŞăăŻă使ç¨ăăŚăĺ¤ăăŽăă¨ăă§ăăžăă Bake ĺ ăŤăŻăăă¤ăăŽăĄăăŞăŻăšăăăăžăă ăăŽăăŹăźăłăăźăˇă§ăłă§ăŻĺăä¸ăăžăăă§ăăăăăăăŤă¤ăăŚăŻç´ ć´ăăăčłćăăăăžăă ăăăăŁăŚăäťćĽăˇăăăăGitHubă˘ăŻăˇă§ăłăŻăBakečŞä˝ăŽĺ é¨ă§ĺăăăŽăăˇăăă§ăăžăă ăăăŻäžżĺŠăŞăă¨ă§ăăăăăŽăăă¸ă§ăŻăĺ ă§ăăăčĄăŁăŚăăžăă ă¨ăăăăă§ăăăă ăă§ăă ăăăă¨ăăăăăžăă
ăăăŤčŠłăă
- GitHub ă˘ăŻăˇă§ăł: https://docs.docker.com/build/ci/github-actions/
- ăăăŤăźăŻĺăăŚă§ăă? ĺ§ăăžăăăă
- Docker ăăšăŻăăăăŽćć°ăŞăŞăźăšăĺ Ľćăăžăă
- 質ĺăăăăžăă? Docker ăłăăĽăăăŁăăćäźăăăžăă
- Docker Newsletter ăčłźčŞăăŚăă ăăă