ã¢ããªããžããªã®è©±é¡ã¯äœåºŠãè°è«ãããŠãããéåžžãéåžžã«æŽ»çºãªè«äºãåŒãèµ·ãããŠããŸãã äœæããããšã§
werf ã®æè¿ã®ã¢ããªããžããªã®ãµããŒãã¯ããã®è¯ãäŸã§ãã ããããã®åã«ããã®ãµããŒããäžè¬çã« werf ã®äœ¿çšã«ã©ã®ããã«é¢é£ããŠããã®ãããã㊠Docker ã¬ãžã¹ããªããããšã©ã®ãããªé¢ä¿ãããã®ãââãç解ããŸãããã
åé¡
ãããªç¶æ³ãæ³åããŠã¿ãŸãããã å瀟ã«ã¯ç¬ç«ãããããžã§ã¯ãã«åãçµãã§ããå€ãã®éçºããŒã ããããŸãã ã»ãšãã©ã®ã¢ããªã±ãŒã·ã§ã³ã¯ Kubernetes äžã§å®è¡ããããããã³ã³ããåãããŸãã ã³ã³ãããã€ã¡ãŒãžãä¿åããã«ã¯ã¬ãžã¹ããªïŒã¬ãžã¹ããªïŒãå¿
èŠã§ãã ãã®ãããªã¬ãžã¹ããªãšããŠãå瀟ã¯åäžã®ã¢ã«ãŠã³ã㧠Docker Hub ã䜿çšããŠããŸãã COMPANY
ã ã»ãšãã©ã®ãœãŒã¹ ã³ãŒã ã¹ãã¬ãŒãž ã·ã¹ãã ãšåæ§ã«ã Docker Hub ã§ã¯ãã¹ãããããªããžããªéå±€ãèš±å¯ãããŸããã ãã®ãã㪠COMPANY/PROJECT/IMAGE
ã ãã®å ŽåâŠãããžã§ã¯ãããšã«åå¥ã®ã¢ã«ãŠã³ããäœæããã«ããã®å¶éä»ãã§éã¢ããªã·ã㯠ã¢ããªã±ãŒã·ã§ã³ãã¬ãžã¹ããªã«ä¿åããã«ã¯ã©ãããã°ããã§ãããã?
ãããããããã§èª¬æãããŠããç¶æ³ã¯çŽæ¥ç¥ã£ãŠãã人ãããã§ãããããäžè¬çãªã¢ããªã±ãŒã·ã§ã³ ã¹ãã¬ãŒãžã®æŽçã®åé¡ãèããŠã¿ãŸãããã äžèšã®äŸãš Docker Hub ãåç
§ããå¿
èŠã¯ãããŸããã
ãœãªã¥ãŒã·ã§ã³
ã¢ããªã±ãŒã·ã§ã³ã®å Žå ã¢ããªã·ãã¯ãXNUMX ã€ã®ã€ã¡ãŒãžã§æäŸãããå Žåã質åã¯ãªããåã«ã€ã¡ãŒãžããããžã§ã¯ãã®ã³ã³ãã㌠ã¬ãžã¹ããªã«ä¿åããŸãã
ã¢ããªã±ãŒã·ã§ã³ãè€æ°ã®ã³ã³ããŒãã³ããšããŠè¡šç€ºãããå Žåã ãã€ã¯ããµãŒãã¹ããã®å Žåã¯ãç¹å®ã®ã¢ãããŒããå¿
èŠã§ãã XNUMX ã€ã®ã€ã¡ãŒãžã§æ§æãããå
žåç㪠Web ã¢ããªã±ãŒã·ã§ã³ã®äŸ: frontend
О backend
- å¯èœãªãªãã·ã§ã³ã¯æ¬¡ã®ãšããã§ãã
- ã€ã¡ãŒãžãå¥ã®ãã¹ãããããªããžããªã«ä¿åããŸãã
- ãã¹ãŠã XNUMX ã€ã®ãªããžããªã«ä¿åããã¿ã°å ã®ã€ã¡ãŒãžåã次ã®ããã«èæ ®ããŸãã
NB: å®éã«ã¯ãå¥ã®ãªããžããªã«ä¿åãããšããå¥ã®ãªãã·ã§ã³ããããŸãã PROJECT-frontend
О PROJECT-backend
ããã ãããµããŒããçµç¹ããŠãŒã¶ãŒéã®æš©å©ã®åé
ãè€éã§ãããããèæ
®ããŸããã
ã¯ãŒããµããŒã
åœåãwerf ã¯ãã¹ãããããªããžããªã«éå®ããŠããŸãããã幞ããªããšã«ãã»ãšãã©ã®ã¬ãžã¹ããªããã®æ©èœããµããŒãããŠããŸãã ããŒãžã§ã³ããéå§
ãªãã·ã§ã³ã§å®è£
å¯èœ --images-repo-mode=multirepo|monorepo
ïŒããã©ã«ã multirepo
ãã€ãŸããã¹ãããããªããžããªå
ã®ã¹ãã¬ãŒãžïŒã ããã¯ãã€ã¡ãŒãžãã¬ãžã¹ããªã«ä¿åãããã¿ãŒã³ãå®çŸ©ããŸãã åºæ¬çãªã³ãã³ãã䜿çšãããšãã«ç®çã®ã¢ãŒããéžæããã ãã§ååã§ããã®ä»ã¯ãã¹ãŠå€æŽãããŸããã
ã»ãšãã©ã®ã¯ãŒããªãã·ã§ã³ãèšå®ã§ãããã ç°å¢å€æ°, CI / CD ã·ã¹ãã ã§ã¯ãã¹ãã¬ãŒãž ã¢ãŒãã¯éåžžããããžã§ã¯ãå
šäœã«å¯ŸããŠã°ããŒãã«ã«ç°¡åã«èšå®ã§ããŸãã äŸãã°ã GitLabã®å Žå ãããžã§ã¯ãèšå®ã«ç°å¢å€æ°ãè¿œå ããã ãã§ãã èšå® -> CI / CD -> å€æ°: WERF_IMAGES_REPO_MODE: multirepo|monorepo
.
ã€ã¡ãŒãžã®å
¬éãšã¢ããªã±ãŒã·ã§ã³ã®ããŒã«ã¢ãŠãã«ã€ããŠè©±ãå Žåã¯ããããã®ããã»ã¹ã«ã€ããŠã¯ãé¢é£ããããã¥ã¡ã³ãã®èšäºã§è©³ããèªãããšãã§ããŸãã
æªéã®è©³çŽ°
æ°ããã¹ãã¬ãŒãžæ¹æ³ãè¿œå ããå Žåã®éããšäž»ãªå°é£ã¯ãã¬ãžã¹ããªã®ã¯ãªãŒã³ã¢ããã®ããã»ã¹ã«ãããŸãã (werf ã§ãµããŒããããŠããããŒãžæ©èœã«ã€ããŠã¯ããåç
§ããŠãã ããã
ã¯ãªãŒãã³ã°ã®éãwerf ã¯ãKubernetes ã¯ã©ã¹ã¿ãŒã§äœ¿çšãããã€ã¡ãŒãžãšããŠãŒã¶ãŒãæ§æããããªã·ãŒãèæ ®ããŸãã ããªã·ãŒã¯ãã¿ã°ãæŠç¥ã«åå²ããããšã«åºã¥ããŠããŸãã çŸåšãµããŒããããŠããæŠç¥:
- ã¿ã°ããã©ã³ããã³ããããªã©ã® Git ããªããã£ãã«ãã£ãŠãªã³ã¯ããã 3 ã€ã®æŠç¥ã
- ä»»æã®ã«ã¹ã¿ã ã¿ã°ã® 1 ã€ã®æŠç¥ã
ç»åãå ¬éãããšãã«ã¿ã°æŠç¥ã«é¢ããæ å ±ãæçµç»åã®ã©ãã«ã«ä¿åããŸãã æå³èªäœã¯ãããã ã¡ã¿ã¿ã° - äžéšã®ããªã·ãŒãé©çšããããã«å¿ èŠã§ãã ããšãã°ãGit ãªããžããªãããã©ã³ããŸãã¯ã¿ã°ãåé€ããå Žåãé¢é£ãããã©ã³ããŸãã¯ã¿ã°ãåé€ããã®ãè«ççã§ãã æªäœ¿çš ã¬ãžã¹ããªããã®ã€ã¡ãŒãžãããã¯åœç€Ÿã®ããªã·ãŒã®äžéšã§ã«ããŒãããŠããŸãã
XNUMX ã€ã®ãªããžããªã«ä¿åãããå Žå (monorepo
)ãã€ã¡ãŒãž ã¿ã°ã«ã¯ãã¡ã¿ ã¿ã°ã«å ããŠãã€ã¡ãŒãžã®ååãä¿åã§ããŸãã PROJECT:frontend-META-TAG
ã ããããåé¢ããããã«ãç¹å®ã®åºåãèšå·ã¯å°å
¥ãããå
¬éæã«æçµç»åã®ã©ãã«ã«å¿
èŠãªå€ãè¿œå ããã ãã§æžã¿ãŸããã
NB: werf ãœãŒã¹ ã³ãŒãã«èšè¿°ãããŠãããã¹ãŠã®å
容ã確èªããããšã«èå³ãããå Žåã¯ã次ã®ç¹ããéå§ã§ããŸãã
ãã®èšäºã§ã¯ãã¿ã°ä»ãæŠç¥ãã©ãã«ãžã®ããŒã¿ã®ä¿åãåºçããã»ã¹å
šäœãªã©ãç§ãã¡ã®ã¢ãããŒãã®åé¡ç¹ãšæ£åœåã«ã¯ãã以äžæ³šæãæããŸãããããããã¹ãŠã¯ãDmitry Stolyarov ã«ããæè¿ã®ã¬ããŒãã§è©³çŽ°ã«èª¬æãããŠããŸãã
èŠçŽãã
ãã¹ããããŠããªãã¬ãžã¹ããªã®ãµããŒãã®æ¬ åŠã¯ãç§ãã¡ãç§ãã¡ãç¥ã£ãŠãã werf ãŠãŒã¶ãŒã«ãšã£ãŠé害èŠå ã§ã¯ãããŸããã§ãããçµå±ã®ãšããããã€ã§ãå¥ã®ã€ã¡ãŒãž ã¬ãžã¹ããªãäœæãã (ãŸã㯠Google Cloud ã®æ¡ä»¶ä»ãã³ã³ãã ã¬ãžã¹ããªã«åãæ¿ãã) ããšãã§ããŸãããã ããããåºç¯ãª DevOps ã³ãã¥ããã£ã§ããŒã«ããã䟿å©ã«ããããã«ã¯ããã®ãããªå¶éãåãé€ãã®ãè«ççã§ãããšèããããŸããã ãããå®è£ ããéãã³ã³ãã ã¬ãžã¹ããªã®ã¯ãªãŒã³ã¢ãã ã¡ã«ããºã ãåæ§ç¯ãããšããäž»ãªå°é£ã«çŽé¢ããŸããã ãã¹ãŠã®æºåãæŽã£ãã®ã§ã誰ãã«ãšã£ãŠã¯ç°¡åã«ãªã£ãããšãå®æã§ããŠããããã§ããç§ãã¡ (ãããžã§ã¯ãã®äž»ãªéçºè ãšããŠ) ã¯ããã®æ©èœãããã«ãµããŒãããã®ã«ç®ç«ã£ãå°é£ã¯ãããŸããã
ä»ã®ã€ãããŒã·ã§ã³ã«ã€ããŠãéããªããç¥ããããŸãã®ã§ããã²ãç«ã¡å¯ããã ããã
PS
ç§ãã¡ã®ããã°ããèªã¿ãã ãã:
- «
éåžžã® Dockerfile ã䜿çšããŠãwerf 㧠Docker ã€ã¡ãŒãžãæ§ç¯ã§ããããã«ãªããŸãã "; - «
werf - Kubernetes ã® CI / CD çšããŒã« (æŠèŠãšãããªã¬ããŒã) 'ã
åºæïŒ habr.com