ã¯ã©ãŠããã«ãã®æé©å
Docker Build Cloudã¯ãªã¢ãŒãã§ãã«ããå®è¡ãããã«ããéå§ãããã·ã³äžã§ã¯å®è¡ãããŸãããããã«ãããã¯ã©ã€ã¢ã³ããšãã«ããŒã®éã§ãã¡ã€ã«è»¢éããããã¯ãŒã¯çµç±ã§è¡ãããŸãã
ãããã¯ãŒã¯çµç±ã®ãã¡ã€ã«è»¢éã¯ãããŒã«ã«è»¢éã«æ¯ã¹ãŠé 延ã倧ããã垯åå¹ ãäœããªããŸããDocker Build Cloudã«ã¯ãããã軜æžããããã®ããã€ãã®æ©èœããããŸãïŒ
- ãã«ããã£ãã·ã¥ã®ããã«ã¢ã¿ãããããã¹ãã¬ãŒãžããªã¥ãŒã ã䜿çšããããããã£ãã·ã¥ã®èªã¿æžããéåžžã«é«éã§ãã
- ãã«ãçµæãã¯ã©ã€ã¢ã³ãã«ããŒãããéã«ã¯ã以åã®ãã«ããšæ¯èŒããŠå€æŽãããã¬ã€ã€ãŒã®ã¿ããã«ãããŸãã
ãããã®æé©åã«ããããããããªã¢ãŒãã§ã®ãã«ãã§ã¯ããããžã§ã¯ãã倧èŠæš¡ã§ãã£ããããããã¯ãŒã¯æ¥ç¶ãé ãå Žåã«ãã³ã³ããã¹ã転éãã€ã¡ãŒãžã®ããŒããé ããªãããšããããŸãã以äžã®æ¹æ³ã§ã転éãããå¹ççã«æé©åããããšãã§ããŸãïŒ
- Dockerignoreãã¡ã€ã«
- ã¹ãªã ããŒã¹ã€ã¡ãŒãž
- ãã«ãã¹ããŒãžãã«ã
- ãã«ãäžã«ãªã¢ãŒããã¡ã€ã«ãååŸ
- ãã«ãã¹ã¬ããããŒã«
ãã«ãã®æé©åæ¹æ³ã«ã€ããŠè©³ããã¯ããã«ãã®ãã¹ããã©ã¯ãã£ã¹âãã芧ãã ããã
Dockerignoreãã¡ã€ã«
.dockerignore
ãã¡ã€ã«ã䜿çšãããšããã«ãã³ã³ããã¹ãã«å«ããããªãããŒã«ã«ãã¡ã€ã«ãæ瀺çã«æå®ã§ããŸãã.dockerignore
ãã¡ã€ã«ã«æå®ããglobãã¿ãŒã³ã«äžèŽãããã¡ã€ã«ã¯ããªã¢ãŒããã«ããŒã«è»¢éãããŸããã
.dockerignore
ãã¡ã€ã«ã«è¿œå ããããã®ã®äŸãšããŠã¯ã次ã®ãã®ããããŸãïŒ
.git
â ããŒãžã§ã³ç®¡çã®å±¥æŽããã«ãã³ã³ããã¹ãã«éä¿¡ããªããããã«ããããã«ãã¹ãããã§git rev-parse
ãªã©ã®Gitã³ãã³ããå®è¡ã§ããªããªãããšã«æ³šæã- ãã€ããªãªã©ã®ãã«ãææç©ãå«ãŸãããã£ã¬ã¯ããªãéçºäžã«ããŒã«ã«ã§çæããããã«ãææç©ã
- ããã±ãŒãžãããŒãžã£ã®ãã³ããŒãã£ã¬ã¯ããªïŒäŸïŒ
node_modules
ïŒã
äžè¬çã«ã.dockerignore
ãã¡ã€ã«ã®å
容㯠.gitignore
ãã¡ã€ã«ã®å
容ãšäŒŒããã®ã«ãªãã§ãããã
ã¹ãªã ããŒã¹ã€ã¡ãŒãž
Dockerfile㧠FROM
åœä»€ã«æå®ããã€ã¡ãŒãžãå°ããªãã®ã«ããããšã§ãæçµçãªã€ã¡ãŒãžã®ãµã€ãºãåæžã§ããŸããAlpineã€ã¡ãŒãžâ ã¯ãLinuxã³ã³ããã§æåŸ
ããããã¹ãŠã®OSãŠãŒãã£ãªãã£ãæäŸãããæå°éã®Dockerã€ã¡ãŒãžã®è¯ãäŸã§ãã
ãŸããç¹å¥ãª scratch
ã€ã¡ãŒãž ããããããã¯äœãå«ãã§ããŸãããäŸãã°ãéçã«ãªã³ã¯ããããã€ããªã®ã€ã¡ãŒãžãäœæããã®ã«åœ¹ç«ã¡ãŸãã
ãã«ãã¹ããŒãžãã«ã
ãã«ãã¹ããŒãžãã«ãâ ã䜿çšãããšããã«ãã䞊è¡ããŠå®è¡ãããããããã«ããé«éã«ãªããŸãããŸããæçµçãªã€ã¡ãŒãžãå°ããããããšãã§ããŸããDockerfileãèšè¿°ããéã¯ãæçµçãªã©ã³ã¿ã€ã ã¹ããŒãžãå¯èœãªéãå°ããªããŒã¹ã€ã¡ãŒãžã䜿çšããããã°ã©ã ã®å®è¡ã«å¿ èŠãªãªãœãŒã¹ã®ã¿ãå«ãããã«ããŸãã
ãŸããDockerfileã® COPY --from
åœä»€ã䜿çšããŠãä»ã®ã€ã¡ãŒãžãã¹ããŒãžãããªãœãŒã¹ãã³ããŒâããããšãã§ããŸãããã®ãã¯ããã¯ã«ãããæçµã¹ããŒãžã®ã¬ã€ã€ãŒã®æ°ããµã€ãºãåæžã§ããŸãã
ãã«ãäžã«ãªã¢ãŒããã¡ã€ã«ãååŸ
å¯èœãªå Žåããã¡ã€ã«ããã«ãã³ã³ããã¹ãã«å«ããã®ã§ã¯ãªãããã«ãäžã«ãªã¢ãŒãããååŸããæ¹ãæãŸããã§ããDocker Build CloudãµãŒããŒäžã§çŽæ¥ãã¡ã€ã«ãããŠã³ããŒãããæ¹ãããã«ãã³ã³ããã¹ãã§ãã¡ã€ã«ã転éãããããé«éã«ãªãå¯èœæ§ããããŸãã
Dockerfileã® ADD
åœä»€ããwget
ã rsync
ãªã©ã®ããŒã«ã䜿ã£ã RUN
åœä»€ã䜿çšããŠããã«ãäžã«ãªã¢ãŒããã¡ã€ã«ãååŸã§ããŸãã
ãã«ãã¹ã¬ããããŒã«
ãã«ãæ瀺ã§äœ¿çšããããŒã«ã®äžã«ã¯ãããã©ã«ãã§è€æ°ã®ã³ã¢ã䜿çšããªããã®ããããŸããäŸãã°ãmake
ã¯ããã©ã«ãã§ã·ã³ã°ã«ã¹ã¬ããã䜿çšããŸãããmake --jobs=<n>
ãªãã·ã§ã³ãæå®ãããšãã«ãã¹ã¬ããã§å®è¡ã§ããŸãããã®ãããªããŒã«ã䜿ã£ããã«ãã¹ãããã§ã¯ã䞊ååããŠå®è¡ãæé©åã§ãããã©ãã確èªããŠãã ããã