ãŠãŒã¶ãŒã¯ã docker-compose up
ãå®è¡ãããšãã«å®è¡ããããªãã¡ã³ããã³ã¹ã¹ã¯ãªããããã¹ãã¹ã€ãŒãããããã°ã·ã¹ãã ãComposeãã¡ã€ã«ã§å®çŸ©ããããšããããããŸãã
ããã©ã«ãã§éå§ããããµãŒãã¹ãå®çŸ©ããæ¹æ³ãããã¯ãã§ããã docker-compose up servicename
ãŸãã¯docker-compose run servicename ...
å®è¡ããããšã§æåã§å®è¡ããããšãã§ããŸãã
1ïŒå¥ã®äœæãã¡ã€ã«ã䜿çšããããã«ãŠãŒã¶ãŒã«æšå¥šãã
2ïŒãµãŒãã¹ã«ãªãã·ã§ã³ãè¿œå ããŠãããã©ã«ãã§éå§ããªãããã«ããŸã
3ïŒæäžäœã®æ§æãªãã·ã§ã³ãè¿œå ããŠãããã©ã«ãã®ãµãŒãã¹ãå®çŸ©ããŸã
4ïŒãµãŒãã¹ã®ãããªãã®ã®æŠå¿µãè¿œå ããŸãããããã¯1åéãã®ã³ãã³ãïŒãã¹ã¯ãªãããããã¿ã¹ã¯ããªã©ïŒå°çšã§ãã
ïŒã¢ã€ãã¢ãããã°ä»ã®äººã«ææ¡ããŠãã ãããïŒ
compose up
䜿çšããªããšäœ¿çšã§ããŸããã -d
"compose up
çµäºããŸããããªãã·ã§ã³1ã®å Žåã¯+1
å®éã«ã¯ã³ã³ããžã·ã§ã³ã®äžéšã§ã¯ãªãããããŸããŸããã«ãªã³ã¯/ã¢ã¿ããããå¿ èŠããããµãŒãã¹ãè¿œå ããããšã¯ãæªãèšèšäžã®éžæã ãšæããŸãã äœããã®åœ¢åŒã®ã€ã³ã¯ã«ãŒãæ§æãèš±å¯ããããšã§è§£æ±ºã§ãããŠãŒã¹ã±ãŒã¹ã¯ä»ã«ãããã€ããããŸãã 1ã€ã®æ©èœã§è€æ°ã®åé¡ã解決ããããšã¯åžžã«çŽ æŽãããããšã§ãã
ãããã®åé¡ã®ããã€ãïŒããŒã¿ã®ã¿ã®ã³ã³ãããŒãæ±ãåé¡ãïŒ942ã@ cpuguy83ããã®æåŸã®ã³ã¡ã³ãïŒã¯ãå®éã«ã¯ïŒ1754ã«ãã£ãŠãã§ã«ä¿®æ£ãããŠããŸãããã以äžãåé¡ãšèŠãªãå¿ èŠã¯ãªããšæããŸãïŒ1.5以éïŒã ïŒã
Magentoæ¡åŒµæ©èœãéçºããŠããŸãã ãã®ããã«ã¯ãLAMPã¹ã¿ãã¯ã§Webã¹ãã¢ãå®è¡ããç°¡åãªæ¹æ³ãå¿
èŠã§ãã äœæãããšããããç°¡åã«ãªããŸãã ããããphpunitãããŸããŸãªéçåæããŒã«ãããã¥ã¡ã³ããã«ããŒãªã©ãå®è¡ããããšèããŠããŸããå®éãããµãŒãã¹ãã®å€§éšåã¯ã docker-compose run --rm phplint
ãããªåãªãã³ãã³ãã§ãã çæ³çã«ã¯ã次ã®ãããªä¿®é£ŸãããŠããªãã³ãã³ã
docker-compose up -d
é·æéå®è¡ããããµãŒãã¹ïŒå®éã®_services_ïŒãéå§ããã ãã§ãphpunitã®ãããªä»ã®å¹æãäžå¿ èŠã«ããªã¬ãŒããããšã¯ãããŸããã ïŒWebãµãŒãã¹ãèµ·åããåã«Seleniumãã¹ããå®è¡ãããªã©ãåé¡ãçºçããªãããã«ããããšãéèŠã§ããïŒ
ç§ãã¡ãæ¬åœã«ããããšããŠããã®ã¯ãæ¬çªãµãŒãã¹ãå®è¡ããã®ã§ã¯ãªããéçºè ããç°å¢ç®¡çã®èŠçãåãé€ãããšã§ãã @dnephinã®ã³ã¡ã³ãããComposeã®æ¹åæ§ãè¡šããŠãããã©ããã¯ããããŸããããComposeããŸã ããããªFigã«ãµãŒãã¹ãæäŸããããšãèšç»ããŠãããã©ããã¯ãç§ã«ã¯ãããŸãã«æããŸãïŒæ確ã«ããããã«ãç§ã¯ãªãã·ã§ã³1ã¯ãéçºè ãå³ã®ããã«ããã䜿çšããå¿ èŠããã䜿ããããããµããŒãããŠããªããšæããŸããïŒComposeãè€æ°ã®è²¬ä»»ãè² ããããªããã©ããã¯å®å šã«ç解ããŠããŸããã誰ããæ確ã«ç¥ãããŠãããããšãé¡ã£ãŠããŸããã®è£œåãé«éã§åé¢ãããéçºç°å¢ã«äœ¿çšããŠãã人ãå¥ã®æ¹åã«é²ãå¿ èŠãããå Žåã
@kojiromike ãããªãã®ãŠãŒã¹ã±ãŒã¹ã«é©ããªãã®ã¯ïŒ1ïŒã«ã€ããŠäœã§ããïŒ ããã¯ã³ãã³ãã®ã»ãã³ãã£ã¯ã¹ïŒ docker-compose run --rm phplint
察docker-compose --file phplint.yml up
ïŒã«ã€ããŠã§ããïŒ
ãã®docker-compose up -d
ã¯phplintããéå§ãããããšãã docker-compose ps
ã¯phplintã®ããµãŒãã¹ããããŠã³ããŠããããšãå ±åããŸãã å®éã«ã¯ããµãŒãã¹ã³ã³ããã§ã¯ãªããããŒã«ã³ã³ããã§ãããããã¢ãã/ããŠã³ã®æŠå¿µã¯ãããŸããã ããŒã«ã³ã³ããã¯dockerã«æ¡çšãããŠããïŒredis-cliã®ãããªãã®ãå®è¡ããæ¹æ³ã§ãããæããã«ããµãŒãã¹ãã§ã¯ãããŸããïŒãéçºã§ããå€ã䜿çšããŠããäžæ¹ã§ãæ¬çªçšã®å ŽæããããšæããŸãã awk
ãæ¬çªãã·ã³ãŸãã¯ã³ã³ãããŒã«ã€ã³ã¹ããŒã«ããçç±ã®ããã«ããªã³ã¯ã䜿çšããŠã³ã³ãããŒãå®è¡ããŠãäºæž¬å¯èœãªåäœãååŸããŠã¿ãŸãããã
ïŒ+1ïŒå®è¡äžã®åäœãã¹ããã«ãã»ã«åããããã«ãä»ã®ãµãŒãã¹ãšäžç·ã«tests
ã³ã³ãããŒãäœæããããšæ¥åžžçã«æã£ãŠããŸãã ç§ã®ãåé¿çãã¯ãã³ãã³ããã/ bin / trueãã«èšå®ããCLIã§æå®ãããåäœãã¹ãã³ãã³ãã䜿çšããŠã³ã³ãããŒãå®è¡ããããšã§ãã up
æéã«éå§ããã³ã³ãããæå®ã§ãããšäŸ¿å©ã§ãã
ïŒãšããã§ããã¹ãŠã®åšãã®çŽ æŽãããä»äºã人ã ïŒ
cc @jameydeorio
@ryneeverettã»ãã³ãã£ã¯ã¹ã¯ãã®äžéšã§ãã ããã¯èªå·±ææžåãšèŠã€ããããã®åé¡ã§ãã çŸåšãéçºè
ã«docker-compose run --rm foo bar
ãéç¥ããŠããŸãã ã·ã§ã«é¢æ°ãŸãã¯ãšã€ãªã¢ã¹ãäœæããããã«æåŸ
ããŸããããããžã§ã¯ãã®æšæºãšã€ãªã¢ã¹/ rcfileãç¶æããŠããŸããã ïŒã³ã³ãããŒã®å€éšã§æšæºåããå¿
èŠã¯ãããŸãããDocker_to_standardizeã䜿çšããŸããïŒäžéšã®ã³ãã³ãã«æ°ãããã¡ã€ã«ãè¿œå ãããšãéèŠãªéå±€ãäœæãããŸããdocker-compose.ymlãã¡ã€ã«ãéèŠãªãããã©ã«ãããã¡ã€ã«ã«ãªããŸãããããŠãããã®ä»ãã®ãã¡ã€ã«ã¯ããã»ã©éèŠã§ã¯ãªããªããŸãã
ãã1ã€ã¯ããµãŒãã¹éã®é¢ä¿ãç¶æããããšãããé¢åã«ãªãããšã§ãã ããã©ã«ãã§å®è¡ãããªããã®ãå¿
èŠã ãããšãã£ãŠãé·æéå®è¡ãããŠãããµãŒãã¹ã®link
ãŸãã¯volume
ã䜿çšããªããšããæå³ã§ã¯ãããŸããã extends
ã¯ããµãŒãã¹ããã³ãã³ããïŒ1åå®è¡ãµãŒãã¹ïŒã«ãªã³ã¯ããããã«å¿
èŠãªãã¹ãŠã®æ©èœãå®éã«æäŸããããã§ã¯ãããŸããã ããšãããã ã£ããšããŠããè€æ°ã®yamlãã¡ã€ã«ã䜿çšããå¿
èŠãããå Žåã¯ãä»ã®æ¹æ³ã§ã¯å¿
èŠã®ãªãå Žæã§extends
ã䜿çšããå¿
èŠããããŸãã
extendsã¯ããµãŒãã¹ããã³ãã³ããïŒã¯ã³ã©ã³ãµãŒãã¹ïŒã«ãªã³ã¯ããããã«å¿ èŠãªãã¹ãŠã®æ©èœãå®éã«æäŸããããã§ã¯ãããŸããã ããšãããã ã£ããšããŠããè€æ°ã®yamlãã¡ã€ã«ã䜿çšããå¿ èŠãããå Žåã¯ãä»ã®æ¹æ³ã§ã¯å¿ èŠã®ãªãæ¡åŒµæ©èœã䜿çšããå¿ èŠããããŸãã
@kojiromikeããã¯ç§ãçã£ãããšã§ãã æ¹åãããextends
ãµããŒã+åäžã®docker-compose.yml
å
ã§ãµãã³ãã³ãïŒæ©èœçã«ã¯extends
ãšåãïŒãå®è¡ããæ¹æ³ã«æºè¶³ã§ããã§ããããã ããããããããåŸè
ã¯ïŒ4ïŒãšåãã§ãã
2ïŒãµãŒãã¹ã«ãªãã·ã§ã³ãè¿œå ããŠãããã©ã«ãã§éå§ããªãããã«ããŸã
ãªãã·ã§ã³2ã«æ祚ããŸããããšãã°ã start: false
ãã£ã¬ã¯ãã£ãã®ãããªãã®ã§ãã å©ç¹ã¯ãè€æ°ã®compose.ymlãã¡ã€ã«ãè¿œå ã®æ§æãã¡ã€ã«ãäžèŠã«ãªãããšã§ãã1ã€ã®compose.ymlãèªã¿åãã ãã§ãã¢ããªã¹ã¿ãã¯å
šäœã®æ觊ãã€ããããšãã§ããŸãã
https://github.com/docker/compose/issues/1987#issuecomment-139632238ã«å¯ŸããŠææ¡ããããœãªã¥ãŒã·ã§ã³ã§ãããåŠçã§ãããšæããŸãã ãadminããµãŒãã¹ã¯å¥ã®æ§æã«å®çŸ©ã§ããã³ã³ããžã·ã§ã³ã«å¯ŸããŠadminã³ãã³ããå®è¡ããå¿
èŠãããå Žåã¯-f
ãè¿œå ã§ããŸãã
@ dnephin ïŒ1987ïŒã³ã¡ã³ãïŒã®ãœãªã¥ãŒã·ã§ã³ã¯ã管çãµãŒãã¹ããåŠçããŸããããããŒã¿ã®ã¿ã®ã³ã³ãããã¯åŠçããŸããããïŒ ããã§ãcommand: /bin/true
åé¿çã䜿çšããå¿
èŠããããŸãã
äœæã¯ããªã¥ãŒã ã®åäœæãããã³ã³ãããžã®ã¹ã¯ãããåŠçãããããcomposeã§ããŒã¿ã®ã¿ã®ã³ã³ããã¯å¿ èŠãããŸããã
@ cpuguy83次ã®äŸã§ã¯ãããŒã¿ã³ã³ããã¯å®éã«ã¯å¿ èŠãããŸããããããªã¥ãŒã ãå€æŽããå Žåã¯ãæå®ããã1ã€ã®å Žæã確èªããã ãã§æžã¿ãŸãã
nginx:
image: nginx:1.9
volumes_from:
- data
php:
image: php:5.6-fpm
volumes_from:
- data
data:
image: debian:jessie
volumes:
- ./:/app
ãã ããããã¯ã³ãŒããŒã±ãŒã¹ã§ãããæ§æãè¿œå ãã䟡å€ã¯ãªãããšã«åæããŸãã ææ¡ããããœãªã¥ãŒã·ã§ã³ã¯ãã®ã±ãŒã¹ãåŠçããªããšèšã£ãŠããã ãã§ãã
確ãã«ãããŒã¿ããªã¥ãŒã ã«ã¯ãŸã ããã€ãã®ã³ãã³ããå¿ èŠãªã®ã§ããã®ã³ãã³ãããµããŒãããã«ã¯æå°éã®ã€ã¡ãŒãžã䜿çšããå¿ èŠããããŸãã
åºãŠããæ°ããããªã¥ãŒã APIã«ã€ããŠã¯å®å
šã«ææ°ã§ã¯ãããŸããããããŒã¿ããªã¥ãŒã ãããé©åã«åŠçããããã«äœæããvolumes:
ã»ã¯ã·ã§ã³ãè¿œå ã§ããããšãé¡ã£ãŠããŸãã ïŒãããã®ããã®ã³ã³ãããå¿
èŠãšãã代ããã«ïŒã
ããã¯å¿ ãããæ£ããéžæãšã¯éããŸããããåŠç¿æ²ç·/ç解ã®ãããããèæ ®ããå¿ èŠããããšæããŸãã
ïŒ2ïŒãäžçªããããããæ°ãããŸãã ããã確èªããæ¹æ³ã¯å®éã«ã¯ãããŸããããããã§è§£æ±ºããããšããŠããåé¡ã«ééããdocker-compose
ã®ãªãã·ã§ã³ã®ãã¹ãŠã«ç²ŸéããŠããªãã»ãšãã©ã®äººã¯ã次ã®ããã«è¿°ã¹ãŠããŸãã ã docker-compose up
ãå®è¡ãããšãã«ããã®ã³ã³ããã_èµ·åããªã_ããã«ããæ¹æ³ãããã°ããã®ã«ãšæããŸãããšã start: false
ãšbamã衚瀺ãããå®äºããŠæºè¶³ããŠããŸãã
圌ãã¯ããããã解決ããããã«ãåä»ãªãªã³ã¯ã¹ããŒãªãŒãå«ã2çªç®ã®ãã¡ã€ã«ãäœæããæ¹æ³ãããã°...ããšã¯èšããŸããïŒhttps://github.com/docker/compose/issues/ 1987ïŒissuecomment-139632238ã¯ããåä»ãªãªã³ã¯ã¹ããŒãªãŒãã«åœ¹ç«ã¡ãŸãã
ïŒ4ïŒã¯æŒ ç¶ãšãããã®ã§ãããããã®ãããªã¹ã¯ãªããã1åéãã®æ¹æ³ã®ããã®å°çšã®æ段ã¯ããã®ãçã«ããªã£ãŠãããæ³æ¡ã«é©åããŸãã
ä»æ¥ãç§ã¯æ£ç¢ºã«(2)
ãæ¢ããŠããŸããããç§ã®æãå«ããªãœãªã¥ãŒã·ã§ã³ã§ãã2çªç®ã®YMLãã¡ã€ã«ã«è¡ãçããŸããã ç§ã®ãŠãŒã¹ã±ãŒã¹ïŒ
ã³ã³ãããããã€ãããããããã¯ãã¹ãŠåãmongo
ã³ã³ããã«ãªã³ã¯ããŠããŸãã ç§èªèº«ãšããŒã ã«ããã£ã¯ã¹ãã£ãmongoããŒã¿ããŒã¹ã«ããŒãããæ©èœãæäŸããããšæããŸãããã®ããã®æãç°¡åãªæ¹æ³ã¯ã mongo
ã³ã³ãããå¥ã®ååfixtures
ã§ããŒãããããšã§ããããèªäœãmongoã«ãªã³ã¯ããŠããã mongorestore --host mongo --port 27017 --drop /dump
ãŸãã åžžã«ãã£ã¯ã¹ãã£ãããŒãããããªãã®ã§ã start: false
ãããæã£ãŠããã®ã¯èªç¶ãªããšfixtures
ãšmongo
äž¡æ¹ã«å¥ã
ã®YMLãã¡ã€ã«ãæã£ãŠããããšã«ãªããŸãã
ããŸãæ©èœããŸããã start: false
ã¯ã¯ããã«ã¯ãªãŒã³ãªIMOã§ãã ãã®ãããããã£ã¯ã¹ãã£ã³ã³ããã®é åã10å以äžããå Žåãã¯ãstart: false
ã¯æªãèãã§ããã (1)
ãŸãã
docker-compose up -d
ã³ãã³ãã§äžéšã®ãµãŒãã¹ãå®è¡ããŠã¯ãªããªãäœæãã¡ã€ã«ãäœæããå¿
èŠããããŸããã ç§ã«ãšã£ãŠããªãã·ã§ã³ïŒ2ïŒã¯ç§ã®åé¡ã«å¯Ÿããæè¯ã®è§£æ±ºçã§ãã
ç§ãããã«åºããããŸããã ã©ã¡ããæåã®è§£æ±ºçã ãšæããã¯ããããŸããããç§ã«ãšã£ãŠã¯ãã³ã³ããžã·ã§ã³ã®äžéšãšããŠäœ¿çšãããç»åãäœæããæ©èœãå¿ èŠã§ãã ãããã¯äžæçãªã³ã³ãããŒçšã§ãããã³ã³ãããŒããªã³ããã³ãã§å®è¡ã§ããããã«ãã€ã¡ãŒãžã䜿çšã§ããããã«ããå¿ èŠããããŸãã
ããã«ã¡ã¯ïŒ ããã§åãåé¡ãçŽ æŽãããã°ã«ãŒãåã®åé¡ãããããšãããããæããŸããçŽ æŽãããä»äºã§ãïŒ
ç§ã®å ŽåããµãŒãã¹ãåããããã€ãã®ã³ã³ããã§åäœããPythonã¹ã¿ãã¯ããããŸãã ãã¹ãŠãæ£åžžã«æ©èœããŠããŸãããã¹ã¿ãã¯ããã±ãŒã¹ãèŠã€ãããŸããã ç§ã¯bowerã䜿çšããŠéçãªäŸåé¢ä¿ã管çããŠãããã³ã³ãããŒå ã§bowerã³ãã³ããå®è¡ãããã®ã§ãããããã¯ããŸã«å®è¡ããã¹ã¯ãªããã«ãããŸããã
ç§ãã¡ãæã£ãŠããcomposeæ§é å
ã§ãã®ã¹ã¯ãªãããå®è¡ããã®ã¯çŽ æŽãããããšã§ãã ç§ã¯æ¬¡ã®ãããªãã®ãã€ã¡ãŒãžããŸãïŒ
docker-compose run node bower install
ã ããç§ã¯4çªç®ã®ãªãã·ã§ã³ã®2çªç®ã奜ãã§ãã ãµãŒãã¹ãéå§ããªãå¿ èŠããããŸããããã¯å¿ èŠãããŸããïŒP
ã³ã³ã»ã³ãµã¹ãããã°ããåèµ·åããªã©ã®ãã«ãªã¯ãšã¹ããéä¿¡ããŠã¿ãŠãã ããã
éå§ïŒåžžã«
å€å...ããããªãã
ãªãã·ã§ã³2ãžã®å¥ã®æ祚ã
ãªãã·ã§ã³2ããå§ãããŸãã æ°ããDockerããŒã¿ã³ã³ããã¯docker-composeãã¡ã€ã«ã§æå®ã§ããŸããã䜿çšããããã«å®è¡ããå¿ èŠã¯ãããŸããã
ç§ã«ãšã£ãŠããªãã·ã§ã³2
ãªãã·ã§ã³2ã¯çŽ æŽãããã§ãããã
ãªãã·ã§ã³2ã®å Žåã¯+1
ãªãã·ã§ã³2ã®å Žåã¯+1ãè€æ°ã®ãã¡ã€ã«ãç¶æããŠååãå ¥åããã®ã¯æéã®ç¡é§ã§ãã 1ã€ã®ããŒã«ãã©ã°ãããããã¹ãŠãæ¯é ããŸãã ïŒããŒã«ïŒ
ãªãã·ã§ã³4ã®å Žåã¯+1
ç§ã2çªç®ã®ãæ°ã«å
¥ããéžã¶å¿
èŠãããå Žåã¯ãã®opt2ã
確ãã«ãäž¡æ¹ã+1ã§ããå Žåãæè¯ã®ãªãã·ã§ã³ã¯2,4ã§ããããã§ãªãå Žåã¯ãéåæ°ã䜿çšããŠ2ã«æ祚ããŸãã
2ã«æ祚ãã
2ãš4ã®äž¡æ¹ãããã°ããã§ãã
2ã®+1
ã¿ã¹ã¯ã«æ°ããæŠå¿µãå°å ¥ããå¿ èŠã¯ãªããšæããŸãã ãããã¯ç§ã®æèŠã§ã¯éåžžã«ããèªãŸããŠãããå€ãã®å€æŽãªãã§å¯èœã§ãã
// 'task' being a service that manages all my tasks, probably with some custom entrypoint script
docker-compose run task tests
// 'tests' being a service specifically for testing with the default command set to run my tests
docker-compose run tests
å¥ã®äœæãã¡ã€ã«ã䜿çšããçŸåšã®ã解決çãã¯ãç§ã®æèŠã§ã¯å®éã«ã¯è§£æ±ºçã§ã¯ãããŸããã @xakaãèšã£ãããã«ã誰ãããããã¹ãŠå ¥åããããããŸããïŒ
docker-compose -f default-file.yml -f additional-tasks-file.yml run task myTask
æçµçã«ã¯ã myTask
åã«ãã¹ãŠã®å®åæãè¿œå ãã./run-task
ã¹ã¯ãªãããäœæãããŸãã ããããããã§ããã«ãã³ã³ããã¢ããªã«å¥ã®ãšã³ããªãã€ã³ããšã€ã³ã¿ãŒãã§ã€ã¹ãè¿œå ãããŸããã éçºè
ãèŠãdocker-compose.yml
ãšæãïŒ_ _ãããŠä»ãããªããããããäŒããããã«æã£ãŠãããããçŽ æŽããããã³ã³ã¢ããªç§ã¯ãã®äºãåŠçããæ¹æ³ãç¥ã£ãŠãããïŒãïŒ_ "å³ããããªããããã管çããããšãã§ããŸãdocker-compose
ä»ã®ãã¹ãŠã®äœæã¢ããªãšåãããã«...ãããã§ãåŸ
ã£ãŠãã ãã...ç¥ã£ãŠããå¿
èŠã®ãããã®è¿œå ã®ã¹ã¯ãªããããããŸã... "_
start: false
/ up: false
/ some-additional-flag-to-a-service: false
ã¯ããããå®è£
ãæãç°¡åãªãã®ã§ãããããããæãæ確ã§ç解ãããããã®ã§ããããŸãã ãããŠããã¯äœ¿ããããããšãŠãæ¹åããã§ãããã
@sherterãèšã£ãããšã ïŒarrow_upïŒ
ïŒ+1ïŒãã®ããã ç¹ã«ãããã¯ãŒã¯ãé¢äžããŠããå Žåãåå¥ã®dockerfileã¯å€§ããªèŠçã§ã
start: true|false
ã¢ãããŒãã¯å¶éãå€ãããŸãã äžéšã®ãµãŒãã¹ããã¹ãã«äœ¿çšãããä»ã®ãµãŒãã¹ã管çã«äœ¿çšãããæ®ããéåžžã®æäœã«äœ¿çšãããå Žåã¯ã©ããªããŸããïŒ
ã°ã«ãŒãåã®æŠå¿µããµãŒãã¹ã«è¿œå ããããšæããŸãã
myservice:
group: `admin`
group
å±æ§ãå®çŸ©ãããŠããªãå Žåã default
ãæ³å®ãããŸãã
ããããã°ã docker-compose up -g admin -d
ã䜿çšããŠããã©ã«ãã®ç®¡çãµãŒãã¹ãéå§ã§ããŸãã
ããã«è¯ãããšã«ã groups
ãé
åã«ããŸãã
ãµãŒãã¹ã®ã°ã«ãŒãã¯ã©ã¹ãäœæããããšã¯åŒ·åãªæ©èœã®ããã«æãããŸããããã®åé¡ã«æ¥ããŠããããã«ãèŠããŸãã
docker-composeããŒãžã§ã³2ã§ã¯ããã¹ãŠã®ã³ã³ãããŒãservices:
ãããã¬ãã«ã¢ã€ãã å
ã§å®£èšãããŸãã
ã¹ã¯ãªãããå®è¡ããããã«start: never
ã䜿çšããŠãµãŒãã¹ã宣èšããã®ã¯ãééã£ãŠããããã«èãããŸãã
ãããã£ãŠãæ°ãã圢åŒãèæ
®ãããšã_services _ã_ volumes_ãããã³_networks_ãšã¯å¥ã«ãè¿œå ã®ãããã¬ãã«ã¢ã€ãã ã宣èšããå¿
èŠããããŸããïŒ
ãããã®ææ¡ïŒ
scripts:
ã transients:
ïŒãŸãã¯ããè¯ãååãèããŠãã ããïŒã®ãããã¬ãã«ã¢ã€ãã ãv2ã«è¿œå ããŸããäŸïŒ
version: "2"
services:
web:
image: myapp
networks:
- front
- back
volumes:
- /usr/src/app/
redis:
image: redis
volumes:
- redis-data:/var/lib/redis
networks:
- back
scripts:
bower:
image: my_image_with_bower
volumes_from: web
working_dir: /usr/src/app/static
command: "bower"
// maybe would be great to place something like "bower $@"
// to define where you want the cli arguments to be placed, by default at the end.
volumes:
redis-data:
driver: flocker
networks:
front:
driver: overlay
back:
driver: overlay
ãããŠãããªãã¯å®è¡ããããšãã§ããŸãïŒ
docker-compose script bower <EXTRA_CMD_ARGUMENTS | default nothing>
docker-compose script bower install
æžå¿µäºé ïŒ
æåŸã«ã_groupsæ©èœ_ã«ã€ããŠã¯ããããã«èãããŸãããã°ã«ãŒãåãããã»ã©å€ãããå Žåã¯ãããããã«docker-composeãã¡ã€ã«ãäœæããŠãåé¡ã¯çºçããŸããã ããããããªããæãæ©èœã¯docker-composeãã¡ã€ã«ã®ç¶æ¿ã§ããããã¯çŽ æŽãããã§ãããïŒ
PDïŒ @bfirshã¢ã€ãã¢ãæ°ã«å ¥ã£ããããèããããææ¡ãã«è¿œå ã§ããŸãã
第äºã«ãããã¯ãµãŒãã¹ã宣èšããå·®ãè¿«ã£ãæ°ãããã©ãŒãããã®ããã«ã 4çªç®ã®ææ¡ã®æ¹è¯ã§ãã
ãªãã·ã§ã³2ãžã®æ祚ïŒæãæ確ã§èªã¿ããããæ°ããæŠå¿µãåŠã¶å¿
èŠããªã
ããã©ã«ãã§èµ·åããªããµãŒãã¹ã欲ããã ãã§ã
disabled: true
ãããªãã®ã¯ã©ãã§ãã
@ cpuguy83ããã¯ã run
ã§ãã£ãŠãããµãŒãã¹å
šäœãç¡å¹ã«ãªã£ãŠããããšãæå³ããŠããããã§ãã çŽãããããšæããŸãã
@qchoããŒãã1.6ããDockerã«æ £ããŠããã®ã§ãããªããš@gittycatãäœã«ã€ããŠè©±ããŠããã®ããããããŸãã ãã®æå³ã§ã @ gittycatã®ã¢ãããŒããæ¬åœã«å¥œã
groups: # if no groups, all services are in the "default" group byâŠdefault
- foo
- bar
services:
foo:
image: imagine
groups: foo
bar:
image: energy
groups: bar
baz:
image: money
# no groups, so "default"
quux:
image: word
groups:
- bar
- default
äžæ¹ãã·ã§ã«ã§ã¯âŠ
docker-compose up -d # Up all services in default group, so 'baz' and quux
docker-compose up -d --groups foo # Up all services in the foo group
docker-compose up -d --groups foo,default # You get the idea
docker-compose run --rm bar somecommand # We never started 'bar', so it can be a one-off command
ãã®ãããªã¢ãããŒãã¯çŽ æŽãããããã®ãã±ããã®å¿ èŠæ§ãæé€ããŸããããã®ç¯å²ãè¶ ããŠããŸãã
@kojiromikeããã¯æããŸããã ããã¯ãinitã·ã¹ãã ãèªåçã«èµ·åããŠã¯ãªããªããµãŒãã¹ãåç §ããæ¹æ³ã§ãã
ãŸããããã¯åçŽã§ããããæ··ä¹±ãã¯ããã¥ã¡ã³ãã§è§£æ±ºã§ããŸãã
ãŸãããµãŒãã¹éå§ã®æŠå¿µãšã¯ãŸã£ããé¢ä¿ã®ãªããã®ã°ã«ãŒãåãããã¯ããã«æ··ä¹±ãå°ãªããšæããŸãã
@ cpuguy83 ããµãŒãã¹ãã®ã»ãã³ãã£ã¯ã¹ã¯ãããããæ··ä¹±ãæããã®ã ãšæããŸãã ã°ã«ãŒãåã¯ã¹ã³ãŒãã¯ãªãŒãã§ããããšã«åæããŸãã ãã®æå³ã§ãç§ã¯ãªãã·ã§ã³4 / @qchoã®ã¢ãããŒãã奜ã¿ãŸãããã®ã¢ãããŒãã§ã¯ãããµãŒãã¹ããšããµãŒãã¹ã§ã¯ãªããã®ããæ確ã«åºå¥ããŸãã
ããããã€ã³ãã§ãããªãããµãŒãã¹ãå®è¡ããªãã³ã³ãããããµãŒãã¹...ç¡å¹ãã«ããŽãªã«å ¥ããå¿ èŠãããã®ã§ããã 誰ããäœã£ãéããããã®ããã«èãããŸãããçŽæçã§ã¯ãããŸããã
ãã¶ãããã©ãŒãããã®ãããŒãžã§ã³2ãã¯ãã®åé¡ãèæ ®ã«å ¥ããã¹ãã§ããã ããšãã°ãå¥ã®ä»æ§ã¯
version: 3?
containers:
webserver:
...
database:
...
cache:
...
some_script_container:
services: (they are groups):
production:
webserver:
...
database:
...
cache:
...
development:
webserver:
... DEFINE SOME CUSTOM DEV STUFF ABOVE basic container definition
database:
...
cache:
...
ããã§ãã°ã«ãŒãå®çŸ©ã䜿çšããé©åãªãµãŒãã¹ãã§ããŸããã çç£ãŸãã¯éçºãµãŒãã¹ã°ã«ââãŒããéå§ã§ããŸãã ãŸãã¯ãsome_script_containerã§ã¹ã¯ãªãããå®è¡ããã ãã§ãã ã©ã®ãµãŒãã¹ã§ãå®çŸ©ãããŠããªãããã誰ãéå§ãããŸãã
@qchoãµãŒãã¹ã®å®çŸ©ã«ãã£ãŠç°ãªããŸããããããã«ãããããŸã«ããå®è¡ããªããã®ã«çåãæããããå®è¡ãããã©ãããå€æã§ããã®ã¯äººéã ãã§ãã
ãããã£ãŠãcomposeãjob
ãªããžã§ã¯ãã®ãããªãã®ãæ¡çšãããšããŸãã
çŸåšãcomposeã¯ããžã§ãã«é¢ããããŒã«ã«ç¶æ ãç¶æããå¿ èŠããããŸãããçŸåšã¯ãŸã£ããå®è¡ããŠããŸããã
ããããåçŽãªauto-up: false
ãŸãã¯autorun: false
è¿œå ããããšãããããåŠçããããã®æãç°¡åã§äžæ°å³ãªïŒã¹ã³ãŒãåäœã®ïŒæ¹æ³ã§ããçç±ã§ãã
@ cpuguy83ããªãã¯ç§ãèšã£ãŠããããšããã£ãšè€éãªãã®ã§æ¡åŒµããŠãããšæããŸãã ç§ã¯docker-composeãä»äºãã¯ãŒã¯ãããŒã«ã€ããŠç¥ã£ãŠããã€ããã¯ãããŸããã ãã®ããã«å€éšã¹ã¯ãªãããäœæã§ããŸãã ç§ãæå³ããŠããã®ã¯ãdocker-composeã¯ãã¢ããªã±ãŒã·ã§ã³ãå®è¡ããããã®ã¹ã¿ãã¯å šäœãå®çŸ©ããå¿ èŠããããšããããšã§ãã
ã¹ã¯ãªãããäœæããããªããèšã£ãŠããç¶æ ãç¶æããããšãæ³åã§ããŸãã ãµãŒãã¹éå§çŽåŸã§ã¯ãªãããµãŒãã¹éå§åã«ã¹ã¯ãªãããåŒã³åºãããšãã§ããŸãã ã€ã³ããŒãããå¿ èŠã®ããããªã¥ãŒã ããŸãã¯æªç¥ã®ã³ã³ãããŒã§ãã¡ã€ã«ããæœåºããŠé©çšããã¹ã¯ãªãããå®è¡ããããã«å¿ èŠãªæ§æã確èªããå¿ èŠããããããèªåã§ã³ã³ããŒã¶ãŒãã¡ã€ã«ã解æããŠãããšã¯æããŸããã ãããã£ãŠãdocker-composeã¯ãã®ã³ã³ãããŒãæäŸããå¿ èŠããããšæããŸãã ã¹ã¯ãªãããå®è¡ããŠç¶æ ãç¶æããããšãç§ã®åé¡ã§ãã
ãªã人ã ããããèšãç¶ããã®ãåãããŸãã
services:
my-script-container:
auto-up:false
以äžãããåçŽã§ãïŒ
scripts/containers/transients/you_name_it:
my-script-container:
ããã¯åãã¬ãã«ã®è€éãã§ãã ããããæå³çã«ã¯ããããŒã§ã¯ãããŸããã
1ã€ã®ã¹ã¬ããã§ã¢ã€ãã¢ãåŸãã«ã¯ãïŒ2803ãåç §ããŠãã ããã
ãŠãŒã¹ã±ãŒã¹ïŒå€ãã®ã³ã³ããŒãã³ããšãŠãŒã¶ãŒãäœãéžæããŠã€ã³ã¹ããŒã«ããããéžæãããããžã§ã¯ãããããŸããã圌ã¯ãã¡ã€ã«ãäœæããŠããããã¹ãŠãã€ã³ã¹ããŒã«ããŸãã
ææ¡ïŒdocker.composeã§å®çŸ©ãããç»åãé€å€ããããã«docker-cmpose.overrider.ymlã«é 眮ãããªãã·ã§ã³ãè¿œå ããŸã
ããªãã¡
ããã€ãã®ç»åïŒ
é€å€ïŒã¯ã
åäœã¯ãdocker-compose.ymlã®ãã®ãšã³ããªãç¡èŠããããšã§ãã
ããŒã ã®èããæããŠãã ãããå€æŽãå ããããšã«èå³ããããŸãã
ïŒ2ã«ãæ祚ããŸã...ä»æ¥ãã®ããŒãºã«ééããŸããã
@jimzuckerã®ææ¡ãæ©èœããŸãããã¡ã€ã³ã®.yamlãã¡ã€ã«ã«ãstartïŒfalseãã衚瀺ãããŠããã®ã§ãæ瀺çã«åŒã³åºããªããšãã®ããµãŒãã¹ããå®è¡ãããªãããšãããã«ããããŸãã ãã以å€ã®å ŽåãããªãïŒãŸãã¯ç§ã®å Žåã¯docker-composeãã¡ã€ã«ãæž¡ãããšã³ããŠãŒã¶ãŒ/éçºè ïŒã¯ããªãŒããŒã©ã€ããã¡ã€ã«ãæ¢ãããšãå¿ããªãã§ãã ããã
+1for2ãcomposeã®äžéšãšããŠDockerã€ã¡ãŒãžãäœæããå¿ èŠãããã®ã«ããµãŒãã¹ãšããŠå®è¡ãããªããšããç¶æ³ããããŸãã ä»ã®ãµãŒãã¹ïŒDockerãœãã¯ã¹ãå éšã«ããŠã³ããããŠããïŒã¯ãã€ã¡ãŒãžããã³ã³ãããŒãé »ç¹ã«å®è¡ããŸãã
2ã®å Žåã¯+1ãæèšãšããŠãèªåã¢ããããŸãã¯ãèªåå®è¡ãã®å Žåã¯+1ã
ãããŠããµãŒãã¹ã®ã°ã«ãŒãã®ã±ãŒã¹ïŒ@gittycatã§èª¬æãããŠããïŒã¯ãç°å¢å€æ°ala "auto-upïŒ$ {ADMIN}"ãä»ããŠåŠçã§ããŸãããïŒ
ãŸãã docker-compose.yml
å
ã®ãµãŒãã¹ããåçŽãªdocker-compose up
èªåçã«éå§ããã®ã§ã¯ãªããæ瀺çã«ã®ã¿éå§ããããã«ããŒã¯ããå®éã®ãŠãŒã¹ã±ãŒã¹ããããŸãã
解決ç1ïŒã¯çŸåšå¯èœãªæ¹æ³ã®1ã€ã§ããã docker-compose up
ãåŒã³åºããŠãã¡ã€ã«ãåå²ãŸãã¯è€è£œããã®ã§ã¯ãªãã1ã€ä»¥äžã®ymlãã¡ã€ã«ãæå®ããå¿
èŠããããããç§ã®æèŠã§ã¯é¢åã§ãã
解決ç2ïŒã®ãããªãã®ãæ¬åœã«èŠããã®ã§ïŒä»ã®å€ãã®äººãããã§ãïŒãïŒ3047ã§ããã®æŠå¿µå®èšŒãå®è£ ããŸããããããå°ãè©ŠããŠãå®è¡å¯èœãã©ããã確èªããŠãã ããã解決ã
ãªãã·ã§ã³2ã®å Žåã¯+1
ãªãã·ã§ã³2ã®å Žåã¯+1
ãªãã·ã§ã³2ã®å Žåã¯+1
ãªãã·ã§ã³2ãš4ã®äž¡æ¹ã§+1
ãªãã·ã§ã³2ããã³4ã®å Žåã¯+1
ãªãã·ã§ã³4ã®å Žåã¯+1ãäžéšã®æ§æã¯ã¹ã¯ãªããã«èš±å¯ãããã¹ãã§ã¯ãããŸããïŒäŸïŒåèµ·åïŒåžžã«ïŒ
ãªãã·ã§ã³2ã䜿çšãããšã次ã®ãããªå¥åŠãªã±ãŒã¹ãçºçããå¯èœæ§ããããŸãã
service:
run_tests:
build: ./tests/
restart: always
auto-start: "false"
ããã¯ã©ãããæå³ã§ããïŒ
@mathroc ïŒãcomposeã®å®è¡æã«ãã®ã³ã³ãããèªåèµ·åããªãã§ãã ããããã®ã³ã³ãããåæ¢ãããïŒæ瀺çã«èµ·åããåŸïŒãçµäºã³ãŒãã«é¢ä¿ãªãåèµ·åããŠãã ãããã äœãããããã®ïŒ
@nikoãããããæçš¿ããåã«ããå°ãèããŠããå¿ èŠããããŸã...
ãªãã·ã§ã³2ã®ãæ祚ãã+1ã«å€æŽãã
ãªãã·ã§ã³2ã®+1ã¯ãè€æ°ã®ãããžã§ã¯ãã§ãããå¿ èŠã§ããã
ping @bfirsh @dnephin ïŒ
ãã®åé¡ã«é¢ããææ°æ
å ±ãæããŠãã ããã ããã§ã®ã»ãšãã©ã®ã³ã¡ã³ãã¯ãªãã·ã§ã³2ãæ¯æããŠããã®ã§ãçŸåšãã®ãããªãã®ïŒãŸãã¯ãªãã·ã§ã³3/4ïŒãå®è£
ããèšç»ã¯ãããŸããïŒ
ãã«ãªã¯ãšã¹ãïŒïŒ3047ïŒã磚ãäžããŠãããŒãžãæ€èšããå Žåã¯ããã¹ããšããã¥ã¡ã³ãã§å®äºããããšãã§ããŸãã
ããããšãããããŸããã
ãªãã·ã§ã³2ã®å Žåã¯+1
ãªãã·ã§ã³2ã®å Žåã¯+1
ãªãã·ã§ã³2ã®å Žåã¯+1
ãªãã·ã§ã³1ã¯æ©èœãããšæããŸããã次ã®åé·æ§ãæžããããã®ããè¯ãæ¹æ³ãå¿ èŠã§ãã
docker-compose -f docker-compose.yml -f docker-compose.tests.yml up
ãããããç°¡ç¥å/æ¡åŒµãã©ã°ãè¿œå ã§ããŸããïŒ docker-compose --augment tests up
ããã docker-compose.yml
ããªãšãŒã·ã§ã³ã§ããå Žåã¯èªåçã«è§£æ±ºãããŸããããã§ãªãå ŽåããŠãŒã¶ãŒã¯æ瀺çã§ããå¿
èŠããããŸãã
ç§ã¯æ°ãããããã¬ãã«ã®ããŒã¯ãŒãã®ã¢ã€ãã¢ãæ¬åœã«å¥œãã§ããããããsuites
ãšcommands
ïŒ
次ã®æ§æã§ã¯ã次ã®ããšãå¯èœã«ãªããŸãã
docker-compose run -s application
docker-compose run -c cache-clear
suites:
application:
services:
- database
- memcached
- application
tests:
extends: application
services:
- application
commands:
cache-clear:
service: application
workdir: /var/www
command/entrypoint: php app/console ca:cl
ã³ãŒããããã1åéãã®ããµãŒãã¹ã®æŠå¿µããã§ã«ååšããããšãããããŸãïŒIMHOã¯docker-compose run
ãåŒã³åºãããå Žåã«ã®ã¿äœ¿çšãããŸãã
åå©çšã§ããŸããïŒ
ã³ã³ããã«com.docker.compose.oneoff=True
ã©ãã«ãä»ãããšãã³ã³ãããèµ·åããããšããŸããïŒ
ãã以å€ã®å Žåã¯ããªãã·ã§ã³2ã«æ祚ããŸãã
ç§ã¯ããã«å¶ç¶åºããããã®ã§ãããã«ç§ã®2ã€ã®ãŠãŒã¹ã±ãŒã¹ããããŸãã
extends
ã䜿çšããããšã§ããããã¯åé¡ãããŸããããæ¡åŒµå
ãšããŠimage
ãå®çŸ©ããå¿
èŠããããŸãã ã scratch
䜿çšããããšãã§ããŸããïŒãããã£ãŠãhttpsïŒ//hub.docker.com/r/tianon/true/ã«ãªããŸããïŒãextends
ã䜿çšããããšã¯ãå®è¡å¯èœãªã¢ã€ãã¢ã®ããã«èŠããŸãïŒdocker / docker-composeãšé¢é£ãããã¹ããã©ã¯ãã£ã¹ã«ã€ããŠã¯ãŸã åŠç¿ããŠããŸãïŒããªãã·ã§ã³2ã®å Žåã¯+1
ãªãã·ã§ã³2ã®å Žåã¯+1
ãªãã·ã§ã³2ã®å Žåã¯+1
åçŽãªå€æŽã®ããã§ã...
+1ãªãã·ã§ã³2
envãšconfigã®å ±éã»ãããå ±æããè€æ°ã®ã³ã³ããã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ãæ¡åŒµããããŒã¹ã³ã³ãããæ§ç¯ããããšã¯çã«ããªã£ãŠããŸãããå®éã«ã¯ã³ã³ãããéå§ããããšã¯ãããŸããã
auto-start:true|false
æšå¹Ž9æ以æ¥ã rocker-composeãšåŒã°ããåªãããœãªã¥ãŒã·ã§ã³ãããã®ã§ãå®è¡ããããšããå§ãããŸãïŒ_always_ | _once_ | _決ããŠ_ã ç§ãç¶æ ã奜ãã§ãïŒ_running_ | _ran_ | _created_ãã
ãã®æ©èœã®ããã ãã«å¥ã®ãããžã§ã¯ãã䜿çšããã®ã奜ãã§ã¯ãªãã®ã§ããããå®è£ ããããŸã§ãç§ã¯tianon / trueãããžã§ã¯ãããTrueasmã³ãŒãã³ãã³ããçãããšã«ãªããŸããã
ãŸããæåã¯ãªãã·ã§ã³2ãæé©ã ãšæã£ãŠããŸããããå¶éãå³ããããŠãè¿œå ããŠããã«ã1åéãã®ã¿ã¹ã¯ãå¿ èŠã«ãªããšæãå§ããŸããã å®éãç§ã¯çŸåšã次ã®ãŠãŒã¹ã±ãŒã¹ãå¿ èŠãªãããžã§ã¯ãã«åãçµãã§ããŸãã
ç§ã®å Žåã state: created
ïŒ0åå®è¡ïŒãšstate: ran
ïŒå®è¡> = 1åïŒã®åºå¥ã¯éèŠã§ãããŠãŒãã£ãªãã£/管çã¿ã¹ã¯ã®äžéšã¯ç Žå£çã§ããã䜿çšãããã ãã ããã§ãããµãŒãã¹ã®ç§»è¡ãªã©ã®ç¹å®ã®ç¶æ³ã§ã¯ã
ããã«ãŒã³ã³ããŒãºãŸãã¯ãªãã·ã§ã³4ã®ããã«state: running | ran | created
åŸããŠããããšãèãããšããããã¬ãã«ã®_task_ãŸãã¯_job_ãªããžã§ã¯ã+äŸåé¢ä¿ãè¡šçŸããæ©èœã«ããããµãŒãã¹ãã¿ã¹ã¯ãããªã¬ãŒããŠã¿ã¹ã¯ãååŸã«å®è¡ã§ããããã«ãªããŸãã
ããã¯ç§ã®ãŠãŒã¹ã±ãŒã¹ã«ãšã£ãŠéèŠã§ããããšã«èšåããããšæããŸãã docker-composeã䜿çšããŠãã¹ãç°å¢ãäœæãããã¹ãã¹ã€ãŒããå®è¡ããŸãã ãã¹ãŠã®ã³ã³ãããŒãäžåºŠã«éå§ããå Žåã®åé¡ã¯ããã¹ãã¹ã€ãŒããå®è¡ããåã«ãµãŒãã¹ã³ã³ãããŒïŒããŒã¿ããŒã¹ãã»ããªã¯ãŒã«ãŒãªã©ïŒãç°¡åã«åæåã§ããªãããšã§ãã
次ã®ãããªããšãéæã§ããããšãæãŸããã§ãããã
$ docker-compose --file="docker-compose-testing.yml" up -d --exclude=tests
$ sleep 5
$ docker-compose --file="docker-compose-testing.yml" run --rm tests
åæåãè¡ãããããšã確èªããããã«sleep 5
ãããè€éãªãã®ãæžãããšãã§ãããšæ³åã§ããŸããããµã³ãã«ã¹ããããã§ã¯å¿
èŠãããŸããã
CLIãã©ã°ã«é¢ãããªãã·ã§ã³ãèªã¿ãŸããã§ããã ãããã£ãŠããªãã·ã§ã³ã®ãªã¹ãã«--exclude
ãã©ã°ãè¿œå ããããšãææ¡ããŸãã --exclude
ãã©ã°ã¯ãæå®ãããã³ã³ãããŒãéå§ããªãããã«up
ã³ãã³ãã«æ瀺ããŸãã --exclude
ãã©ã°ã¯ãå¿
èŠã«å¿ããŠè€æ°ã®ã³ã³ãããŒãèµ·åããé€å€ã§ããããã«è§£æãããŸãã
ïŒ+1ïŒ
ãªãã·ã§ã³2ãé©åãªãœãªã¥ãŒã·ã§ã³ãšãªãå¥ã®ãŠãŒã¹ã±ãŒã¹ãæ€èšããŸããæ¢åã®ã¢ããªã±ãŒã·ã§ã³å ã®æ°ãããµããµãŒãã¹ãå埩åŠçããŸãã ãããžã§ã¯ãã®ã»ãšãã©ã®éçºè ã¯ãŸã æ°ãããµãŒãã¹ãå¿ èŠãšããªãã§ãããããããŠããªãã¯ééããªã圌ãã®ä»äºã劚ããåé¡ãæãã§ããŸããããããªãã¯ãŸãé·æéããªãŒå€ã®ãã©ã³ããç¶æããããšãé¿ããããããããŸããæéã
å¥ã®ãdocker-compose-experimental.ymlããã¡ã€ã«ã¯æ©èœããå¯èœæ§ããããŸãããã³ã³ããŒãã³ãããŸã å®éšçã§ããéã«ãã®ã³ã³ããŒãã³ãã§äœæ¥ããããã®ãã¹ãŠã®ããã¥ã¡ã³ããäžæ¹åã«èšè¿°ããæšæºã»ããã®äžéšã«ãªã£ããæ¹èšããå¿ èŠãããããšãæå³ããŸããµãŒãã¹ã®ã
ãªãã·ã§ã³2ã«+1
ãªãã·ã§ã³2ã®å Žåã¯+1
ãªãã·ã§ã³2ã®å Žåã¯+1
ãªãã·ã§ã³2ã®å Žåã¯+1
ãªãã·ã§ã³2ã®å Žåã¯+1
@acranãã«ãªã¯ãšã¹ããéä¿¡ããŠããããåé²ãããããã®çœåŒåãåŸãããšãã§ãããã©ããã確èªããŠãã ãããããããããªããŒã¹ããŠïŒ3047ã®ç«¶åã解æ¶ãããšãåé¡ãçºçããŸããããã«æ³šæãåããæ¹æ³ãããããŸããã
@jimzucker wellïŒ3047ã¯ãã§ã«ãã«ãªã¯ãšã¹ãã§ããã
äžèšã®ç§ã®ã³ã¡ã³ããåç §ã
+1ãªãã·ã§ã³2
@acran ãé¢é£ããããã¥ã¡ã³ããšãã¹ãã±ãŒã¹ã®æŽæ°ããæäŒãããããšæããŸãã 倧äžå€«ã§ãã ïŒ
+1ãªãã·ã§ã³2
ãŸãã¯ãKubernetesã®ããã«ãããçš®ã®ãžã§ããå®çŸ©ããŸããïŒ
ãªãã·ã§ã³2ã®å Žåã¯+1
Docker-composeã«ã¯è€æ°ã®ãµãŒãã¹ãããããã®ãã¡ã®1ã€ïŒããŒã¿ããŒã¹ïŒã¯éçºç°å¢ã§èµ·åããå¿ èŠããããŸãããæ¬çªç°å¢ã§ã¯èµ·åããªãã§ãã ããã ãããã£ãŠã2ã€ã®docker-composeãã¡ã€ã«ãç¶æããå¿ èŠããããŸãã ãªãã·ã§ã³2ã¯ãŸãã«ç§ãã¡ãæ¢ããŠãããã®ã§ãïŒ
ïŒ+1ïŒãªãã·ã§ã³2ã®å Žå
+1ãªãã·ã§ã³2
@acranãã£ãŒãããã¯ãååŸããããã®é©åãªããã»ã¹/ãã£ãã«ãèŠã€ããããã«ãããSFã®ããã€ãã®æ¥ç¶ã«
ãªãã·ã§ã³2ã®å Žåã¯ð
ãªãã·ã§ã³2ã®å Žåã¯+1
+1ãªãã·ã§ã³2
+1ãªãã·ã§ã³2
ãŸããç§ã¯ãªãã·ã§ã³2ã«æ祚ããŸã
å¥ã®ã¢ã€ãã¢ïŒãããã¬ãã«ã®networks
ãšvolumes
ãã§ããã®ã§ã images
ãªãã·ã§ã³ãè¿œå ã§ããŸãã ããã¯ãã¢ããªã±ãŒã·ã§ã³ãæ©èœããããã«ãããã®ã€ã¡ãŒãžããã«ãŸãã¯ãã«ãããå¿
èŠãããããšãäœæããããã®ãã³ãã«ãªããŸããã docker-compose up
å®è¡ãããšå®è¡ãããŸããã
ããã¯ãé ã®ãŠã£ãºãããé¢ãã2ã€ã®ãŠãŒã¹ã±ãŒã¹ã§æ©èœããŸãã
1ïŒããã§ã®äžè¬çãªåé¡ãããçš®ã®ç®¡çã³ãã³ããå®è¡ããå¿
èŠããããŸãã docker-compose run
ã¯ããµãŒãã¹ãååšããªãå Žåãå®è¡äžã®ã€ã¡ãŒãžã«ãã©ãŒã«ããã¯ããå¯èœæ§ããããŸãã
2ïŒDockerã€ã¡ãŒãžãå®è¡ãããã®ãããªã¢ããªã§ãããåžžã«å®è¡ãããŠããããã§ã¯ãããŸããã
/ cc @dnephin @aanand @ shin-
çæã³ã³ãããå¿ èŠãšãããã¹ãŠã®ãªãã·ã§ã³ïŒã€ãŸããããªã¥ãŒã /ããŠã³ããã€ã³ãããããã¯ãŒã¯ããªã³ã¯ãååãªã©ïŒãdocker-composeãã¡ã€ã«ã§æ§æã§ãããšäŸ¿å©ãªå Žåãé€ããŠãããããªãããã«ããŸãããã®ã³ã³ãããå®è¡ããå¿ èŠããããã³ã«ããããè¿œå ãç¶ããå¿ èŠããããŸã...
2016幎9æ13æ¥åå3æ58å41ç§AM CDTã«ã¯ããã³Firshmanã®[email protected]ã¯æžããŸããïŒ
å¥ã®ã¢ã€ãã¢ïŒãããã¬ãã«ã®
networks
ãšvolumes
ãã§ããã®ã§ã
images
ãªãã·ã§ã³ãè¿œå ããŸãã ããã¯ãããããäœæããããã®ãã³ãã«ãªããŸã
ã¢ããªã±ãŒã·ã§ã³ãæ©èœãããã«ã¯ãã€ã¡ãŒãžããã«ãŸãã¯ãã«ãããå¿ èŠããããŸãããã€ã¡ãŒãžã¯
docker-compose up
å®è¡ãããšãå®è¡ãããŸãããããã¯ãé ã®ãŠã£ãºãããé¢ãã2ã€ã®ãŠãŒã¹ã±ãŒã¹ã§æ©èœããŸãã
1ïŒããçš®ã®ç®¡çãå¿ èŠãªããã§ã®äžè¬çãªåé¡
å®è¡ããã³ãã³ããdocker-compose run
ã¯å®è¡äžã®ã€ã¡ãŒãžã«ãã©ãŒã«ããã¯ããå¯èœæ§ããããŸã
ãµãŒãã¹ãååšããªãå Žåã
2ïŒã®ãããªã¢ããªãã
Dockerã€ã¡ãŒãžã§ãããåžžã«å®è¡ãããŠããããã§ã¯ãããŸããã/ cc @dnephin @aanand @ shin-
ããªããã³ã¡ã³ãããã®ã§ããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ããã
https://github.com/docker/compose/issues/1896#issuecomment -246618909
K-9Mailã䜿çšããŠAndroidããã€ã¹ããéä¿¡ãããŸããã ç°¡æœã«ç³ãèš³ãããŸããã
ããã«ã€ããŠã¯@mgriegoã«åæããŸãã ãã«ãçæã³ã³ããã«ã€ããŠèããŠã¿ãŠãã ãããã³ãã³ããšãªãã·ã§ã³ããã¹ãŠèšå®ãã docker-compose up foo
ã ããèšå®ããŠããã«ããšçµäºãå®è¡ããã®ãæåã§ãã
ããã§ããå€ãã®ç解ãåŸãããšããŠããŸãïŒãªãã·ã§ã³2ïŒã¯ãããäžè¬çãªã docker-compose.yml
initial_scale
å€ãå¿
èŠãã®ç¹æ®ãªã±ãŒã¹ã§ããïŒ ïŒïŒ1661ãïŒ2496ãªã©ãåç
§ïŒ
@ankonã¯
images
è¿œå [ã»ã¯ã·ã§ã³]
@bfirshããã¯ã httpsïŒ//github.com/dnephin/dobiã§åã£ãæ¹åã«åãå§ã
networks
ãšvolumes
ã¯ãå®éã«çŽæ¥æäœãããããšã¯ãªããã³ã³ããã«ãã£ãŠå¿
èŠã«å¿ããŠäœæãããã ãã§ãã ç»åãç¬èªã®ã»ã¯ã·ã§ã³ã«åå²ããŠããçŸåšã®åäœã¯å€ãããŸãããäœææ§æãããè€éã«ãªãã ãã§ãã ã€ã¡ãŒãžãäœæããã ãã®å Žåã¯ã docker-compose build
ãŸããã¹ã¬ãããšãäœæãã¡ã€ã«ã§ã®ã¹ã±ãŒãªã³ã°å¶çŽã®å®£èšã«é¢ããïŒ2496ã®èª¬æãèªã¿çŽããšããªãã·ã§ã³2ããããªãã·ã§ã³4ïŒã€ãŸãæ°ãããããã¬ãã«ã»ã¯ã·ã§ã³ïŒãåªå ããããã«ãªããŸããã
å
·äœçã«ã¯ã utilities
ãããªã»ã¯ã·ã§ã³åãé©ããŠããŸããéåžžã¯å¿
èŠãªãã³ã³ããŒãã³ãã§ãããå¿
èŠãªå Žåã¯ããªã³ã¯ããä»ã®ã³ã³ããŒãã³ããäºåã«æ§æããŠããå¿
èŠããããŸãã人ã
ã«é©åãªdocker run
åªæãèªåã§æ§ç¯ããŠããããŸãã
ãã®ã¢ãããŒãã§ã¯ã1åéãã®ç®¡çã³ãã³ãã ãã§ãªããpgwebãCelery Flowerãªã©ã®è£å©çãªãããã°ããã³ã€ã³ããã¹ãã¯ã·ã§ã³ãµãŒãã¹ãã«ããŒãããŸãïŒãããã¯éçºã§å®è¡ãããšéåžžã«äŸ¿å©ã§ãããã»ãã¥ãªãã£ã匷åãããŠãããããéåžžã¯æ¬çªç°å¢ã§ã¯å¿ èŠãããŸããã圌ããäœæããè åšã®è¡šé¢ç©ïŒã
ãããã®æ°ãããnotservicesãã®ã»ãã³ãã£ã¯ã¹ã®å®çŸ©ãã¯ããã«ç°¡åã«ãªããŸãã docker-compose build
ãããªé修食ã³ãã³ããé€ããŠã services
ïŒãã®åœ¢åŒã«å¯Ÿããä»åŸã®ãã¹ãŠã®å€æŽãå«ãïŒãš_æ£ç¢ºã«_åãã§ãã docker-compose build
ã docker-compose pull
ãããã³docker-compose up
ããããå®å
šã«ç¡èŠããŸããããµãŒãã¹ãã§ã¯ãªãããŠãŒãã£ãªãã£ãã«ãªã¹ããããŠããã³ã³ããŒãã³ããåŠçããå Žåã¯ãå
·äœçã«ååãä»ããå¿
èŠããããŸãïŒãã ãã docker-compose rm
ã®çŸåšã®ãªãã·ã§ã³ãšåæ§ã«ããããã--all
ãªãã·ã§ã³ã§ããå¯èœæ§ããããŸãã ãã ãããããã®ãŠãŒãã£ãªãã£ãååã§æäœããããã®CLIã¯ãéåžžã®ãµãŒãã¹ãæäœããããã®CLIãšåãã§ããïŒè¿œå ã®ãŠãŒãã£ãªãã£æ§æãã¡ã€ã«ãæå®ããå¿
èŠãããçŸç¶ãšã¯ç°ãªãïŒãdocker-composeãååã®ç«¶åãé²ããŸãããµãŒãã¹ãšãŠãŒãã£ãªãã£ã®å®çŸ©ã®éã
ïŒ2496ã®ã¹ã±ãŒãªã³ã°ææ¡ã¯ããã®åäœãå®çŸããããã«ïŒabïŒäœ¿çšãããå¯èœæ§ããããŸãããé©åã«èšèšãããæ©èœãšããããã¯ãåé¿çã®ããã«æããããŸãã
ç§ã¯ãã®ãã¶ã€ã³ã奜ãã§ãã@ ncoghlanã
utilities
代ããã«ã .services
ã©ãã§ããïŒ ããã¯åœç¶ã services
ãš.services
ããŸã£ããåãã»ãã³ãã£ã¯ã¹ã䜿çšããããšãäŒããŸããå¯äžã®éãã¯ã .services
ãããã©ã«ãã§å®è¡ãããªãããšã§ãã ããã¯ãããã©ã«ãã§è¡šç€ºãããªããã¡ã€ã«åã«éåžžã«ãã䌌ãŠããŸãã æ¬ ç¹ã¯ã2ã€ã®éããå°ã埮åŠãªããšã ãšæããŸãã
@ncoghlanãããã§è©±ããŠããåºæ¬çãªèãæ¹ã¯å¥œãã§ããâŠ
up
ãšstart
ã§ããïŒ@bfirsh @ncoghlan @dnephinã«å®å šã«åæããŸãïŒ
ãã®åé¡ã§ç¹å®ãããåé¡ãå®éã«ä¿®æ£ããããšã¯æããŸããã 人ã ã¯ç»åã ãã§ãªãã³ã³ãããæãã§ããŸã
ç§ïŒãããŠããã«ããã»ãšãã©ã®äººïŒãç§ã®åžæããã¯ãŒã¯ãããŒã«å¿
èŠãªã®ã¯åçŽãªãµãŒãã¹ã§ãã éåžžã®ãµãŒãã¹ãšåãããã«å®çŸ©ãããéåžžã®ãµãŒãã¹ãšåãããã«éå§/åæ¢ãããŸãã
_only_ã®éãã¯ãããã©ã«ãã§ã¯åçŽãªdocker-compose up
ã«ãã£ãŠèªåçã«éå§ãããã®ã§ã¯ãªããæ瀺çã«æå®ãããå ŽåïŒãŸãã¯äŸåé¢ä¿ãšããŠãã«ãããå ŽåïŒã«ã®ã¿éå§ãããããšã§ãã
ãããã£ãŠããããã®1åéãã®ã³ã³ãããŒã«ã€ããŠãæ°ãããããã¬ãã«ã»ã¯ã·ã§ã³ãå®å
šã«æ°ããæŠå¿µã¯å¿
èŠãªããšæããŸããããµãŒãã¹ããšã®æ§æãã©ã¡ãŒã¿ãŒã¯ãªãã·ã§ã³ã§ãã
ããã¯ãæŠå¿µå®èšŒãšããŠãã«ãªã¯ãšã¹ãïŒ3047ã«å®è£
ããŸããã ããã¯éåžžã«å°ããªå€æŽã§ãããç§ã®ãŠãŒã¹ã±ãŒã¹ãå®å
šã«æºè¶³ãããã§ãããã ããã§ãç§ã«ã§ããããšããã£ãšãããªãããããããŒãžããããã«ãç§ã«ç¥ãããŠãã ããïŒ=
ããããã¹ãããã人ã®ããã«ãããã«docker-composeãã³ã³ãããŒã§ãã«ãããŠå®è¡ããã³ãã³ãããããŸãã
# download and build
git clone [email protected]:acran/compose.git -b auto_up
cd compose
docker build -t docker-compose .
# create an example docker-compose.yml
cat > docker-compose.yml <<EOF
version: "2"
services:
foo:
image: busybox
auto_up: false
command: echo foo
bar:
image: busybox
auto_up: false
command: echo bar
depends_on:
- foo
baz:
image: busybox
command: echo baz
EOF
# start all default services only, i.e. baz
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -ti -v $(pwd):$(pwd) -w $(pwd) docker-compose up
# start service foo only
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -ti -v $(pwd):$(pwd) -w $(pwd) docker-compose up foo
# start service bar, foo is pulled in as a dependeny
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -ti -v $(pwd):$(pwd) -w $(pwd) docker-compose up bar
# clean up all services, i.e. foo, bar and baz
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -ti -v $(pwd):$(pwd) -w $(pwd) docker-compose down
@acran ãé¢é£ããããã¥ã¡ã³ããšãã¹ãã±ãŒã¹ã®æŽæ°ããæäŒãããããšæããŸãã 倧äžå€«ã§ãã ïŒ
@ dattran-vn01ãã¡ãããç§ã¯å¹žãã§ãïŒsmileyïŒ
ãã®äŸã®up baz
ã䜿çšããŠå®è¡ã§ããŸãã
è€æ°ã®äœæãã¡ã€ã«ã䜿çšããŠåãããšãå®è¡ããããšãã§ããŸãã
äžéšã®ã³ãã³ããããã©ã«ããµãŒãã¹ã®ç°ãªããªã¹ãã§åäœãããããšã¯éåžžã«æ··ä¹±ããŠããããã«æããããã®æ©èœãæ°ã«å ¥ããªãçç±ã®1ã€ã§ãã
ããªãã®äŸã®@acranã¯ãçŸåšã®Composeãšã¯ç°ãªãåäœãããå¯äžã®ã³ãã³ãã§ããããã®åäœã¯
è€æ°ã®äœæãã¡ã€ã«ã䜿çšããŠåãããšãå®è¡ããããšãã§ããŸãã
@dnephinã¯ããæ£ç¢ºã«ãç§ã¯ç¥ã£ãŠããŸãããããŠãã®äŸã§ã¯ãããæãç°¡åãªæ¹æ³ã§ãããã
ããããããã10åã®ãµãŒãã¹ãš1åéãã®ãµãŒãã¹ïŒãinitããŸãã¯ãbackupã/ãdumpããªã©ïŒã§æ³åããŠã¿ãŠãã ããããã®å Žåã1ã€ã®ãµãŒãã¹ãé€ããŠãã¹ãŠã®ãµãŒãã¹ãã³ãã³ãã©ã€ã³ã«ãªã¹ãããå¿
èŠããããŸã- docker-compose up service1 service2 ... service10
ãããªãªããµãŒãã¹ïŒä»¥äžãåç
§ïŒã ç¹ã«ããã¹ãŠã®ãµãŒãã¹ãèŠããŠã docker-compose.yml
å€æŽãæåã§è¿œè·¡ããå¿
èŠããããŸãã
è€æ°ã®YAMLãã¡ã€ã«ã䜿çšããå¯èœæ§ã«ã€ããŠãç¥ã£ãŠããŸããäžèšã®æåã®ã³ã¡ã³ããåç §ã
åé¡ãèŠèŠåããããã®å¥ã®äŸdocker-compose.yml
ã次ã«ç€ºããŸãã
version: "2"
services:
init:
image: busybox
auto_up: false
command: echo "I do one-time initializing"
service1:
image: busybox
command: echo "I'm service #1"
service2:
image: busybox
command: echo "I'm service #2"
service3:
image: busybox
command: echo "I'm service #3"
service4:
image: busybox
command: echo "I'm service #4"
service5:
image: busybox
command: echo "I'm service #5"
service6:
image: busybox
command: echo "I'm service #6"
service7:
image: busybox
command: echo "I'm service #7"
service8:
image: busybox
command: echo "I'm service #8"
service9:
image: busybox
command: echo "I'm service #9"
service10:
image: busybox
command: echo "I'm service #10"
åçŽãªdocker-compose up
_with_ auto_up
å±æ§ã¯ããµãŒãã¹init
ãé€ããã¹ãŠã®ãµãŒãã¹ãããããéå§ããŸãã ãããªãã§åãããšãéæããã«ã¯ã10åã®ãµãŒãã¹ã§ã¯ããã«é·ãã³ãã³ããå
¥åããããYAMLãã¡ã€ã«ãåå²ããŠè€æ°ã®ãã¡ã€ã«ãæå®ããå¿
èŠããããŸãã
ãããã£ãŠãããã§èŠæ±ãããæ©èœã¯ãå®å šã«æ°ããæ©èœã§ã¯ãªããå©äŸ¿æ§ãšCLIã§ã®å ¥åã®åæžã«é¢ãããã®ã§ãã
ãè€æ°ã®æ§æãã¡ã€ã«ã䜿çšããããªãã·ã§ã³ïŒããã¯å®éã«çŸåšå©çšå¯èœãªæè¯ã®ãªãã·ã§ã³ã§ãïŒã«é¢ããŠãããã«é¢ãããŠãŒã¶ããªãã£ã®åé¡ã¯ãå®éã«ã¯æ¬¡ã®ããã«èŠããããšã§ãã
$ docker-compose up one-shot-command
ERROR: No such service: one-shot-command
$ docker-compose up -f docker-compose.yml -f docker-compose-utils.yml one-shot-command
# Actually goes & does the requested thing
次ã«ãäžäžèŽããããžã§ã¯ãã®ããã¥ã¡ã³ããšèªååã®_ãã¹ãŠ_ã«åœ±é¿ããŸãããŠãŒãã£ãªãã£ã³ãã³ããå®è¡ããããã¹ãŠã®äººã_two_æ§æãã¡ã€ã«ã䜿çšã§ããããã«ããå¿ èŠããããŸãããŠãŒãã£ãªãã£ãã¡ã€ã«å ã®ã³ãã³ãã«å¯ŸããŠå®å šãªåŒã³åºããè¡ãããããã«ããå¿ èŠããããŸããã³ãã³ããããå Žåã¯ããŸãã¯ããµãŒãã¹ããåžžã«å®è¡äžããããæ瀺çã«èŠæ±ãããå Žåã«ã®ã¿å®è¡ãã«éæ Œãããå Žåã¯ãæ§æãã¡ã€ã«åãæäŸããªãåŒã³åºããèŠã€ããŠè¿œå ããå¿ èŠããããŸãã
ããã¯ãã¹ãŠ_å®è¡å¯èœ_ã§ããäœæãã¡ã€ã«ã§ãããã¯æ瀺çã«èŠæ±ãããå Žåã«ã®ã¿å®è¡ããããã©ã«ãã§ã¯å®è¡ããªãã§ãã ããããšèšãããšãã§ããã®ã«æ¯ã¹ãŠé¢åã§ãã
ãã人ãç§ã«ããèšã£ãããšããããŸãã
ãã®ã«ãŒãã¯ãã®å žåçãªäŸã®ããã§ã:)
dockerãé·æéå®è¡ãããã³ãã³ãã«å¯ŸããŠãã€ãã£ãã«ãµãŒãã¹ã®æŠå¿µããµããŒãããããã«ãªã£ããããæåã®ã¢ãããŒãã¯ãã³ãã³ããšåŒã°ããæ°ããã»ã¯ã·ã§ã³ãè¿œå ããããšã§ããããã«ãããåèµ·åããªã·ãŒãé€ããŠãµãŒãã¹ãšåãæ©èœãå¯èœã«ãªããŸãã
ç§ã®ã»ããã¢ããã§ã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ïŒnginxãããŒã¿ããŒã¹ããŠã§ããµãŒããŒãã¡ãã»ãŒãžãã¥ãŒãªã©ïŒãå®è¡ããããã«å¿ èŠãªãµãŒãã¹ãdocker-composeã«ãããŸãã ãŸãããããã°ã®çç±ã§ã®ã¿å¿ èŠãªè¿œå ã®ãµãŒãã¹ïŒããŒã¿ããŒã¹ã®Web GUIãªã©ïŒãå®çŸ©ããŸããã
ããããã°ããµãŒãã¹ãèªåçã«éå§ããªãããã«ãããã®ã§ãããè¿œå ãããå Žåã¯ãåçŽãªdocker-compose up -d database-gui
ã§è¿œå ã§ããè¿œå ãããã ãã§ãã
ãŸãïŒæã æ°ãå€ãã£ãŠããããã®ãµãŒãã¹ã®1ã€ãåžžã«éå§ããã... =>ãªãã·ã§ã³2ïŒã䜿çšãããšããã®1ã€ã®ãã©ã°ãå€æŽã§ããŸã
=>ãªãã·ã§ã³2ã«æ祚ããŠãã ãããããã¯åçŽã§ãããããã§ãã¹ãŠã®äººã®èŠä»¶ãæºãããŠããããã«èŠããããã§ãã ä»ã®ãã¹ãŠã®ãœãªã¥ãŒã·ã§ã³ã¯ãç§ã«ã¯éå°èšèšã®ããã«æããŸã...å®éã®å¿ èŠæ§ã§ã¯ãªãããŸããªããŸãã¯æ³åäžã®ãŠãŒã¹ã±ãŒã¹ã«åºã¥ããŠæ§æãè€éã«ããŸãã
ç§ã®+1ãè¿œå ããããã«ããã«ãããŸãã ç§ã¯Djangoã¢ããªã§å®è¡ããŠããŸãããDockerã§å®è¡ããå Žåã¯ãã·ã§ã«ããã¹ããå®è¡ããã³ã³ãããŒãããã«èšãã°ç§»è¡ã³ãã³ããå®è¡ããã³ã³ãããŒããããšäŸ¿å©ã§ãã ããããã¢ããªãèµ·åãããã³ã«ãããã®ããããå®è¡ããããããŸããã è€æ°ã®æ§æãã¡ã€ã«ã䜿çšããããšã¯ã§ããŸããã1ãã€ã«ã®é·ãã®ã³ãã³ãã©ã€ã³ãå
¥åãã¹ã¯ãªããåããŸãã¯ãšã€ãªã¢ã¹åããå¿
èŠããããŸãã äœæ²ããŸã£ãã䜿çšããªãããã«ãããå Žåã¯ãã³ã³ãããŒãã·ã§ã«ã¹ã¯ãªããåããã ãã§ãïŒãŸãã¯Pythonã¹ã¯ãªãããäœæããŸã...ã³ã³ãããŒæ§æãæ ŒçŽããããã«çµ±åYAMLãã¡ã€ã«ãè¿œå ããŸã...åŸ
ã£ãŠãã ãã...ïŒã³ã³ããã§ããŒã¿ããŒã¹ã®ç§»è¡ãå®è¡ããããã ãã«docker-compose -f common.yml -f dev.yml -f local.yml -f commands.yml up migrate
ãããªããšã¯ããããããŸããã å¥ã®æ¹æ³ã¯ãã³ãã³ããšããŠ/bin/true
ã䜿çšãã docker-compose -f common.yml -f dev.yml -f local.yml up commands 'python3 manage.py migrate'
ãããªããšãå®è¡ããããšã§ãããããããšã¬ã¬ã³ãã§ã¯ãããŸããã ãããã£ãŠãæ§æã®ã©ããã«1åéãã®ã³ãã³ããæ ŒçŽããŠãããšéåžžã«äŸ¿å©ã§ãã ãªãã·ã§ã³2ã3ã4ã®ã©ãã§ãç§ã«ã¯ããŸãããã§ãããã
ãã®ã¹ã¬ããããã®ãã£ãŒãããã¯ã«éšåçã«åºã¥ããŠç§ãåãçµãã§ããããŒã«ã§ããdobiãã芧ã«ãªãããšããå§ãããŸãã
composeã¯ããç°å¢ãã圢æããé·æå®è¡ãµãŒãã¹ãéå§ããããã«èšèšãããŠããŸãã
dobiã¯ãã·ãŒã±ã³ã·ã£ã«ãããžã§ã¯ããã«ãã¿ãã¯ã«çŠç¹ãåœãŠãŠããŸãã
æ¢ããŠãããã®ïŒã·ã§ã«ã®å®è¡ãåäœãã¹ãã®å®è¡ã移è¡ã®å®è¡ïŒã¯ãã¹ãŠãããžã§ã¯ãã¿ã¹ã¯ã§ãããããdobiã¢ãã«ã«ã¯ããã«ããé©åããŸãã
dobiãšcomposeã¯éåžžã«ããŸãé£æºãã composeãªãœãŒã¹ã䜿çšããŠdobiããcomposeãèµ·åã§ããŸãã
compose=dev-environment:
files: [docker-compose.yml, local.yml]
project: 'theprojectname'
ããã䜿çšããŠå®è¡ã§ããŸãïŒ
dobi dev-environment
ããã«ãæ§æçµ±åãšå®è¡äžã®ããŒã¿ããŒã¹ç§»è¡ã®äŸããããŸãïŒ https ïŒ
å€ãã®ã¯ãŒã¯ãããŒïŒãã¹ãã®å®è¡ãã€ã³ã¿ã©ã¯ãã£ãã·ã§ã«ã®éå§ããªãªãŒã¹ãæå°éã®ã€ã¡ãŒãžã®æ§ç¯ãªã©ïŒã®äŸãããã«ãããŸãïŒ http ïŒ
2ïŒã®å Žåã¯+1ã ç§ãã¡ã®èŠ³ç¹ã§ã¯ã1åéãã®ã³ãã³ãã®ãããªçãããŠãŒã¹ã±ãŒã¹ãèããŠè°è«ããå¿ èŠã¯ãããŸããããäœæãããŠããã«äœ¿çšã§ããå®éã®ãµãŒãã¹ãå¿ èŠã§ãããå¿ èŠã«å¿ããŠãªã³ããã³ãã§éå§ã§ããŸãïŒããã©ã«ãã§ã¯æ¶è²»ãããŸããïŒãªãœãŒã¹ïŒã
ãçãããŠãŒã¹ã±ãŒã¹ãïŒ ããŒã¿ããŒã¹ã®ç§»è¡ãå®è¡ããŠããŸããïŒ ãŠããããã¹ããå®è¡ããŸããïŒ lintãå®è¡ããŸããïŒ webpackïŒ
ã¯ããç§ã¯èµ°ã£ãŠããŸãããç§ã®æèŠã§ã¯ãããã¯ã³ã³ããå ã§éæããã³å¶åŸ¡ã§ããŸãã ããããç§ã¯ããªãã®èŠè§£ãèŠæ±ãæãªãããšãæãŸãªãã®ã§ããã®è°è«ãçäžãããªãããã«ããŸãããã dockercomposeã«é¢ããèŠä»¶ã¯å¿ ãããççŸããŠããŸããã
mysqlã³ã³ããå ã®ããŒã¿ããŒã¹ãæ¶å»ããããŠã³ããŒããããã³ãããã¹ããŒããåããŒãããã¹ã¯ãªããçšã®docker-composeã³ã³ãããäœæããæ¹æ³ãèŠã€ããããšããŠãããã®ã¹ã¬ããã«åºããããŸããã ããã¯éåžžã«æéã®ãããç Žå£çãªããã»ã¹ã§ããããããµãŒãã¹ãèµ·åãããã³ã«å®è¡ããå¿ èŠã¯ãããŸããããç¬èªã®dockerfileã䜿çšããŠæ§æãããã³ã³ãããŒã®ã»ããå ã§å®è¡ããå¿ èŠããããŸãã
ããããã¿ã¹ã¯ãã³ãã³ããªã©ãšåŒãã§ãã ããã
ç§ã¯ãããå¶ç¶èŠã€ããŠãä»ã®äœããæ¢ããŠããŸããããŠãŒã¹ã±ãŒã¹ã«ããããå ¥ãããã£ãã ãã§ã...ç§ãã¡ã®éçºè ã¯ããµãŒãã¹ããããã¯ã¢ããããããŒã¿ãå®çŸ©ããèœåãæãé«ãããšãããããŸããã docker-compose.ymlãã¡ã€ã«ãæå ã«ãããååä»ãããªã¥ãŒã ã䜿çšãããŠãããããããã䜿çšããŠããã¯ã¢ããæŠç¥ãå®çŸ©ããããšã«ããŸãã...ããã¯ç§ãã¡ã䜿çšããŠããå€ãdocker-compose.ymlã®èŠçŽäŸã§ãã
version: '2'
services:
gitlab:
image: gitlab/gitlab-ce:latest
restart: always
ports:
- "5555:5555"
volumes:
- gitlab_config:/etc/gitlab
- gitlab_logs:/var/log/gitlab
- gitlab_data:/var/opt/gitlab
- certificates:/etc/gitlab/ssl
- registry_data:/var/opt/gitlab/gitlab-rails/shared/registry
gitlab-runner:
image: gitlab/gitlab-runner:latest
restart: always
volumes:
- certificates:/etc/gitlab-runner/certs
- /var/run/docker.sock:/var/run/docker.sock
volumes:
gitlab_config:
driver: local
gitlab_logs:
driver: local
gitlab_data:
driver: local
certificates:
driver: local
registry_data:
driver: local
ããªã¥ãŒã ããŒã¿ãããã¯ã¢ããã§ããããã«ããããã«ãå¿ èŠãªããŒã¿ãtarããããã«busyboxã³ã³ãããŒã䜿çšããããšã«ããŸããããæè»æ§ããããéçºè ãããã¯ã¢ãããããããªã¥ãŒã ã®ã¿ãå®è¡ããå¿ èŠããããŸãã æåŸã«ããã¹ãŠã®ããªã¥ãŒã ãåå¥ã«ããã¯ã¢ããã§ããã¯ãã§ãã ãããå®çŸããããã«ããã¹ãŠã®docker-compose.ymlã«3ã€ã®ãµãŒãã¹ãè¿œå ããŸãã
boot:
image: busybox
depends_on:
- gitlab
- gitlab-runner
backup:
image: busybox
volumes:
- gitlab_config:/data/gitlab_config
- gitlab_data:/data/gitlab_data
- registry_data:/data/gitlab_data
- /backups/latest:/backup
command: find . -type d -maxdepth 1 -mindepth 1 -exec tar cvf /backup/{}.tar {} \;
working_dir: /backup
restore:
image: busybox
volumes:
- gitlab_config:/data/gitlab_config
- gitlab_data:/data/gitlab_data
- registry_data:/data/gitlab_data
- /backups/latest:/backup
command: find . -type f -iname "*.tar" -maxdepth 1 -mindepth 1 -exec tar xvf {} \;
working_dir: /backup
ããã¯ã¢ããããã³åŸ©å ãµãŒãã¹ã¯ãããªã¥ãŒã ã䜿çšããŠæ§æããå¿ èŠãããã ãã§ãæ®ãã¯ã³ãã³ããå®è¡ããŸãã ããã¯ã¢ãããŸãã¯åŸ©å ããããªã¥ãŒã ãéžæã§ããããã«ãæ§æãå°ãè¿œå ããããšãèšç»ããŠããŸãããä»ã®ãšããããã¹ãŠãå®è¡ããŸã...ããã2ã€ã®ãµãŒãã¹ããã¹ãŠã®docker-composeã§éå§ããããªãããã§ãã upã³ãã³ãã§ã¯ãå¿ èŠãªãã¹ãŠã®ãµãŒãã¹ãæå®ããå¿ èŠããããŸããããããã¯é¢åãªå ŽåããããŸã...ããã§ãbootãšãããããŒã®ãµãŒãã¹ãè¿œå ããŸãããå®è¡ããå¿ èŠã®ãããã¹ãŠã®ãµãŒãã¹ã«äŸåããã ãã§ããããåŒã³åºãã ãã§ãã docker-æ§æããŸãã
ããã¯å°ããªããã¯ã§ãã£ã±ãã§ããã docker-compose up backup
ãç°¡åã«å®è¡ããŠãããã¯ã¢ããããã¹ãã®/ backups / latestã«ä¿åããããããããŒãžã§ã³ç®¡ç/ãã«ãŒãã³ã°ããžãã¯ãå®è¡ã§ããŸãã
åæ§ã®ããšãéæããããšããŠãã人ã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸã...ããããæçµçã«ã¯ãdocker-composeã«ãããã®2ã€ã®ãµãŒãã¹ãèµ·åããªãããã«æ瀺ã§ããã®ã§ã3çªç®ã®ãµãŒãã¹ã¯å¿ èŠãªããdocker-composeupã³ãã³ãã
éçºäžãçŸåš4ã€ã®docker-composeãã¡ã€ã«ããããŸãã
docker-compose.yml
ïŒã¢ããªãå®å
šã«æäœããããã«å¿
èŠãªã³ã¢ãµãŒãã¹ãå®çŸ©ããŸããããšãã°ãredisãMySQLãphp-fpmãLaravelãã¥ãŒããã»ããµãŒãnginxãSolrdocker-compose-utils.yml
ïŒéçºã¿ã¹ã¯ã®å®è¡ã«å¿
èŠãªãŠãŒãã£ãªãã£ãµãŒãã¹ãå®çŸ©ããŸããããšãã°ãgulpãnpmãartisanïŒLaravelïŒãcomposerãredis-cliãªã©ãéåžžã¯äžèšã®ãµãŒãã¹ã§å®è¡ãããŸãDockerã®å€éšã§ã¯ãéçºç°å¢ã®äŸåé¢ä¿ãæå°éã§ããããããã®ã»ããã¢ããã¯é©åã«æ©èœããŸãã æ¬ ç¹ã¯ãåçŽãªãŠãŒãã£ãªãã£ãå®è¡ããããã«å¿ èŠãªãã¹ãŠã®.ymlãã¡ã€ã«ãæå®ããããã«å¿ èŠãªæ±ãã«ããã³ãã³ãã©ã€ã³ã§ãã
macOSãWindowsãLinuxã§éçºããŠããŸãã ããã«ãéçºã¿ã¹ã¯ã®å€ãã¯äœããã®ãã©ã¡ãŒã¿ãŒåãå¿
èŠãšããããïŒDB移è¡ã®äœæãç¬èªã®åŒæ°ã䜿çšããcomposer / artisan / npmã³ãã³ãã®å®è¡ãªã©ïŒããŒãã€ã³ã¹ããŒã«ã¯ãã¹ãšããŠschmich/runx
ãäœæããŸãããäžè¬çãªéçºã¿ã¹ã¯ããã³ãã«ãããã©ãããã©ãŒã ã¿ã¹ã¯ã©ã³ããŒã
ããšãã°ãããã«ããã runx merge ïŒmake create_some_tableã䜿çšããŠdocker-compose -f docker-compose.yml -f docker-compose-utils.yml -f docker-compose-dev.yml -f docker-compose-utils-dev.yml run --rm artisan migrate:make create_some_table
ãå¹æçã«å®è¡ãããã runxnpmãå€ãããŠå€ãJSäŸåé¢ä¿ã衚瀺ãããã§ããŸãã
äžèšã®dobi
ã¯äœ¿çšããŠããŸãããã runx
ã¯ãDockerç°å¢ã«åãããŠèª¿æŽãããŠããŸãããã粟ç¥çã«ã¯äŒŒãŠããŸãã æçµçã«ã¯ã絶察ã«å¿
èŠãªå Žåãé€ããŠãã©ãã§ãäŸåé¢ä¿ãé¿ããããšæããŸãããµãŒãã¹èªäœãšãéçºã«å¿
èŠãªãŠãŒãã£ãªãã£ã¹ã¯ãªããã§ãã
é£çµ¡ãã£ãïŒ ãã®æ©èœãããã°æ¬åœã«ãããšæããŸãïŒ default
ãããªãããã¬ãã«ã®æ§æã®ãœãªã¥ãŒã·ã§ã³ã«æ祚ããŸããããã§ã¯ãå®è¡ããå¿
èŠã®ãããµãŒãã¹ãæå®ã§ããŸãã
boot
ãããŒãµãŒãã¹ã¯çŽ æŽãããã§ãããç§ã¯ããã»ã¹ããã©ã¢ã°ã©ãŠã³ãã®ãŸãŸã«ããŠããããšã奜ã¿ãŸãããããã£ãŠããã®äœæ¥ãçµäºããããã¿ãŒããã«ãéããã ãã§ãã¹ãŠãåæ¢ã§ããŸãã ããã©ã«ãã§åºåãã¢ã¿ããããã®ãè¯ãããšã§ãããããã¯ãããŒãµãŒãã¹ã§ã¯çºçããŸããã
nobobyã.envãã¡ã€ã«ã䜿çšããŠãŠãŒã¹ã±ãŒã¹ã«ã³ã¡ã³ãããã®ã§ãããã«ç§ã®ãã®ããããŸãïŒ
docker-compose.ymlãdocker-compose.local.ymlãdocker-compose.prod.ymlãdocker-compose.ci.ymlã®4ã€ã®äœæãã¡ã€ã«ããããŸãã ç°å¢ããšã«ç°ãªã.envããããŸãã
CI .env:
COMPOSE_PROJECT_NAME=foo
COMPOSE_FILE=docker-compose.yml:docker-compose.ci.yml
WEB_PORT=8081
...
Test/dev/etc .env:
COMPOSE_PROJECT_NAME=foo
COMPOSE_FILE=docker-compose.yml:docker-compose.local.yml
WEB_PORT=80
...
çã ...
ç°å¢ã¯ãã§ã«åå¥ã«æ§æãããŠããããããŠãŒã¶ãŒãã¹ã¯ãªããã¯ã䜿çšããäœæãã¡ã€ã«ã«ã€ããŠå¿é ããå¿ èŠã¯ãããŸããã
ããããæçµçã«å®è¡ããã¡ã³ããã³ã¹ã€ã³ã¹ã¿ã³ã¹ããããã¡ã€ã³ã®docker-compose.ymlå ã§æ§æããããšã¯ã§ããŸããã解決çã®ã²ãšã€ã¯ãdocker-compose.worker.ymlãäœæãã3ã€ã®ã-fããªãã·ã§ã³ãå€æŽããŠã³ãã³ãã©ã€ã³ãå®è¡ããããšã§ããåç°å¢ã§ã ããã¯ãšã©ãŒãçºçããããã䜿çšå¯èœãªãªãã·ã§ã³ã«ã¯ãªããŸããã
ç§ãèŠã€ãã解決çã¯ããã£ã¬ã¯ããªãworkerããäœæããããã«ymlãã¡ã€ã«ãé 眮ããäžäœã®.envãã¡ã€ã«ããã®ãã£ã¬ã¯ããªã«ãªã³ã¯ããŠã空ã®docker-composeã[ci | local | prod] .ymlãã¡ã€ã«ãäœæããããšã§ããïŒããã§ãªãå Žåã¯ã COMPOSE_FILEå€æ°ã®å€ãå€æŽããŸãïŒã
ããã¯åé¡ãªãæ©èœããŸãããæé©ãšã¯èšããŸããã OPã®ä»ã®ãœãªã¥ãŒã·ã§ã³ã¯ãæ··ä¹±ããããšãªãããã解決ããŸãã
ããã§ã®è°è«ãå€ãã®äœ¿çšäŸã®äŸãããã³ããã«é »ç¹ã«éè€ããåé¡ããããšããäºå®ã¯ããããã©ã«ãã§éå§ãããªããµãŒãã¹ãå®çŸ©ãããå¯èœæ§ã«å¯Ÿããå€ãã®ãŠãŒã¶ãŒã«ããå®éã®èŠæ±ãããããšãæ確ã«ç€ºããŠãããšæããŸãã "ã
ãã®ãããããã§ã®è°è«ããããããã£ãšå®è£ ããå¿ èŠãããå Žåãããã©ã®ããã«å®è£ ããå¿ èŠãããããšããããšã«ç§»ããããšæããŸãã ç§ãã¡ã¯ããããããã«åæã§ããŸããïŒ
_how_ã«é¢ããŠãããã¯éæã§ããŸãã@bfirshã¯ãåé ã®ã³ã¡ã³ãã«ããã€ãã®ãªãã·ã§ã³ããªã¹ãããŸããã
1ïŒå¥ã®äœæãã¡ã€ã«ã䜿çšããããã«ãŠãŒã¶ãŒã«æšå¥šãã
ããã¯ããã®ãŠãŒã¹ã±ãŒã¹ã§çŸåšå©çšå¯èœãªå¯äžã®ãœãªã¥ãŒã·ã§ã³ã§ãã ãã ããäžèšã®ããã«ããã®å Žåã¯ãé·ãã³ãã³ãã©ã€ã³ãæåã§å
¥åããå®è¡ããã³ãã³ãã«å«ããäœæãã¡ã€ã«ãèŠããŠããå¿
èŠããããããããå€ãã®åé¿çããããŸãã
ãã¡ãããCIã»ããã¢ãããŸãã¯æ¬çªç°å¢ãžã®èªåå±éã§ã¯ãããã¯åé¡ã§ã¯ãããŸãããã³ãã³ãã©ã€ã³ãäžåºŠå®çŸ©ããã ãã§ãæåã§å
¥åããå¿
èŠããªãããã§ãã ãããã£ãŠãããã¯ãèªååãããŠããªãç°å¢ãã€ãŸãã docker-composeããã¥ã¢ã«ã«ãããšComposeèªäœã®äž»ãªãŠãŒã¹ã±ãŒã¹ã®1ã€ã§ããéçºã§ã®å©äŸ¿æ§ã«é¢ãããã®ã§ãã
ãããã®æ©èœãçµã¿åãããããšã§ãéçºè ãããââãžã§ã¯ããéå§ããããã®äŸ¿å©ãªæ¹æ³ãæäŸãããŸãã Composeã䜿çšãããšãè€æ°ããŒãžã®ãéçºè å ¥éã¬ã€ããã1ã€ã®æ©æ¢°å¯èªãªComposeãã¡ã€ã«ãšããã€ãã®ã³ãã³ãã«æžããããšãã§ããŸãã
ããŒã«ã«ã»ããã¢ãããåæåããããã ãã«docker-compose -f docker-compose.yml -f docker-compose-utils.yml run init
ãããªãã®ãå
¥åããå¿
èŠãããããšã¯ãç§ã«ã¯_䟿å©_ã«èãããŸãããã_è€æ°ããŒãžã®ãéçºè
å
¥éã¬ã€ãã_ã«ãããããªãã®ã§ãã
ãããŠãããã§ãªãã·ã§ã³1bïŒãæ€èšããŸãã
ã©ãããŒã¹ã¯ãªãã/ããŒã«ã䜿çšããŠåå¥ã®äœæãã¡ã€ã«ã䜿çšããããšããŠãŒã¶ãŒã«æšå¥šããŸã
ãã®ããã ãã«è¿œå ã®ããŒã«ãšäŸåé¢ä¿ãååŸããå¿
èŠãããå Žåããããããªãdocker-compose
ã䜿çšããã®ã§ããïŒ docker-compose
ãè¡ãããšã¯ãã¹ãŠãçè«çã«ã¯ãã«ã¹ã¿ã ã·ã§ã«ã¹ã¯ãªãããšãã€ãã£ãã®docker
ã¯ã©ã€ã¢ã³ãã ãã§çŽæ¥å®è¡ããããšãã§ããŸãã
æšæºåããããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã«docker-compose
ã®äž»ãªå©ç¹ããããŸãïŒãããžã§ã¯ãã®ã¯ããŒã³ãäœæããããã«docker-compose.yml
ããããéå§ããã«ã¯docker-compose up
ãå®è¡ããå¿
èŠãããããšãç¥ã£ãŠããŸãïŒ ã ãã®å©ç¹ã倧å¹
ã«åŒ±ãããã®ã«äœ¿çšããäœæãã¡ã€ã«ãåžžã«ç¥ãå¿
èŠããããŸãã
2ïŒãµãŒãã¹ã«ãªãã·ã§ã³ãè¿œå ããŠãããã©ã«ãã§éå§ããªãããã«ããŸã
3ïŒæäžäœã®æ§æãªãã·ã§ã³ãè¿œå ããŠãããã©ã«ãã®ãµãŒãã¹ãå®çŸ©ããŸã
ãããã®2ã€ã®ãªãã·ã§ã³ã¯ãåºæ¬çã«åãã§ãã1ã€ã®äœæãã¡ã€ã«ã§ããã©ã«ã
ã»ãšãã©ã®å Žåãåäžã®äœæãã¡ã€ã«ã«ã1åéãã®ãµãŒãã¹ããããå€ãã®ããã©ã«ããµãŒãã¹ãããããšãèãããšãä»ã®ãã¹ãŠã®ãµãŒãã¹ããã¯ã€ããªã¹ãã«ç»é²ããããã©ã«ããµãŒãã¹ãååŸããããã³ã«ãã¯ã€ããªã¹ããæŽæ°ãããããã1ã€ã®ãµãŒãã¹ããã©ãã¯ãªã¹ãã«ç»é²ããæ¹ãããããç°¡åã§ããè¿œå ãŸãã¯åé€ãããŸããã ãŸãããªãã·ã§ã³2ïŒã䜿çšãããšãè€æ°ã®äœæãã¡ã€ã«ãããŒãžããæ¹ãããããç°¡åã§ãã
4ïŒãµãŒãã¹ã®ãããªãã®ã®æŠå¿µãè¿œå ããŸãããããã¯1åéãã®ã³ãã³ãïŒãã¹ã¯ãªãããããã¿ã¹ã¯ããªã©ïŒå°çšã§ãã
äžèšã®äŸã®ã»ãšãã©ã§ã¯ãç®çã®1åéãã®ã³ã³ãããŒã¯åºæ¬çã«ä»ã®ãµãŒãã¹ãšåãããã«å®çŸ©ãããŠãããéåžžã®ãµãŒãã¹ãšã»ãŒåãããã«å®çŸ©ãããŠããããããªãã·ã§ã³4ïŒã¯ãªãã·ã§ã³2ïŒãŸãã¯3ïŒã®ç¹æ®åã«ãããªããšæããŸãã 'ããã©ã«ãã§ã¯éå§ãããŸããã ïŒãŸãã¯ãããµãŒãã¹ããšã®å€§ããªéããèŠéããŸãããïŒã
ãããã£ãŠãç§ã®æèŠã§ã¯ããªãã·ã§ã³2ïŒãæé©ã§ããå€æŽãæå°éã§æžã¿ãŸãããåæã«ãããã§èª¬æããã»ãšãã©ïŒãŸãã¯ãã¹ãŠïŒïŒã®ãŠãŒã¹ã±ãŒã¹ãæºããã®ã«ååãªæè»æ§ããããåæã«äœ¿çšãããšéåžžã«äŸ¿å©ã§ãã
ããã§ãããªãã·ã§ã³3ïŒãŸãã¯4ïŒã®ãããªãã®ãã¢ããã¹ããªãŒã ã«ããŒãžãããã®ãèŠãã®ãåæ§ã«å¬ããã§ãã ããã§ãããã§1幎以äžè°è«ããåŸãããããã€èµ·ãããããŸãã¯èµ·ãããã©ããã®ã¿ã€ã ã©ã€ã³ã¯ãããŸããïŒ
ãªãã·ã§ã³2ãããããæã䟵襲æ§ãäœãããšã«åæããŸãã ãªãã·ã§ã³4ãæäŸããå¯èœæ§ãããå¯äžã®æ©èœã¯ãæ¢åã®ã³ã³ãããŒã§ã³ãã³ããå®è¡ããæ©èœã§ãïŒdocker execã¡ã«ããºã ã䜿çšïŒã ããšãã°ãããŒã¿ããŒã¹ã®ç§»è¡ãŸãã¯åäœãã¹ããå®è¡ããã ãã®å Žåãã¢ããªãå®è¡ããŠããã³ã³ãããŒãæ¢ã«ããå Žåã¯ããã®ã³ã³ãããŒçšã«ãŸã£ããå¥åã®ã³ã³ãããŒãäœæããçç±ããªãå¯èœæ§ããããŸãã ãšã¯èšããã®ã®ãã³ã³ããã¯è»œéã§ããããªãã·ã§ã³2ã§å®å šã«æºè¶³ããŠããŸãã
@MadWombatãªãã·ã§ã³4ã«ã€ããŠãåãæ°æã¡ã§ãããã®ããããã®ãŠãŒã¹ã±ãŒã¹ã«å¥ã®æ©èœãææ¡ããŸããïŒïŒ4096ã ããã§èª¬æããæ©èœãšéè€ããŠããŸãããããèªäœã§ããŸãã¯ããã«å ããŠåœ¹ç«ã€å¯èœæ§ããããšæããŸã
@mathroc @acranããªãã·ã§ã³2ãš4ã®éã«ææå·®ããããã©ãããå°ããã®ã§ã docker execã䜿çšããŠãªãã·ã§ã³4ã«ã€ããŠèšåããŸããããã ããå ·äœçã«ã³ãã³ããå®è¡ãããå®éã®ãŠãŒã¹ã±ãŒã¹ãæãä»ãããšãã§ããŸãããç®çã®ããã«å¥ã®åæ§ã®ã³ã³ãããç«ã¡äžããã®ã§ã¯ãªããæ¢åã®ã³ã³ããã äžéšã®ãµãŒãã¹ãŸãã¯æ¢åã®ã³ã³ããã«ãã£ãŠãã§ã«äœ¿çšãããŠããä»ã®å¶éããããªãœãŒã¹ãžã®æ°žç¶çãªæ¥ç¶ãå¶éãããŠããã·ããªãªããããããããŸããããç§ã¯ãããèããããšãã§ããŸããã
ãªãã·ã§ã³4ãæäŸããå¯èœæ§ãããå¯äžã®æ©èœã¯ãæ¢åã®ã³ã³ãããŒã§ã³ãã³ããå®è¡ããæ©èœã§ãïŒdocker execã¡ã«ããºã ã䜿çšïŒã
ããã¯ç¢ºãã«ããµãŒãã¹ãšã¯ç°ãªãæ°ãããããã¬ãã«ã®æŠå¿µãå°å
¥ããããšãæ£åœåããïŒãããŠå¿
èŠãšããïŒæ°ãããŠãŒã¹ã±ãŒã¹ã§ãã ãã ããæ¢åã®ãµãŒãã¹ã³ã³ããå
ã§docker exec
ãä»ããŠã³ãã³ããå®è¡ããå¿
èŠããªãéããæ¢åã®ãµãŒãã¹ã®æŠå¿µã§ååã§ãã
ãã ãããã®ç®çã®ããã«å¥ã®åæ§ã®ã³ã³ãããŒãèµ·åããã®ã§ã¯ãªããæ¢åã®ã³ã³ãããŒã§ã³ãã³ããå®è¡ããããšããå®éã®ãŠãŒã¹ã±ãŒã¹ãæãã€ãããšã¯ã§ããŸããã
ç§ãèããããšãã§ããæãè¿ãã±ãŒã¹ã¯ãã³ã³ãããŒå ã®æ§æãã¡ã€ã«ãå€æŽããã¢ããªã±ãŒã·ã§ã³ã«ãããªããŒããããªã¬ãŒãããããªãã®ã§ãã ïŒ4096ã®@mathrocã®äŸã䜿çšïŒ
version: "2"
services:
my_service:
image: my/service
shortcuts:
start-debugging:
service: my_service
command: echo "debug=true" > /etc/myapp/conf.d/debug.conf && mydaemon --reload-config
stop-debugging:
service: my_service
command: echo "debug=false" > /etc/myapp/conf.d/debug.conf && mydaemon --reload-config
ãã®åé¡ã«é¢é£ããŠããŸãããïŒ4096ã«ã¯ç¬èªã®ãŠãŒã¹ã±ãŒã¹ãããããªãã·ã§ã³4ïŒãããã«ç§»åããã®ãæåã§ããããïŒ
1幎以äžã®è°è«ããããç§ãã¡ã¯ãã以äžå ã«æ±ºå®ãäžãããšãã§ããªãããã§ãã @bfirshã¯ã¹ã¿ã€ã«ãéžãã§ããã
+1
+1ãããã¯éåžžã«äŸ¿å©ãªæ©èœã§ãã
ãããŠããªãã·ã§ã³2ã®+1ã¯ã auto-start: false
ãenabled: false
ã§ãã
ç§ã®ãŠãŒã¹ã±ãŒã¹ã¯ãµãŒãã¹ã®æ¡åŒµã§ãã depends_on
èšå®ãããŠãããµãŒãã¹ãæ¡åŒµããããšã¯ã§ããªãã®ã§ãç§ãããããã®ã¯ããµãŒãã¹ãã³ãã¬ãŒããå®çŸ©ããããããããã€ãã®ãµãŒãã¹ãæ¡åŒµããããšã§ãã æããã«ããã³ãã¬ãŒããäœæããå¿
èŠããããŸãããèªåã§å®è¡ããªãã§ãã ããã
ç§ã¯ç¬èªã®ãœãªã¥ãŒã·ã§ã³ãäœæããèªç±ã«äœ¿çšã§ããããã«ããŸããã
ãŸã ããŒã¿çã§ã:)
ããã«ã¯ããããã®çŽ æŽããããªãã·ã§ã³ããããŸãã ãã®æ©èœã®å¿ èŠæ§ã¯çŸå®ã®ãã®ã§ãã
ãªãã·ã§ã³2ã¯ãæããã«ãã人æ°ã®ããåºæ¥äºã§ãã
1-> 4
2-> 52
3-> 3
4-> 10
ãªãã·ã§ã³2ã®å¥ã®ð
ããã¯ãæåã®ãšã³ããªãã€ã³ããŸãã¯åã«æ»ãã³ãã³ãã䜿çšãããããŒã«ããµãŒãã¹ã§ããªãç°¡åã«åŠçã§ããŸãã 次ã«ãå¥ã®ã³ãã³ãã䜿çšããŠãã®ãµãŒãã¹ãå®è¡ããå¿ èŠãªåŠçïŒãã¹ããããŒã¿ã®ã·ãŒããªã©ïŒãå®è¡ããŸãã äŸãã°
docker-compuse up -d
docker-compose run tools tests
ã¯ããããŒã«ãµãŒãã¹ã¯docker-compose ps
ã§ãåæ¢ããšè¡šç€ºãããŸãã ãããåãå
¥ããããªãå Žåã¯ã httpsïŒ//github.com/docker/compose/pull/2051ã®ãã«ããã¡ã€ã«ãªãã·ã§ã³ãæ©èœã
docker-compose -f docker-compose.yml -f docker-compose-tools.yml up -d
docker-compose -f docker-compose-tools.yml logs -f tools
å€ãã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãã«ããŒããã®å¿ èŠæ§ã®ããã«æžãããŠããããã«èŠããŸãããç§ã1ã€ã«åãçµãã§ãã眪ãç¯ããŠããŸã:)ã
å人çã«ã¯ãååãªåé¿çãããïŒäžèšã®2ã€ããšã³ããªãã€ã³ã/ã³ã³ããã§ã¯ãªãšã€ãã£ãã«ãªããããã³/ãŸãã¯ã·ã§ã«ãšã€ãªã¢ã¹/ãã«ããŒã§ãã«ããã¡ã€ã«ã¢ãããŒãã䜿çšããïŒãäœæãã·ã³ãã«ã«ä¿ã€ããšãã§ãããšæããŸãã
@briceburgã¯ãäžèšã®èª¬æãåç §ããŠãã ãããããã§ã®åé¡ã¯ãä»ã®æ¹æ³ã§ã¯å®è¡ã§ããªãã£ãæ©èœã®æ¬ èœã«é¢ãããã®ã§ã¯ãããŸããã ããã®äººã ãéæãããã»ãšãã©ãã¹ãŠã®åé¿çããããŸãã ãããããããã¯docker-composeã®éåžžã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ãªããåé¿çãšããŒãã£ããã¯ã§ãã
ããã¯äŸ¿å©ãã«ã€ããŠã§ãããCLIã§docker-compose -f docker-compose.yml -f docker-compose-tools.yml up
ãæã§å
¥åããå¿
èŠããªãããšã«ã€ããŠã§ãããããdocker-compose run tools tests
ãdocker-compose run utils tests
ããèŠããŠããå¿
èŠããªããããããã¯é Œãå¿
èŠãããããŸããã _è€æ°ããŒãžã®ãéçºè
å
¥éã¬ã€ãã_ã§ããã代ããã«éçºè
åãã®çµ±äžãããã·ã³ãã«ãªã€ã³ã¿ãŒãã§ã€ã¹ãåããŠããŸãã
ããã§ããCCing @bfirshã@dnephinïŒããªãã¯ãã®åé¡ã«_any_ãã£ãŒãããã¯ãæäŸããŠãã ããã ãããïŒ docker-compose
ã®ä»åŸã®ããŒããããã§ãã®ãããªãã®ãèŠãããšãã§ãããšããåžæã¯ãããŸããïŒ
åçŽãªç°å¢ã®@briceburgã¯ãåé¿çãåãå ¥ããããå ŽåããããŸãããåãå ¥ããããªãå ŽåããããŸãã ç§ã®èšå®ãèŠãŠãã ããïŒ
rancher<strong i="7">@rancher</strong>:~/servers/sgi/docker$ ls -l
total 64
-rwxrwxr-x 1 rancher rancher 303 Dec 8 20:05 cleanup.sh
drwxrwxr-x 3 rancher rancher 4096 Dec 16 15:26 conf
drwxrwxrwx 4 rancher rancher 4096 Dec 15 20:03 data
-rw-rw-r-- 1 rancher rancher 94 Dec 14 19:40 docker-compose.amt.yml
-rw-rw-r-- 1 rancher rancher 295 Dec 8 20:05 docker-compose.auth.yml
-rw-rw-r-- 1 rancher rancher 332 Dec 8 20:05 docker-compose.ci.yml
-rw-rw-r-- 1 rancher rancher 112 Dec 8 20:05 docker-compose.dbext.yml
-rw-rw-r-- 1 rancher rancher 347 Dec 14 19:40 docker-compose.dbint.yml
-rw-rw-r-- 1 rancher rancher 688 Dec 15 16:31 docker-compose.full.yml
-rw-rw-r-- 1 rancher rancher 81 Dec 8 20:05 docker-compose.local.yml
-rw-rw-r-- 1 rancher rancher 288 Dec 15 16:31 docker-compose.yml
-rwxrwxr-x 1 rancher rancher 721 Dec 14 19:40 redeploy.sh
-rwxrwxr-x 1 rancher rancher 861 Dec 8 20:05 setup.sh
-rwxrwxr-x 1 rancher rancher 66 Dec 8 20:05 shutdown.sh
-rwxrwxr-x 1 rancher rancher 269 Dec 14 19:40 startup.sh
drwxrwxr-x 2 rancher rancher 4096 Dec 14 19:40 worker
worker
ãã£ã¬ã¯ããªã«ãããã¡ã€ã«ã®ä»ã«ã8ã€ã®äœæãã¡ã€ã«ïŒè€æ°ã®çµã¿åããã§äœ¿çšïŒãããããããã©ã«ãã§ã¯éå§ããªããã³ã³ãããŒãæ§æããŸãã worker
ãã£ã¬ã¯ããªïŒèŠªã«ãªã³ã¯ããã.envãã¡ã€ã«ãšã芪ã®.env COMPOSE_FILEå€æ°ã«æºæ ããããã®ããã€ãã®ç©ºã®äœæãã¡ã€ã«ãå«ãïŒãç§ã®åé¿çã§ããã次ã®ãœãªã¥ãŒã·ã§ã³ãããã°ãç§ã®ç掻ã¯ã¯ããã«æ¥œã«ãªããŸããã®åé¡ã
@vipseixasãã¡ã€ã«ãªã¹ããããã®ãœãªã¥ãŒã·ã§ã³ã®å¥å šæ§ã
ã»ãšãã©ã®å Žåããã¹ããå®è¡ããåã«ãäŸåãããµãŒãã¹/ã³ã³ãããŒã§ãã«ã¹ãã§ãã¯ãæž¡ãããããšã確èªããå¿ èŠããããŸããããšãã°ããããã®ãã¹ããå®è¡ããåã«ãjenkinsã皌åããŠããïŒïŒ8080ãªã©ã§æ¥ç¶ãåãå ¥ããïŒã 以åãç§ã¯ããã«dockerizeã䜿çšããŸããã
ç¹å¹è¬ãææ¡ããå Žåãç°å¢å€æ°ïŒDOCKER_COMPOSE_PROFILE = "tests"ãªã©ïŒãä»ããŠäœæãããã¡ã€ã«ãèšå®ã§ããããã«ãããµãŒãã¹ããããã¡ã€ã«ã«äŸåã§ããããã«ããŸãããã¹ãŠã®ãµãŒãã¹ã¯ããã©ã«ãã§ãããã©ã«ããã«ãªããŸãã ããããã£ãŒã«ãäœãã ãŸããå¥ã®ãµãŒãã¹ã«äŸåããŠãããµãŒãã¹ãããã®ãµãŒãã¹ã®HEALTHCHECKã«_äŸå_ããŠããããšã確èªããŸãã ã ããäœãã®ãããª
app:
image: myapp:v1
tests:
image: myapp:tests
dependencies:
- profile: "tests"
- service: "app"
healthcheck: true
# run the things
docker-compose up -d
# test the things
DOCKER_COMPOSE_PROFILE="tests" docker-compose up -d
DOCKER_COMPOSE_PROFILE="tests" docker-compose logs -f
ãªãã·ã§ã³2ã®å Žåã¯+1ã
ããã®å€ãã¯èå³æ·±ãæ°æ©èœãææ¡ããŠããŸãããããã§ã®åé¡ã®æ žå¿ã¯äœã§ããïŒ ç§ã¯ãããã§ããã ãåçŽã«ä¿ã€ããšã«æ祚ããŸãã
çŸåšã®ãšãããdocker-compose.ymlå
ã®ãã¹ãŠã®ãµãŒãã¹ã¯docker-compose up
èµ·åããããšæ³å®ããŠããŸãã ç§ãã¡ã¯çãç¬èªã®ã«ã¹ã¿ã ããŒãã¹ãã©ããã¹ã¯ãªãããmakefileããã«ãããŒã«ãªã©ã䜿çšããŠããŸãã幞ããdocker-composeãšdockerã¯ã©ã¡ããããããã³ã·ã³ã¯ãã皌åããããšãåã
ã®ã³ã³ãããŒã管çããããã®åºç¯ãªAPIãå
¬éããŸãã
ç§ã®å¯äžã®å¿ èŠæ§ããã®è°è«ã«ç§ãå°ããäžå¿çãªå¿ èŠæ§ã¯ãç§ãå®çŸ©ãããµãŒãã¹ã®1ã€ããäœããã®çç±ã§ããã©ã«ãã§ãã¢ãããããããã®ã§ã¯ãªãããšãæå®ããããšã§ãã
ç§ãã¡å
šå¡ã«ãšã£ãŠããããæãéãããæãç°¡åãªæ©èœã¯äœã§ããïŒ ããã¯ã docker -compose.ymlä»æ§ïŒ autostart: false
æå®ã§ããŸãã
ç§ã¯æ祚ããŸãïŒãç§ãã¡ã®ããã«äœããããŠãã ãããããããšããã æ祚ããŸããå°ãªããšã1ã€ã®çããå¿ èŠã§ãã 4ç¥ïŒ
ç§ãã¡å šå¡ã«ãšã£ãŠããããæãéãããæãç°¡åãªæ©èœã¯äœã§ããïŒ ããã¯docker -compose.ymlä»æ§ïŒ
ããã¯ä»ã®ã©ã®éžæè¢ããããã£ãšè¯ãã§ã:)
ãšãŠãç°¡åã§ãã
scale: 0
https://github.com/docker/compose/issues/1661
@ drew-räœïŒ
@ jonathanborges1542 docker-compose scale servname=2
ã§ãã docker-compose.yml
ãã¡ã€ã«ã«åçã®ãã®ã¯ãããŸããã
@ drew-r scale: 0
çŸåšããµãŒãã¹ã®ãã¹ãŠã®ã³ã³ãããŒã«SIGTERM / SIGKILLãéä¿¡ããããã«dockerããŒã¢ã³ã«æ瀺ããŠããŸãã ããã«ãããã¡ã³ããã³ã¹ãžã§ãããŸã å®äºããŠããªãå Žåã§ããã¡ã³ããã³ã¹ãžã§ãã匷å¶çµäºãããŸãã ãããäºæ³ãããåäœã§ãã ãããå€æŽããããšã¯ãçŸæç¹ã§æ確ãªåäœã§ãããã®ããªãŒããŒããŒãããæªãã±ãŒã¹ã«ãªããŸãã
@gittycatããããŸããããããã§å¿ èŠãªã®ã¯ãdocker-compose upããšå ¥åããããšã§ããã¹ãŠã®æºåãæŽããŸãã ãã®å Žåãããã¯æ©èœããŸããã
ç§ã¯ãã®ãããã¯ã1幎以äžãã©ããŒããŠããŸãïŒã»ãšãã©ã®æçš¿ã¯DockeråŽã«ãããŸãïŒã
ããµãŒãã¹ãããããªã¥ãŒã ããããããã¯ãŒã¯ããšå
±åããæ°ãããããã¬ãã«ã®ãä»äºããæè¯ã®éžæè¢ã ãšæããŸãã ããã¯ãäžèšã®OPãªã¹ãã®ãªãã·ã§ã³4ã§ãã
ããã¯ãDockerãªããžããªã§ã®ææ¡ã§ããããŸãã
https://github.com/docker/docker/issues/23880
@briceburg
ãã¡ã€ã«ãªã¹ããããã®ãœãªã¥ãŒã·ã§ã³ã®å¥å šæ§ãå€æããã®ã¯å°é£ã§ã
å€ãã®ãã¡ã€ã«ã®çµã¿åããããããè€æ°ã®ã-fããªãã·ã§ã³ã䜿çšãããšãšã©ãŒãçºçãããããæåã§å®è¡ã§ããªãããšã瀺ãããšãç®çã§ããã
èªåèµ·åããããªããµãŒãã¹ã«å¯ŸããŠã¯äœãããªãããã©ã«ãã®ãšã³ããªãã€ã³ã/ã³ãã³ãã䜿çšããããšããå§ãããŸãã
æã«ã¯éåœããéããããšã¯ã§ããŸããã ããããç§ã¯èªåã®è§£æ±ºçã奜ã¿ãŸãããæ§æããããããšã®ãªãå¥ã®ãã£ã¬ã¯ããªã䜿çšããã®ã§ãç°å¢ãæ±æããç¡é§ãªåæ¢ã³ã³ããã¯ãããŸããã ãã®ããã芪ã.envãã«ãªã³ã¯ãããã.envããæã€ã¯ãŒã«ãŒãã£ã¬ã¯ããªããããŸãã
ç¹å¹è¬ãææ¡ããå Žåã¯ãç°å¢å€æ°ïŒDOCKER_COMPOSE_PROFILE = "tests"ãªã©ïŒãä»ããŠäœæãããã¡ã€ã«ãèšå®ã§ããããã«ããŸãã
ãããæåã®è§£æ±ºçã§ãã ããããéçºè ãè€éããå¢ãåŸåããããšã¯æããŸãã...
ããŒã¹ã€ã¡ãŒãžãäœæãããããåãdocker-compose.ymlã§ãæ¡åŒµãããŠã2çªç®ã®ã€ã¡ãŒãžã®ã¿ãéå§ããŸããããã¯ãçŸæç¹ã§ã¯1ã€ã®ã¹ãããã§ã¯å®è¡ã§ããŸããã ãªãã·ã§ã³2ã®å Žåã¯ãããªããŸãããããŒã¹ã€ã¡ãŒãžã®äœæãè¡ãããããã«ãã¹ããŒãžããšãå®è¡ã¹ããŒãžãã䜿çšããæ¹ãããé©åã§ã¯ãªãŒã³ãªæ¹æ³ãããããŸããã çŸæç¹ã§ã¯ã1ã€ã ãã§ãªã2ã€ã®ã³ãã³ããå®è¡ããå¿ èŠããããŸãã
+1 @ draw-rïŒ1661
ãã®åé¡ã¯ããæç¹ã§å®è£ ãããäºå®ã§ããããããšãæ§æéçºè ããããããªãããšã§ããïŒ ã³ãã¥ããã£ãå¥ã®è§£æ±ºçãæ¢ãå§ããããšãã§ããããã«ç¥ã£ãŠãããšããã§ãããã
ã¡ãªã¿ã«ç§ã¯ãªãã·ã§ã³2ã«æ祚ããŸãã
ããããšãããããŸãã
ãªãã·ã§ã³2ã®å Žåã¯+1ã
ãã ããæ瀺çãªäŸåé¢ä¿ã¯å°éãããŸãã... links
ãªã©ïŒ
docker-compose up [service]
ã§èµ·åãããµãŒãã¹ãæå®ããŠããå Žåãåé¡ã®ãµãŒãã¹ãšãã®äŸåé¢ä¿ä»¥å€ã®ãµãŒãã¹ãéå§ããããšã¯ãã£ãã«ãããŸããã
ãªãã·ã§ã³2ãžã®å¥ã®æ祚ã @ acranãäœæããŠ
äœæéçºè ããããæãŸãªãå Žåã¯ããããäžåºŠã ãè¿°ã¹ãŠããããã±ãããéããŠããã¯ããã³ã¡ã³ããé²ãå¿ èŠããããŸãã
@msabramoã®äœæã¯ãåºæ¬çã«Dockerãšã³ãžã³ã¬ãã«ã§æ±ºå®ãããå 容ã«ãã£ãŠåŠšããããŸãã
ãªã¯ãšã¹ãã¯ãDockerãšã³ãžã³ãªããžããªhttps://github.com/docker/docker/issues/23880ã§è¿œè·¡ãã
ãããã決å®/äœæ¥ãè¡ãããŸãã
ãã®åé¡ã解決ããããšããå§ãããŸãã
@gittycat composeã«ã¯ããšã³ãžã³ã«ãµãŒãã¹ãéå§ããããã«æ瀺ãããã©ããã®ãªãã·ã§ã³ããããŸãã ããã¯ãŸã éåžžã«æå¹ãªãªã¯ãšã¹ãã§ãã
ç§ã¯æ¬çªç°å¢ã§DockerããããããŸããããå€ãã®åé¡ããããŸãã 次ã«ãvagrantã«ç§»è¡ããŸãã
2ïŒãžã®å¥ã®æ祚
2ãš4ã®å¥ã®æ祚ã
ãŠãŒã¹ã±ãŒã¹ãææããããã«ãäžéšã®ãµãŒãã¹ã«ã¯åŸªç°äŸåé¢ä¿ããããæ§æãã¡ã€ã«ãçæããå¿ èŠããããä»ã®å€ãã®å¯èœæ§ã®äžã§ãã¹ãã¹ã€ãŒããå®è¡ããŸãã Dockerããåãé¢ããããä»ã®ããŒã«ã䜿çšãããã§ããŸããããããžã§ã¯ãã®èšå®ãäžå¿ èŠã«è€éã«ãªããŸãã
ã»ããã¢ããããã¹ãã®ããã®ç°¡åãªã³ãã³ãããããšãç©äºããã£ãšãããã«ãªããŸãã
2ã«ããäžåºŠæ祚ããŠãã ããïŒ
ãã®ã¹ã¬ãããèªãã ããšããããŸãããæ°ããæçš¿ïŒhttps://github.com/docker/compose/issues/4650ïŒãäœæããããšã«ããŸããããã®æçš¿ã¯éããããããã§çŽ¹ä»ãããŸããã ç§ãèšãããã£ãã®ã¯ããã®ã¹ã¬ããã§ã®è°è«ã®ã»ãšãã©ã¯å®è¡äžã®ã³ã³ãããŒãç¡å¹ã«ãããã©ã°ã«é¢ãããã®ã§ãããç§ã®ãŠãŒã¹ã±ãŒã¹ã¯3çªç®ã®ç¶æ ã§ããã³ã³ãããŒã®äœæã§ãã
ã³ã³ãããŒãå®è¡ãããªãããã«ããã ãã§ãªããæåããã³ã³ãããŒãäœæã§ããªãããã«ãããïŒç§ã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ããããå®çŸãããŠãŒã¶ãŒäž»å°ã®ããã»ã¹ããããŸãïŒ
@ekkisã©ãããŠãããªã£ãã®ã
ããªãã®åé¡ã«ã€ããŠãã£ãšè©³ããæããŠããã ããŸãããïŒ
@frnco ãããªããäœã«ã€ããŠãã£ãšè©³ããç¥ãããã®ãããããŸããã ã³ã³ãããäœæããã«ã€ã¡ãŒãžãäœæãããå ŽåããããŸãã ç§ã®ã¯ãã®ãããªã±ãŒã¹ã®1ã€ã§ãã ç¹å®ã®ç»åãä»ã®å€ãã®ç»åãšäžç·ã«äœæãããã®ã§ããããã®ç¹å®ã®ç»åã¯ãç§ãäœæããããã»ã¹ã§äœ¿çšãããŸãã ãã«ãããããã®2ã€ã®å¥ã
ã®ããã»ã¹ãå¿
èŠã§ã¯ãªãã build-only
ãã©ã°ãèšå®ãããšããã®åé¡ã解決ã§ããŸãã
@ ekkis ïŒ963ã
ãªãã·ã§ã³2ã®å Žåã¯+1
ãªãã·ã§ã³2ã®å Žåã¯+1
ãªãã·ã§ã³2ã®å Žåã¯+1
ãªãã·ã§ã³2ã®å Žåã¯+1
ãªãã·ã§ã³2ã®å Žåã¯+1
ãªãã·ã§ã³2ã®å Žåã¯+1
ïŒ+1ïŒãªãã·ã§ã³ïŒ2ã§ããã®æ©èœã®èŠç©ããã«ã€ããŠè³ªåããããŸããïŒ æåã®åé¿çã¯äœã§ããïŒ ç§ãæ³åã§ããéãã次ã®ãããªãã¹ãŠã®ãµãŒãã¹ããªã¹ãããå¿ èŠããããŸãã
docker-compose up service1 service2 service3
...ãããŠããã©ã«ãã§éå§ããããªããã®ãçç¥ããŸã
ãªãŒãã³ãœãŒã¹ã³ãã¥ããã£ã®ç§ãã¡ãã匷ãèŠæ±ãããŠããããã«èŠãããã®æ©èœã«è²¢ç®ã§ããæ¹æ³ã¯ãããŸããïŒ
ãªãã·ã§ã³2ã®å Žåã¯+1ã
'ã¹ããŒãž'ãæå®ããæ¹æ³ã¯çŽ æŽãããã§ãããã ããšãã°ããµãŒãã¹ã¯æ¬çªç°å¢ã§ã®ã¿å®è¡ãããŸãã
ãªãã·ã§ã³2ã®å Žåã¯+1ã
ãªãã·ã§ã³2ã«æ祚ãã
up
ã³ãã³ããã£ã«ã¿ãªã³ã°ã¯å®ç§ã§ãâ docker-compose up service1 service3
ïŒ+1ïŒãªãã·ã§ã³2ããã³4ã®å Žå
ãã®æç¹ã§ããªãã·ã§ã³2ããŠãŒã¶ãŒãæãã§ããããšã¯æããã§ãã ãããå®çŸããããã®æ¬¡ã®ã¹ãããã¯äœã§ããïŒ
ããã§ãªãã·ã§ã³2ã®+1ã«ããã®æ©èœããã§ã«ååšããããšãæåŸ ããŠãã®åé¡ã«ééããŸããã
ãªãã·ã§ã³2ã§+1
...ãããŠãªãã·ã§ã³2ã®å Žåã¯ãã1ã€+1
ãªãã·ã§ã³2ã®å Žåã¯+1
ãªãã·ã§ã³2ã®+1 :-)
ãªãã·ã§ã³2ããã³4ã®å Žåã¯+1
ããã«ã¡ã¯ãã¿ããªã
+1ãªãã·ã§ã³2
IMHOããªãã·ã§ã³ã¯ããã€ã¯ããµãŒãã¹ãŸãã¯å è§åœ¢ã®ã¢ãŒããã¯ãã£ã«åºã¥ãã¢ããªã±ãŒã·ã§ã³ãããå ŽåãããŒã«ã«ç°å¢ã§éåžžã«åœ¹ç«ã¡ãŸãã éçºè ãšããŠãç§ã¯èªåã®æãè¿ãä»äºã«å¿ èŠãªèŠçŽ ã ããå®è¡ã§ããŸãã
ãªãã·ã§ã³2ã¯ãã»ãšãã©ã®ãŠãŒã¶ãŒãæãã§ãããã®ã§ãã ããã«é¢ãã決å®ã¯ãŸã è¡ãããŠããŸãããããããšãããã«é¢ããéçºãéå§ãããã©ããã§è¿œè·¡ãããŠããŸããïŒ
æ°ãæã§å€§åŠãåæ¥ããŠæéãããã°ããã®æ©èœãèªåã§å®è£ ããæ¹ãã¯ããã«éããšæããŸãïŒãã ããcomposeãæžãããŠãããšæãPythonãåŠãã ããšã¯ãããŸããïŒãããããèŠãŸãããèšå€§ãªæ°ã®æ祚ãšãªã¯ãšã¹ãã2幎éãåé²ããããšãªããèªå·±å®è£ ã次ã®5幎éã®è§£æ±ºçã®ããã§ãïŒãã®æ©èœãæ£åŒã«å®è£ ããããŸã§ïŒã
ãã¡ããããªãã·ã§ã³2ã®å Žåã¯+1000
+1ãªãã·ã§ã³2
ãªãã·ã§ã³2ã«æ祚ããå Žåãéãã¯ãããŸããïŒ 'ãããªãå¯èœæ§ã¯äœãããã§ãã
ããã§ã®ã³ã¡ã³ãã¯æè¿ãäžæ°å³ã«ãªããæ°ãããã£ãŒãããã¯ã¯å®éã«ã¯è¡šé¢åããŠããªãããããã®ã¹ã¬ãããããã¯ããããšãæ€èšããŠããŸãã ããã§ããåããããšãã¯ã瀌åæ£ããããŠãã ããã
ããã¯ããã®åé¡ã«é¢ããã¡ã³ããããŒã ã®çŸåšã®å ¬åŒã®ç«å Žã§ãã ãã®æ©èœãè¿œå ãããããŸãã¯åæ§ã®æ©èœã䟿å©ãªãªãã·ã§ã³ãšããŠè¿œå ãããã¯ãŸã æ€èšäžã§ããã匷調衚瀺ãããŠããçç±ãšãããã«é©ããä»ã®ããŒã«ãååšãããããåªå äºé ã§ã¯ãããŸããã
@ shin-ãããããã¯ããåã«ãã³ãã¥ããã£ãéçºããææããããã©ãããæ確ã«ããããšãã§ããŸããïŒã³ã¢ããŒã ã¯ãããŒã ã®åºæºãæºãããŠããå ŽåããããããŒãžããŸããïŒ ã¹ã¬ããã«ã¯ãå®è£ ãšãããå®äºããããšãããšããªãã³ãã¥ããã£ã¡ã³ããŒãããã圌ãã¯ããã圌ãã®æè³ã®ç¡é§ã§ã¯ãªããšããããã€ãã®ç¢ºèªãæ¢ããŠããŸããã ãã£ãŒãããã¯ãåŸãããšãã§ããã°ããããã®ã¹ã¬ããã远跡ããŠç§»åãããããã¯ããŒãžã£ã«ç§»åã§ãããã©ããã確èªããŸãã
@jimzuckerããã-ããã§ã®åé¡ã¯å®è£ ã§ã¯ãªãããã§ãã ããã®åºæ¬çãªå®è£ ã¯ãå¹³åçãªéçºè ã«ãšã£ãŠåæ¥ããããŸãã ããã§æžå¿µããŠããã®ã¯ãåºæ¬çãªèšèšã®åé¡ã§ãã
ãã®æç¹ã§ãããã¯ãã¹ã³ãŒããšè€éãã®ç¹ã§ããããcmake
ã«äžèŽãããããããè¶
ãããŸã£ããæ°ããã³ãŒãã«ãªã£ãŠããŸãã ãããããããé·ãéå®è£
ããããšã«æµæããçç±ã§ããããã¯ãComposeãæå³ããããšã§ã¯ãªãããšããããŸããã[3]ãã®æ©èœãå®è£
ãŸãã¯ç¶æããããã®æéããªãœãŒã¹ããªãããã§ãã人ã
ã«ãšã£ãŠæ¬åœã«åœ¹ç«ã€ãã®ã«ãªãå¿
èŠãããã§ãããã
ããŸãããã°ãããã¯ç©äºãããå°ãæ確ã«ããŸãã ç§ã¯äººã ããã®ã¹ã¬ããã§ã®å¿çïŒãŸãã¯ãã®æ¬ åŠïŒã«åæºããŠå€±æããŠããããšãç¥ã£ãŠããŸãããããŠãããäœããã®åœ¢ã§ããã軜æžãããã©ããã¯ããããŸããããããã¯ãããŸãã
[1]ããªãã·ã§ã³ã®ãµãŒãã¹ããå¿
èŠã ãšèšã人ãããŸãããããã¯ãã®ã¹ã¬ããã§èšåãããŠããæãäžè¬çãªãŠãŒã¹ã±ãŒã¹ã§ã¯ãããŸããã ç§ã®ç¥ãéããã»ãšãã©ã®äººã¯ãã¿ã¹ã¯ãæ©èœãæãã§ããŸãã
[2]ããŒããå
¬éããå¿
èŠãããã¿ã¹ã¯ã®äŸã§èª°ããç§ãšççŸããããšã¯ééããããŸãããããã¯ãåã»ããã«é©çšã§ãããªãã·ã§ã³ã決å®ããç·Žç¿ãç°¡åã§ã¯ãªãããšã瀺ãã ãã§ãã
[3]ãããŠãçŸæç¹ã§docker-compose
ç©æ¥µçã«åãçµãã§ããã®ã¯ç§ã ããªã®ã§ããã®æç¹ã§ç§ã¯ãç§ããæå³ããŸãã
@ shin-èŠç¹ãããããŸãã ç§ãè¿œæ±ããŠããã®ã¯ãè泚ã®ããªãã·ã§ã³ãµãŒãã¹ããšãã®ãŠãŒã¹ã±ãŒã¹ã§ãããã¿ã¹ã¯ã®ã¢ã€ãã¢ã§ã¯ãããŸãããããã¯ç§ãæè·ããããšããŠããã¹ã¬ããã®äžéšã§ãã£ãããããã®ãã€ã³ããã©ã®ããã«é²ããããšãã§ãããã«ã€ããŠãã©ããããããåæã§ããŸãããç§ã®ãã±ããã¯ããã®ã¹ã¬ãããæ¯æããŠéãããããã®ãã¹äžã«æ確ã«ãããŸãã ããªãããã¿ã¹ã¯ããšããŠæ確ã«å®çŸ©ãããã€ã³ããããããåé¢ããããšãã§ããã°ãç§ãã¡ã¯ããããåé²ããããšãã§ããŸãã ç§ã®èªæžã§äººã ããªãã·ã§ã³2ã«å¯ŸããŠ+1ãããŠãããšããããã¯ãªãã·ã§ã³ã®ãµãŒãã¹ã«å¯Ÿãããã®ã§ãã ããããªãã©ã€ã³ã«ããŠè©±ãåãããã©ãŒã©ã ã«æ»ãããšãã§ããŸããç§ã¯[email protected]ã«ããŸãã
@ shin-ããªãã®ãã€ã³ãïŒ2ã¯ééã£ãŠããŸãã ãµãŒãã¹ã¯ãå®è¡ãããŠãããã©ããã«é¢ä¿ãªããµãŒãã¹ã§ãã äŸåé¢ä¿ãå©çšã§ããªãå Žåã«äŸåãµãŒãã¹ãåäœãå€æŽãããŠãŒã¹ã±ãŒã¹ã¯ç¡æ°ã«ãããŸãããã®ãããã¢ããªã±ãŒã·ã§ã³å±€ã§ã¯ããã¹ãŠã®ããµãŒãã¹ããåžžã«å©çšå¯èœã§ããå¿ èŠã¯ãããŸããã
æãäŒçµ±çãªçšèªã§èããå ŽåãWebãµãŒããŒã¯ããµãŒãã¹ãã§ãããšèããŠãã ããããã ããç¹å®ã®ãã¹ãã§ããã©ã«ãã§èµ·åããªãããã«ã·ã£ããããŠã³ãŸãã¯æ§æããããšã¯ã§ããŸããããµãŒãã¹ä»¥å€ã®ããšã¯èª°ãèããŸããã
ãã®æ©èœãèŠæ±ããŠããå€ãã®äººã¯ãã¿ã¹ã¯ã§ã¯ãªããªãã·ã§ã³ã®ãµãŒãã¹ãå®è¡ããããšæã£ãŠãããšæããŸãã ããšãã°ãDockerã³ã³ãããŒãšããŠå®è¡ãããŠããäžé£ã®ãã€ã¯ããµãŒãã¹ããããããããã¹ãŠããµãŒãã¹å šäœãšããŠãããã€ããå Žåããã€ãèŠä»¶ãå€æŽããããã¹ãŠã®ãµãŒããŒã§ãã¹ãŠã®ã³ã³ãããŒãå®è¡ããå¿ èŠããªããªãå¯èœæ§ããããŸããå¿ é ã§ã¯ãªãã³ã³ãããŒã«å«ãŸããŠããç¹å®ã®æ©èœã¯å¿ èŠãããŸããã
ããã«ãããã¯éçºç°å¢ã«ãšã£ãŠçŽ æŽãããæ©èœã ãšæããŸãã ç¹å®ã®ã³ã³ããã®ãã°ãä¿®æ£ããå Žåããã®ã³ã³ããã®ãã¹ãŠã®ã³ã³ãããèµ·åããå¿ èŠã¯ãããŸããã
æ£ç¢ºã«èšãã°ãåçŽãªããŒã«ãã£ãŒã«ãã䜿çšãããšã .env
ãã¡ã€ã«ãããµãŒãã¹ãç°¡åã«æå¹/ç¡å¹ã«ããyamlãã¡ã€ã«ã®ç·šéãåé¿ã§ããŸãã
@ekkisãã©ãŒã«ããã¬ã©ã³ã¹ãšãã£ã¹ãã³ãµ
å
šå¡ïŒã¢ããªã±ãŒã·ã§ã³ã§äžéšã®ãµãŒãã¹ããªãã·ã§ã³ã§ããå ŽåãçŸåšã®æ©èœã§ãããåŠçããããšã¯ãã§ã«å¯èœã§ããããšã«æ³šæããŠãã ããã ãããè¡ãããã®æšå¥šãããæ¹æ³ã¯ã -f
ãã©ã°ã䜿çšããŠå«ãããé€å€ãããã§ããåå¥ã®äœæãã¡ã€ã«ãçšæããããšã§ãã ãããã¯ããã®ãªãã·ã§ã³ãè¿œå ããããã®éåžžã«èª¬åŸåã®ããè°è«ã§ã¯ãããŸããã
@ shin-ãã®å¯Ÿè©±ã«æéãå²ããŠããã ãããããšãããããŸãã è€æ°ã®ymlãã¡ã€ã«ãææ¡ãããšããµãŒãã¹ã®ãªã¹ããæž¡ãããšãã§ããŸããããããã¯äŸ¿å©ã§ã¯ãªãããŠãŒã¶ãŒãšã©ãŒãçºçããŠãªãã¬ãŒã·ã§ãã«ãªã¹ã¯ãçºçãããããããã€ãã®æ¹æ³ãããããšã«åæããŸãã ç¹ã«åçšè£œåã®å Žåã1ã€ã®äœæãã¡ã€ã«ãé åžããããã©ã«ãã§ç®çã®äžè¬çãªåäœãååŸããŠé«åºŠãªãªãã·ã§ã³ã®æ瀺ãåºããŸãã1ã€ã®ãã¡ã€ã«ã§ãéçºãCI / CDãããã³é åžã®äž¡æ¹ã§ããã»ã©ãã£ããããŸãã ããã©ã«ãã§ENVå€æ°ãè¿œå ããããšã¯ãç§ãã¡ã«ãšã£ãŠå€§ããªå©ããšãªããå€ãã®ymlãã¡ã€ã«ãæã€å¿ èŠããªããªããŸãããããã¯ããããã€ã¡ã³ããèšè¿°ããåäžã®ãã¡ã€ã«ã管çããããã®ãã1ã€ã®ã¹ãããã«ãªããŸãã
ã³ã¢ããŒã ããã®LMKãžã®è²¢ç®ãåãã§åãå ¥ãã圢ã¯ãããŸããã
@shin ããã©ãŒã«ããã¬ã©ã³ã¹ãŸãã¯ãã£ã¹ãã³ãµ
@ shin-ç§ã¯@ekkisã«åŒ·ãåæããŸãïŒéå§ãããªãããšã¯_ããã©ã«ãã§_ãµãŒãã¹ã§ãããšããå®çŸ©ã«éåããªãã®ã§ãããªãã®ãã€ã³ã2ã¯_å¿ ããã_çå®ã§ã¯ãªãä»®å®ã§ãããé£ç¶ãããã€ã³ãã¯2ã®ä»®å®ã
äŸïŒmysql DBã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ãéçºããå Žåãéåžžãè¿œå ã®_service_ phpmyadmin
å®çŸ©ããŸãã ããã¯çã®ãµãŒãã¹ã§ããä»ã®ãµãŒãã¹ã«äŸåãããé·æéå®è¡ãããå
¬éãããããŒãã§ãã
ããããç§ã¯ãã®ãµãŒãã¹ã_ããã©ã«ãã§_éå§ãããã¯ãããŸãããã_ãªã³ããã³ã_ /éçºäžã®ã¿ã§ãã
çŸåšããã®ãµãŒãã¹ãè¿œå ã®docker-compose.yml
ãäž¡æ¹ã®ãã¡ã€ã«ãdocker-compose
æäŸããããšã§éå§ããããšã§ããããå®çŸããŠããŸããäžèšã§ææ¡ãããšããã§ãã
ãããã£ãŠãã¯ãããããéæããããã®å¯èœãªæ¹æ³ã¯ãã§ã«ãããŸãã ãµãŒãã¹ãè€æ°ã®ãã¡ã€ã«ã«åå²ãããã docker-compose
以å€ã®ããŒã«ã䜿çšããã ãã§ãã ãããããã§ã«äžã§æžããããã«ããã®åé¡ã¯ããŸã£ããæ°ããæ©èœ/æ©èœãæ°ããæŠå¿µïŒã€ãŸãã_tasks_ïŒã«é¢ãããã®ã§ã¯ãªããç¹ã«éçºç°å¢ã«ãããå©äŸ¿æ§ã«é¢ãããã®ã§ãã
docker-compose -f docker-compose.yml -f docker-compose-tools.yml up
ãå
¥åããªããã°ãªããªãã®ã¯äŸ¿å©ã§ã¯ãªãã®ã§ã docker-compose
ã¯ããèªäœã®çŽæãæãããŸããã
ãããã®æ©èœãçµã¿åãããããšã§ãéçºè ããããžã§ã¯ããéå§ããããã®äŸ¿å©ãªæ¹æ³ãæäŸãããŸãã Composeã䜿çšãããšãè€æ°ããŒãžã®ãéçºè å ¥éã¬ã€ããã1ã€ã®æ©æ¢°å¯èªãªComposeãã¡ã€ã«ãšããã€ãã®ã³ãã³ãã«æžããããšãã§ããŸãã
ã©ã®ãµãŒãã¹ãéå§ãããããŸãã¯ã©ã®yml
ãã¡ã€ã«ãã©ã®ç°å¢ã§äœ¿çšãããã¯ãéåžžã_multi-pageãéçºè
å
¥éã¬ã€ã[s]ã_ã«ãããŸãã
ãããã£ãŠãç§ã®æèŠã§ã¯ã @ jimzuckerãæžããããã«ãããã§ã®ã»ãšãã©ã®+1ã¯ãã¿ã¹ã¯ã®æ°ããæŠå¿µã§ã¯ãªããå®éã«ã¯ããªãã·ã§ã³ã®ãµãŒãã¹ãã®ããã®ãã®ã§ãã å°ãªããšããããã®ãã¹ãŠã¯ãããã©ã«ãã§éå§ããããã©ããã«ãããããã_service_ã«ãã©ã°ãç«ãŠãåçŽãªããŒã«å€ã䜿çšããæ¹ãé©åã§ãã
ç§ã®PoCã瀺ãããã«ãããªãã·ã§ã³ã®ãµãŒãã¹ãã«å¿ èŠãªã³ãŒãã®å€æŽã¯éåžžã«ç®¡çãããããããã®ã»ãšãã©ã®äººã«å©äŸ¿æ§ã®å€§ããªã¡ãªãããæäŸããŸãã ãªãã·ã§ã³2-ã_ãµãŒãã¹ããªãã·ã§ã³ãšããŠããŒã¯ããå¯èœæ§_ããšèªã-ã¯ããã®åé¡ã解決ããããã®åŠ¥åœãªåŠ¥åæ¡ã§ãã
@ shin-ãŠãŒã¶ãŒã«ãµãŒãã¹ããªãã·ã§ã³ãšããŠããŒã¯ããå¯èœæ§ãäžããããšã«åæããŸãããïŒãããããããã¯ãŸã ãµãŒãã¹ã§ã-圌ãã倧ãã«å©ããŸããïŒ
ã_services_ããªãã·ã§ã³ãšããŠããŒã¯ãã/ããã©ã«ãã§ã¯éå§ãããªããã«æžãããšããã®åé¡/ããã«å¯Ÿãããã«ãªã¯ãšã¹ãã¯åãå
¥ããããŠããŒãžãããŸããïŒ
@shin ãäžèšã®@acranã®ãã€ã³ãã«è¿œå ããããã«ã ååã䜿çšããä»ã®ãµãŒãã¹ã«ãã£ãŠå®è¡ãããããã§ãã ç§ã¯ãã¹ãŠã®æéã¯ãã¢ãããç§ã¯ã圌ããããŒã¿ããŒã¹å ã®æ å ±ã䜿çšããŠå®è¡ããå¿ èŠããããšããŠããããã¯æå³ããªããªããªã©project_app_1ãšããååã®ããµãŒãã¹ããproject_otherapp_1ã®æãåŸãããšãèããïŒç§ã¯ããã¹ã¿ãŒã»ãµãŒãã¹ãæã£ãŠããããã¯ãªãããããïŒ ã ã ããç§ã¯ãã€ã圌ãã殺ããªããã°ãªããŸããã ãããã£ãŠãç§ã«ãšã£ãŠNO_RUNãŸãã¯BUILD_ONLYãã©ã°ã¯å®å šã«çã«ããªã£ãŠããŸãã ããã¯äŸ¿å©ã§ããã
@acran
ãŠãŒã¶ãŒã«ãµãŒãã¹ããªãã·ã§ã³ãšããŠããŒã¯ããå¯èœæ§ãäžããããšïŒãããããããã¯ãŸã ãµãŒãã¹ã§ããïŒã圌ãã倧ãã«å©ããããšã«åæããŸãããïŒ
ç§ã¯ãããã©ãã»ã©åœ¹ç«ã€ãã«ã€ããŠã¯åæããŸãã-ç§ã¯ã倧ãã«ãèªåŒµãããŠãããšæããŸãã ããªãã®äŸã§ã¯ããªãã·ã§ã³ã§å«ããããšãã§ããdocker-compose.phpmyadmin.yml
ãæã£ãŠããã ãã§ãç°å¢å€æ°ãèšå®ããããã¡ã€ã³ãã¡ã€ã«å
ã®ãµãŒãã¹å®çŸ©ãå€æŽããããããããïŒãéçºè
ã¬ã€ããã®èª¬æã«é¢ããŠïŒç
©ãããè€éã§ã¯ãããŸããã
ãŸããå³å¯ã«å¿
èŠã§ã¯ãªãå Žåã«ãéçºè
ã«ããããã¬ã³ããæäŸããããšã®ãã¬ãŒããªããæ€èšããŠããŸãã
ããµãŒãã¹ããªãã·ã§ã³ãšããŠããŒã¯ãã/ããã©ã«ãã§éå§ãããªããã«æžãããšããã®åé¡/ããã«å¯Ÿãããã«ãªã¯ãšã¹ãã¯åãå ¥ããããŠããŒãžãããŸããïŒ
äžèšãåç §ããŠãã ããâãã®æ©èœãå©çšå¯èœã«ãªããšããã«ã人ã ã¯ãããæå³ãããç®ç以å€ã®ç®çã§äœ¿çšãå§ããããããµããŒãããããã®æ°ããæ©èœã»ãããå®è£ ããããšãæåŸ ããŸãã ãŸããcc @jimzucker ; ç§ã¯çŸåšããã®ã·ããªãªã®å±éã劚ããå®è£ ãèããããšã¯ã§ããŸããã ã§ããã°ããã®åé¡ã¯ãã£ãšåã«è§£æ±ºãããŠããã§ãããã
@ekkisãããã®ãµãŒãã¹ãèªåã§éå§ããããªãå Žåãããããå¥ã®ãã¡ã€ã«ã«åé¢ããããšããªãåé¡ã«ãªãã®ã§ããããã ãªããããããã§ãããªã«ãã³ã°ã¢ããããã®ããç§ã¯æ¬åœã«æ··ä¹±ããŠããŸãã
@shin docker -compose.ymlã䜿çšããŠãµãŒãã¹ããã«ãã§ããå Žåããã«ãããã»ã¹ãäžå åããã®ã«æã䟿å©ãªããŒã«ã§ãã å®éã«ã¯ãå®è¡ããåã«ïŒæ¡ä»¶ä»ãã§ïŒãµãŒãã¹ãæ§ç¯ããããšããã®ã¯éåžžã«çã«ããªã£ãŠããŸãããã®æ©èœã«ææãéããŸãã
ãããã£ãŠãdocker-composeãã¡ã€ã«ã¯ç§ã®makefileã§ããããŸãã ããããäœããæ§ç¯ãããããšãã£ãŠããããå®è¡ããããšããæå³ã§ã¯ãããŸããã docker-composeã¯ããµãŒãã¹ãå®è¡ãããã®ååãèæ¡ããé©åãªãã©ã¡ãŒã¿ãŒ/ç°å¢å€æ°ãªã©ã䜿çšããã«å®è¡ããããšãæ³å®ããŠãæå³ããããŸããã
ççŽã«èšã£ãŠããã®åçŽãªãããã«å¯Ÿããç°è°ãäœã§ããããç解ã§ããŸããã ããã¯ç§ã«ãšã£ãŠéåžžã«åœ¹ã«ç«ã¡ãŸã
以åã®æçš¿ã§ãããŒã ã®å ¬åŒã®èŠè§£ããäœæãã¡ã€ã«ãMakefileãšããŠäœ¿çšããŠã¯ãªããªããšããããšãæ確ã«ææããŸããã ç§ãã¡ãããã«ã€ããŠééã£ãŠãããšä¿¡ããŠããŠãããã§ããããããã®ã§ããã°ãããã¯ããªãã®ç¹æš©ã§ãããããããµããŒãããæ©èœãè¿œå ããããšã䞻匵ããã®ã¯å°ã銬鹿ããŠããŸãã
@ shin-
ããªãã®äŸã§ã¯ããªãã·ã§ã³ã§å«ããããšãã§ããdocker-compose.phpmyadmin.ymlãçšæããã ãã§ãç°å¢å€æ°ãèšå®ããããã¡ã€ã³ãã¡ã€ã«å ã®ãµãŒãã¹å®çŸ©ãå€æŽããããããããç ©ãããè€éã§ã¯ãããŸããïŒãéçºè ã¬ã€ããã®èª¬æã«é¢ããŠïŒã
å®éãç§ã¯ãŸã ããã§ç°å¢å€æ°ãå«ããããšãèããŠããŸããã§ããã ç§ãæãã¯ãŒã¯ãããŒããªãã·ã§ã³ãµãŒãã¹ããæçµçã«èš±å¯ããã®ã¯æ¬¡ã®ãšããã§ãã
docker-compose.yml
ãã¡ã€ã«ãå«ãŸããŠããããšãããããŸãããããã£ãŠã docker-compose up
ãå®è¡ããã ãã§ãã¢ããªã±ãŒã·ã§ã³ããã«ããããŠå®è¡ãããŸããdocker-compose up phpmyadmin
ã§ããç§ã«ãšã£ãŠãããã¯è€æ°ã®docker-compose.yml
ãã¡ã€ã«ã䜿çšãããããã¯ããã«äŸ¿å©ã§ãããä»ã®ã»ãšãã©ã®äººã«ãšã£ãŠãç解ã§ããŸãã ããã«ããªãã·ã§ã³ãµãŒãã¹ããããããšã®å©ç¹ã¯
auto_up: false
ïŒãèšå®ããã ãã§æžã¿ãŸããdocker-compose -f docker-compose.phpmyadmin.yml up
docker-compose -f docker-compose.yml -f docker-compose.phpmyadmin.yml up
ãŸãã¯ããã«docker-compose -f docker-compose.phpmyadmin.yml -f docker-compose.yml up
ïŒphpmyadmin
ãšãããµãŒãã¹ãããããŠãŒã¶ãŒã¯ãããéå§ããæ¹æ³ãããã«ç¥ã£ãŠãããšããããšã ãã§ããäžèšãåç §ããŠãã ããâãã®æ©èœãå©çšå¯èœã«ãªããšããã«ã人ã ã¯æå³ãããç®ç以å€ã®ç®çã§ããã䜿ãå§ããããããµããŒãããããã«æ°ããæ©èœã»ãããå®è£ ããããšãæåŸ ããŸã
誀解ããªãã§ãã ãããç§ã¯ããã§ããªãã®æžå¿µãç解ããã ãã§ãªããããã«åæããŸãïŒæ©èœãæå³ãããŠããªãã£ããšããŠãããã®æ©èœãŸãã¯ä»ã®ïŒïŒïŒæ©èœãåžæã®ã¯ãŒã¯ãããŒã«åãããã«æ²ãããŠãŒã¶ãŒã¯åžžã«ååšããŸããã®ããã«äœ¿çšãããŸãã
ãããããã¿ã¹ã¯ãã®æ©èœãäžè¶³ããŠããããªãã·ã§ã³ãµãŒãã¹ãã«å¯Ÿãããªã¯ãšã¹ãã«ã€ããŠã¯ããµãŒãã¹ã¯ã¿ã¹ã¯ã§ã¯ãªããã¿ã¹ã¯ã¯æåã«æ°ããæŠå¿µãšããŠå°å
¥ããå¿
èŠããããããïŒãŸã ïŒãµããŒããããŠããªããšç°¡åã«äž»åŒµã§ããŸãã ã€ãŸãããµãŒãã¹ããªãã·ã§ã³ãšããŠããŒã¯ããã ãã§ã¯ãªããã¿ã¹ã¯ã®æŠå¿µïŒãªãã·ã§ã³4ãªã©ïŒãžã®äžæ©ã§ããããã®éã«æ確ãªåãå£ããããŸãã
_service_ããªãã·ã§ã³ãšããŠããŒã¯ããæ©èœã«ãããç§ãã¡ã¯ãŸã ãã®ã«ããã®å³åŽã«ããŸãã ããã®æ©èœèªäœã¯å®è£ ããã«ã¯ããã»ã©è€éã§ã¯ãããŸãããããŠãŒã¶ãŒã誀ã£ãŠäœ¿çšããããã«èªæããå¯èœæ§ããããŸããçŸåšããã®æ©èœã«å察ããå¯äžã®æ¬åœã®ïŒæå¹ã§ã¯ãããŸããïŒïŒè°è«ã¯ãå®è£ ããªãçç±ãšããŠã¯ããªãäžååã§ã-å°ãªããšããããæ£ããæ¹æ³ã§äœ¿çšããªãããããããå€ãã®å©äŸ¿æ§ãåŸãããšãã§ãããŠãŒã¶ãŒâ¢ã
ç§ã¯ãã«ãªã¯ãšã¹ãïŒ3047ãçŸåšã®ãã¹ã¿ãŒã«ãªããŒã¹ãããããåãå ¥ããããããã«å¿ èŠãªç 磚ãè¡ããŸãããç¥ãããã ãã;ïŒ
ç§ã®ãŠãŒã¹ã±ãŒã¹ã¯ããã¹ãŠã®ã€ã¡ãŒãžãDocker HubãŸãã¯Quayã«ããã·ã¥ããããç¬èªã®ã¬ãžã¹ããªãæã£ããããªãããšã§ãããµãŒãã¹ãããã©ã«ãã§å®è¡ãããªããã®ãšããŠããŒã¯ã§ãããšããããšã¯ãã§ããããšãæå³ããŸãã docker-compose.yml
ã§å®çŸ©ããããéå§ãããªãããŒã¹ã€ã¡ãŒãžããããããã䜿çšãããããã®äžã«æ§ç¯ãããŠããä»ã®ã³ã³ãããŒããããŸãã
ãã®ç¹ç°ãªæ©èœã®ããã ãã«ãã®æ©èœãå®è£
ããdocker-compose
ãã©ãŒã¯ã䜿çšããåŸåããããŸãã
@ shin-ç§ãã¡ã¯çããªãã®äž»åŒµãç解ããããã«å ±æããŠãããšæããŸãããã誀çšããããããããªãããšããã®ã¯ãæããã«å€ãã®å®è¡å¯èœãªãŠãŒã¹ã±ãŒã¹ãæã€äœãã®è¯ãè°è«ã§ã¯ãªããšæããŸãã ãã¡ãããããã¯èª€çšãããŸãã ããããŸãã«ãœãããŠã§ã¢ãšæ°ããã¢ã€ãã¢ãæé·ããæ¹æ³ã§ãã ãã¯ãããžãŒãå®å šã«äœ¿çšããããšããã éå»25幎éãæäŸããããã¹ãŠã®ãã¯ãããžãŒãæªçšããŠããªããã°ãWebã¯ä»æ¥ã®ããã«ã¯ãªããŸããã§ããã
ãšã«ããã
ããªãã«ãããš-åçŽåããã-ãµãŒãã¹ãšã¿ã¹ã¯ã®éãã¯å¯¿åœã§ãã çã«ããªã£ãŠããŸããããªãã¯ãããã2ã€ã®ç°ãªãæŠå¿µãšèŠãªããŠãããã¯ãŒã ã®æœåšçãªå¯èœæ§ããããšæããŠãããšæããŸãã ãããããã®åºå¥ã¯ãããã¥ã¡ã³ãã§ã¯ã©ãã«ãæ確åãŸãã¯èª¬æãããŠããŸããã ãŸããdockerãäžæçãªããã»ã¹ãã¹ãã³ã¢ããããããã«äœ¿çšãããããšãæå³ããŠããªãããšãææãããŠããŸããã
ç§ãèšãããã®ã¯ãDockerããŒã ãããã«ã€ããŠåŒ·ãã¹ã¿ã³ã¹ãæã£ãŠããå Žåãããã¯æåããæ確ã«ãããã¹ãã§ãããšããããšã§ãã
ãŸãã ã¿ã¹ã¯ãŸãã¯ãµãŒãã¹ãæããã«éè€ããããŸãã ãŸãããµãŒãã¹ããªãã·ã§ã³ãšããŠããŒã¯ããããšã¯ãã¿ã¹ã¯åŽã«åºæã®ãã®ã§ã¯ãããŸããã
å®çšçãªèŠ³ç¹ãããç§ã¯@acranã«ééããªãåæãdocker -composeãã¡ã€ã«ãæã€ããšã¯DXãã¯ããã«åªããŠãããå€ããåçŽåããè€æ°ã®docker-composeãã¡ã€ã«ãæã€ããããšã©ãŒãçºçãã«ããã§ãã
ãµãµãããã©ãŠã¶ãã«ç»åã衚瀺ãããããåãããããšãã®æ¿ããè°è«ãèŠããŠããŸããå察掟ã®äž»ãªè°è«ã¯ããã€ããŒããã¹ã転éãããã³ã«ãšåŒã°ããŠãããšããããšã§ãã
å€ããªãã©ã圷圿ãšãããOTãããããªããã
@ shin- docker-composeãmakefileãšããŠäœ¿çšããªãå Žåã¯ãmakefileæ©èœãæäŸããªãã§ãã ããã ãããç§ã®ãããžã§ã¯ããæ§ç¯ããããšãå¯èœã«ãããªãïŒãã©ããŒïŒïŒãããã¡ã€ã¯ãã¡ã€ã«ã§ã¯ãªããšããç«å Žãåãããšã¯ã°ãããŠããŸã
@ shin-èŠãŠãããªããã¡ã¯ãããªãã®çç±ãã©ãã»ã©äžåçã§ããããšããããã¯ãã®æ©èœãã©ãã»ã©æçšã§ããããšãããªããæãŸãªãæ©èœãå®è£ ããå¿ èŠã¯ãããŸããã ããã¯ãããã䜿çšããç§ãã¡ã«ãšã£ãŠããŒã«ã®æçšæ§ãäœäžãããã ãã§ãã ç§ãã¡ã¯ãŠãŒã¶ãŒã§ããããŠãŒã¹ã±ãŒã¹ãç¥ã£ãŠããŸã-ãããŠããŒã«ã¯ãŠãŒã¹ã±ãŒã¹ã«å¯Ÿå¿ããã®ãšåããããæçšã§äŸ¡å€ããããŸã
ããã¯ç§ã«ãšã£ãŠã¯å°ããªèç«ã¡ã«éããŸãããçç±ããªãã¹ããŒã³ããããã®ãæåã§æ®ºããªããã°ãªããŸããã_ãµãŒãã¹ãã¢ãããããã³ã«_ã ä»ã®äººã«ãšã£ãŠã¯ãããé害ã«ãªããããããŸãããåºæ¿ã¯éç床ãç°ãªããŸã
ããšããããç§ãã¡ãå¿ èŠãšãããã®ã«å¯ŸããŠããéãã§ãã£ãŠããç§ãã¡ã¯ããã䜿ãã¹ãã§ãããšããå ¬åŒã®ç«å Žãç解ããŠããŸãã ãããããã®å ¬åŒã®ç«å Žã¯ãããªããæçšãªPRãåãå ¥ããããšãèºèºããæ ¹æ ã説æããŠããŸããã docker-composeã®éèŠã倧ããããå ŽåããŸãã¯éãªãã移è¡ããã®ã«ååãªå Žåã§ããdobiã䜿çšã§ããŸãããããã¯éåžžã«å°ããªå€æŽã§ããããã¹ãŠã®ç掻ãã¯ããã«è¯ããªããŸãã
ã¡ãªã¿ã«ãç§ã¯ã奜å¥å¿æºçãã§ã¯ãããŸãããããã以äžã®è°è«ãé²ãããã«ã¹ã¬ãããããã¯ããããšã¯ãåã«éæ°äž»çã§æš©åšäž»çŸ©çã§ãã ãªãŒãã³ãœãŒã¹ã¯ãªãŒãã³æ§ã®ååã«åºã¥ããŠæ§ç¯ãããŠããããã®ãããžã§ã¯ããæ€é²ãšç¬è£çãªæŠè¡ã䜿çšããŠç®¡çãããŠããã®ãèŠãã®ã¯æ²ããããšã§ã
@rysiekplããã¯ãå¥ã®æ¹æ³ã§è§£æ±ºããããšããŠããåé¡ã§ããhttpsïŒ//github.com/docker/cli/pull/452ãåç §ããŠ
@creyndersããã¯å°ã<img>
ã¿ã°ãæ瀺çã«éããããšãæå¹ãã©ãããããã³ç¹å®ã®ãã©ãŠã¶ãããããµããŒãããå¿
èŠããããã©ãããè°è«ããããšã«äŒŒãŠããŸãã
ãŸããããªãã®ãã€ã³ãã«ïŒ
ãããããã®åºå¥ã¯ãããã¥ã¡ã³ãã§ã¯ã©ãã«ãæ確åãŸãã¯èª¬æãããŠããŸããã ãŸããdockerãäžæçãªããã»ã¹ãã¹ãã³ã¢ããããããã«äœ¿çšãããããšãæå³ããŠããªãããšãææãããŠããŸããã
ããã¯å®éã«ã¯https://docs.docker.com/compose/overview/ããŒãžã®æåã®æ®µèœã§ãïŒç§ã®åŒ·èª¿ïŒïŒ
Composeã¯ããã«ãã³ã³ããã®Dockerã¢ããªã±ãŒã·ã§ã³ãå®çŸ©ããŠå®è¡ããããã®ããŒã«ã§ãã Composeã§ã¯ãComposeãã¡ã€ã«ã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ã®ãµãŒãã¹ãæ§æããŸãã 次ã«ã1ã€ã®ã³ãã³ãã䜿çšããŠãæ§æãããã¹ãŠã®ãµãŒãã¹ãäœæããŠéå§ããŸãã
@ekkis Composeãå®éã«ããªãã®ãããžã§ã¯ãã«åœ¹ç«ã€ããšãæ¬åœã«ããããæããŸãïŒ ç§ã¯ããããã¹ãŠã«ãããŠäžèª å®ã§ãããšã¯æããªãããšãæã¿ãŸãããããããªãããœãããŠã§ã¢ã䜿ãããæ¹æ³ã§ãããªãã°ããã¯çµ¶å¯Ÿã«å€§äžå€«ã§ãã ããããç§ãèšã£ãŠããã®ã¯ãããããã®æ¹åã«ããã«é²ãããšãããããé·æçã«ã¯æªåããã ãããšããããšã§ãã ããŸãã«ãå€ãã®ããšãè¡ãããšããã¢ããªã±ãŒã·ã§ã³ãã©ããªããã¯èª°ããç¥ã£ãŠããŸãïŒEmacsãããããã£ãŠã®ãããšæããŸããïŒstuck_out_tongue :)
ç§ã¯ãæš©åšäž»çŸ©è ãã§ã¯ãªãã£ããšæããŸãããèªåãæ£ããè¡šçŸããŠããªãã£ãã®ãããããŸããã ç§ã®æå³ã¯ã人ã ã圌ãã®çžäºäœçšã«ãããŠåžæ°çã§ååãã§ããç¶ããããšã奚å±ããããšã§ããã ã¹ã¬ããã¯ãŸã ããã¯è§£é€ãããŠããã人ã ãåå£ãŸãã¯å€±ç€Œã§ããããšãæ§ããŠããéããã¹ã¬ããã¯ç¶ç¶ããŸãã
æ§æãããã¹ãŠã®ãµãŒãã¹ãäœæããŠéå§ããŸãã
ãããŠãç§ãã¡ã®äž»åŒµã¯ããäœæããã³/ãŸãã¯éå§ããèªãã¹ãã ã£ããšæããŸãããèšèªã«å ¬å¹³ã§ããããã«ã¯ãORãæé»çã«å«ãŸããŠãããããORã瀺ãå¿ èŠã¯ãããŸããã èšãæããã°ããµãŒãã¹ã®äœæãšéå§ã®äž¡æ¹ãå¯èœã§ããããšã¯äºå®ã§ãããäž¡æ¹ãå®è¡ããå¿ èŠããããšããæå³ã¯ãããŸããã
ããŸãã«ãå€ãã®ããšãè¡ãããšããã¢ããªã±ãŒã·ã§ã³ãã©ããªããã¯èª°ããç¥ã£ãŠããŸã
ã¯ãããã¡ã€ã³ã®å¢çã管çããŠããããšãæè¬ããŸã
ç§ã¯ãæš©åšäž»çŸ©è ãã§ã¯ãªãã£ããšæããŸã
ç§ã¯ãªãŒãã³ãœãŒã¹éåã倧奜ãã§ãã æèŠã®çžéã¯ãããŸããããŸã äžç·ã«ããŸãã ãããã³ã€ã³ã³ãã¥ããã£å ã®æŠäºã¯ã²ã©ããã®ã§ããããããŠç§ã¯ãŸã ããããåæºããŠãããšæããŸããããã§ç€Œåã®åŽã«ãšã©ãŸã£ãŠãããŠããããšã
å¥ãã®èããšããŠã httpsïŒ//github.com/docker/compose/issues/4650ãå確èªããŠ
è€æ°ã®ãã¡ã€ã«ãå®çŸ©ãããšããã¢ã€ãã¢ãæ¬åœã«å¥œãã§ãã ãã ããå
ã®ãã¡ã€ã«ãå«ããŠè€æ°ã®-f
ãæã€ãã¹ãŠã®ãã¡ã€ã«ãå«ããããšã¯ãå®å
šã«ããéãã®ããã§ãã
å®éã«ã¯ãã£ãšå®çšçãªæ¹æ³ããããŸãïŒä»¥äžã®PSãåç
§ïŒïŒå®è¡ããããªããã¹ãŠã®ãµãŒãã¹ãdocker-compose.override.yml
ãŸãã ãŸããéåžžã®èµ·åã«ã¯docker compose -f docker-compose.yml up
ã䜿çšããŸãïŒããã¯1åéãã®ã³ãã³ãã§ããããšã«æ³šæããŠãã ããïŒã é£ç¶ãããã¹ãŠã®åŒã³åºãã§ããªãŒããŒã©ã€ããçºçããŸãã
å šäœãšããŠãããã¯ãã¹ãŠéåžžã«çŽæçã§ã¯ãªããå°ãæºè¶³ã®ãããã®ã§ã¯ãããŸããã è¿œå ïŒ
ãµãŒãã¹ãç¡å¹ã«ãããªãã·ã§ã³ã¯ãç¹ã«ããè€éãªãªãŒããŒã©ã€ãã®å Žåã«æå³ããããŸã
-f
ãªãã·ã§ã³ã¯æå°éã§ãããããŸãçŽæçã§ã¯ãããŸããããªãŒããŒã©ã€ããè¿œå ããã ãã®å¥ã®-F <name>
ãªãã·ã§ã³ã¯ãéåžžã«æè¿ãããŸãïŒã€ãŸããdocker-composeïŒã.yml
ãã¡ã€ã«ãäŸçµŠããããã£ã¬ã¯ããªãšããŠïŒã·ã³ããªãã¯ãªã³ã¯ãšãšãã«ãããã¯/etc/apache/sites.available
-> /etc/apache/sites.enabled
ãšåæ§ã«åŒ·åã§ãã
äžæ¹ã誰ã§ãã·ã§ã«ã«åçŽãªã©ãããŒã¹ã¯ãªããïŒé¢æ°ïŒãæäŸããŠããã®åäœããšãã¥ã¬ãŒãã§ããŸã...
PSïŒç§ã®ãŠãŒã¹ã±ãŒã¹ã¯ããããã¬ãŒããµãŒãã¹ãšããŠå®çŸ©ããããšã§ãã æããã«ããã®ãµãŒãã¹ã¯åžžã«å¿ èŠãªããã§ã¯ãããŸããããæ£ããæ©èœããã«ã¯ãªã³ã¯ãå¿ èŠã§ãïŒã»ãã¥ãªãã£äžã®çç±ãããïŒã
ãªãã·ã§ã³2ãåªããŠãããã1ã€ã®ãŠãŒã¹ã±ãŒã¹ïŒ
åããããžã§ã¯ãã«åãçµãã§ãã人ã ã®ããŒã ããããšããŸãããã AWSãããŒãžããµãŒãã¹ã«ã¢ã¯ã»ã¹ã§ãããã®ããããŸããã察å¿ãããªãœãŒã¹ãããŒã«ã«ã³ã³ãããšããŠå®è¡ããå¿ èŠããããã®ããããŸãã ãã®ãããã¯ãŒã¯ãããŒã«å¿ããŠãã³ã³ããžã·ã§ã³ã³ã³ã¹ãã¬ãŒã·ã§ã³ã«Redisã³ã³ãããšMySQLã³ã³ããã_åžžã«_ãŸãã¯_決ããŠ_å¿ èŠãããŸããã
ãã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ãè€æ°ã®äœæãã¡ã€ã«ã管çããã®ã¯ã°ãããŠãããšèšã£ãŠãããŸãã ãªãŒããŒã©ããã®éã¯ã³ãã«ã«ã§ãã è€æ°ã®ãã¡ã€ã«ãç¶æããããšã¯è¶³ãããã§ã-ãããã¯åæããå€ããæ··ä¹±ãåŒãèµ·ãããŸãã ççŽã«èšã£ãŠã誰ãããã®ãªãã·ã§ã³ã_any_ãŠãŒã¹ã±ãŒã¹ã§çå£ã«åãæ¢ããããšã«å°ãã·ã§ãã¯ãåããŸããã
æ§æã®å€§ããªãããã¯ãã³ã¡ã³ãã¢ãŠãããã«ïŒYAMLã§ã¯æ±ãã«ããã誀ã£ãŠã³ããããããšéåžžã«é¢åã«ãªããŸãïŒããµãŒãã¹ããã°ããæå¹ãŸãã¯ç¡å¹ã«ã§ããããšã¯ãããèªäœãçŽ æŽãããããšã§ãã ããããcomposeããã€ãå€æ°ãæ§æã«è£éããæ©èœãååŸããå Žåããã®æ©èœã¯èªåçã«ææ°é¢æ°çã«åŒ·åã«ãªããŸãã ãããŸã§ã¯ãããã¯_åã«_éåžžã«äŸ¿å©ã§ãã
@campadrenalinã«å®å šã«åæããŸãã
ç§ãç解ããŠããããã«ããã®è°è«å šäœã¯åºæ¬çã«å€æ°ã®äººã ããªãã·ã§ã³2ãå®è£ ããããã®éåžžã«å€ãã®éåžžã«è¯ãçç±ãæäŸãã誰ãããã®æ©èœã®ååšã誀解ããŠä»ã®ç¡é¢ä¿ãªæ©èœãèŠæ±ããå¯èœæ§ããããããéçºè ã¯æåŠããŸãã
OTïŒ
ããããcomposeããã€ãå€æ°ãæ§æã«è£éããæ©èœãååŸããå Žåããã®æ©èœã¯èªåçã«ææ°é¢æ°çã«åŒ·åã«ãªããŸãã
ãã®æ©èœã¯é·ãéå©çšã§ããŸããã§ãããïŒ https://docs.docker.com/compose/compose-file/#variable-substitutionãåç
§ããŠ.env
ãã¡ã€ã«ã䜿çšããŠComposeéçºç°å¢ãã«ã¹ã¿ãã€ãºã§ããããã«ããããã«äœ¿çšããŠããŸããããšãã°ããœãŒã¹ã³ãŒãã®å ŽæãããŒããããã³ã°ãªã©ã§ããcomposeãã¡ã€ã«ããŒãžã§ã³2.1以éãã·ã§ã«ã¹ã¿ã€ã«ã®å€æ°ã®ããã©ã«ãïŒ ${VARIABLE:-default}
/ ${VARIABLE-default
ïŒããµããŒããããŠããŸãã
ç§ãç解ããŠããããã«ããã®è°è«å šäœã¯åºæ¬çã«å€æ°ã®äººã ããªãã·ã§ã³2ãå®è£ ããããã®éåžžã«å€ãã®éåžžã«è¯ãçç±ãæäŸãã誰ãããã®æ©èœã®ååšã誀解ããŠä»ã®ç¡é¢ä¿ãªæ©èœãèŠæ±ããå¯èœæ§ããããããéçºè ã¯æåŠããŸãã
ããã¯ãããŒã³ãå°ãå³ãããããããŸããããæ¬è³ªçã«ã¯æå¹ã§ããããšãããããŸããã@ rysiekplã«ããéåžžã«åªããèŠçŽã§ãã
ããã§ã@ shin-ãç§ãã¡ã¯ãã®åé¡ã«é¢ãã決å®ã«è¿ã¥ããŸãããïŒ ãããéããã ããªã®ãããããšããªãã·ã§ã³2ã®PRãå®è£
/åãå
¥ããã®ãã
ç§ã¯ããªãã®æžå¿µãå®å šã«ç解ããŠããŸãããããã¯ããªãå°ããªå€æŽã§ãããå€ãã®äººã ã«ã¯ããã«å€ãã®_䟿å©ãª_ã¯ãŒã¯ãããŒã®å¯èœæ§ãæäŸããããã誰ãããããæªçšããå¯èœæ§ã®ãããªã¹ã¯ãäžåãå©ç¹ããããŸãã
ãšã«ããdocker-composeã¯é·æçã«ã¯dockerstackãåªå
ããŠåé€ãããããã§ãã®ã§ãã§ããã ãæ©ãæ°ããv3圢åŒãšdocker stack
ããŒã«ã«ç§»è¡ããããšããå§ãããŸãã
矀ãã®ã¹ã¿ãã¯ã䜿çšããŠïŒ1ããŒãã§ãïŒããããæå®ã§ããŸãã
deploy:
mode: replicated
replicas: 0
ã¬ããªã«ããŒãã®å Žåãåºæ¬çã«ãµãŒãã¹ã®å®è¡ãç¡å¹ã«ãªããŸãã
envsubstãªã©ã®ç°å¢å€æ°çœ®æãé©çšããå Žåã¯ããã®ymlãçæããããã®ä»ã®ããŒã«ãå¿ èŠã§ãã
次ã«ãymlã§ãã¬ãŒã¹ãã«ããŒã䜿çšã§ããŸãã
deploy:
mode: replicated
replicas: ${R}
ãããŠããããã®ããã«åŠçããŸãïŒ
export R=0
docker stack deploy stack1 --compose-file=<(envsubst <docker-compose.yml)
ãããã£ãŠã docker-compose
ãé·æçã«éæšå¥šã«ãªãå Žåããã§ã«ååšããdocker-compose
ãããŒããŒã®éãé²ãã§ããå Žåãã誰ããå¥åŠãªæ©èœãèŠæ±ããããšããã®ã¯ã©ãããŠæ¬åœã®åé¡ãªã®ã§ããããã
docker-composeã¯é·æçã«åé€ãããdockerstackãåªå ãããããã§ãã
ãããã£ãŠãdocker-composeãé·æçã«éæšå¥šã«ãªãå Žå
åŸ
ã£ãŠãã¯ããïŒ docker-compose
ã¯ã矀ãã®ãããŒãžã£ãŒãã»ãšãã©å¿
èŠãšããªãéçºã¯ãŒã¯ãããŒã®å€ãã®äººã
ã®äžå¿ã§ãã ãã®ç¹ã«é¢ããDockerã®å
¬åŒå£°æãæããŠããã ããŸããïŒ
ç§ã¯ãããééã£ãŠèªãã§ãããããããŸããããdockerswarmãšdockerstackã¯dockerã¯ã©ãŠããµãŒãã¹ãšç·å¯ã«çµåãããŠããããã§ãã ãããã¯ã¹ã¿ã³ãã¢ãã³ã®ãªãã©ã€ã³ã·ã¹ãã ã§æ§æã§ããŸããïŒ
ãããã¯ã¹ã¿ã³ãã¢ãã³ã®ãªãã©ã€ã³ã·ã¹ãã ã§æ§æã§ããŸãã
ã¯ãããªãã©ã€ã³ã§äœ¿çšã§ããŸãã
ç§ã«ã¯ãdocker-swarmã®ã¹ã¿ãã¯ãæçµçã«docker-composeã®æ©èœã®ã¹ãŒããŒã»ããã«ãªãããã«èŠããŸãã èšè¿°åãã¡ã€ã«ã¯ãã§ã«éåžžã«äŒŒãŠãããšæããŸãã ããŸãããã°ããã®ç§»è¡ã¯ããã»ã©é£ããã¯ãããŸããã ç§ãèŠãããšãã§ããæ倧ã®ç ©ãããã¯ãã¹ã¿ãã¯ãšã¯å¥ã«çŸ€ãã管çããããšã§ãã æ§æãããã¢ããªã±ãŒã·ã§ã³ãè€æ°ã®ããŒãã§å®è¡ããããšã«èå³ããªãããããªãŒããŒããããå¢ããŸãã
ãŸãã¯å€åç§ã¯ãã¹ãŠã誀解ããŠããŸã...ïŒ
ãªãã·ã§ã³2ã§+1ïŒ
ãããŠãã¹ãŠã©ãŒã ã¹ã¿ãã¯ãæ¯æããDockeræ§æã®ããããã¯ãã³ãã¥ããã£ã«ãšã£ãŠå€§ããªæ¬ ç¹ã«ãªããšæããŸãã Dockercomposeã¯ãšãŠãã·ã³ãã«ã§äœ¿ããããã§ã!!
@tberneç§ã¯ããã«åæããŸãã docker-composeã¯ã·ã³ãã«ã§ãã·ã³ãã«ã¯è¯ãããšã§ãã ç§ãã¡ã¯ãããç¶æããããã«æ祚ããå¿ èŠããããŸã
ããããªããŠå€§èŠæš¡ãªè°è«ã§ãããïŒ ãã®ã³ã¡ã³ãã«ã¯ããŸã泚æãæããªãã§ãã ãããç§ã®2ã»ã³ãã ãã§ãã
æåã¯ãããçš®ã®enabled
ãã©ã°ãè¿œå ããã ãã§å€§ââå€æ°ã«åæããŸããã
ããããç§ã¯ã°ã«ãŒãã«ãããã©ã³ãå®çŸ©ãžã®ææ¡ãèŠãŠããããè¯ãèãã ãšèããŸããã
ããããç§ã¯Dobiã«ã€ããŠèªã¿ããããè©Šãããããä»ç§ã®ãããžã§ã¯ãã§äœ¿çšã§ããªãããšã確èªããèªã¿ç¶ããŸããã
ããããç§ã¯@ shin-ã®è°è«ãèªã¿ãããã€ãã®åè«ã«ãåæããã«ããããããããããã¯ååã«è¯ããšèããŸããã
ç§ã®çŸåšã®è§£æ±ºçã¯ãããã€ãã®docker-compose yamlãäœæããdocker-composeãæåã§å®è¡ããªãããã«ããã€ãã®bashã©ããã³ã°ã¹ã¯ãªãããäœæããããšã§ãã
ããšãã°ãããã¯Webãµã€ããå®è¡ããã³ã³ãããå®è¡ããæ¹æ³ã§ãïŒ ./docker/scripts/up
ã¹ã¯ãªããïŒïŒ
#!/usr/bin/env bash
def_opts="-d"
cd "$(dirname "$0")"/../
# A separate bash file with functions like: get_args, add_hosts...
. ./functions.sh
docker-compose -p ${PROJECT} up ${def_opts} $(get_args "options services" "$@") && \
# Adding host to /etc/hosts
add_hosts "$HOSTS" web && \
add_hosts "$HOSTS_MAIL" mail
ãªãã·ã§ã³2ãŸãã¯3ã®ããããã«å€§ããª+1ã
ãªãã·ã§ã³2ãŸãã¯3ã®å Žåã¯+1ã
ãŸããææ¡ããããã°ã«ãŒããã®æŠå¿µã¯é¢çœããã§ãïŒ
ãªãã·ã§ã³2ã®å Žåã¯+1
_ +1 on option x
ãå€ããããããå
ã®ã¹ããŒãã¡ã³ãããèŠã€ãããŸããã 代ããã«ãæçš¿ã®äžã«ãããªã¢ã¯ã·ã§ã³ãã¿ã³ã䜿çšããŠãã ããã_
æ°ããã¢ã€ãã¢ãè¿œå ããã«ã¯ïŒ
ããã©ã«ãã®ã¹ã±ãŒã«ã0
èšå®ããããšã¯ã§ããŸãããïŒ
web:
image: busybox:latest
command: echo 'scaled'
scale: 0
人ã ã¯äœå¹ŽãåŸ ã£ãŠããã®ã§ããªãã·ã§ã³2ïŒãã ãã代ããã«nostartãªã©ïŒãå®è¡ããå¿ èŠããããŸããããŒã«ãå¶éãããããŠãããããç¬èªã®æ§æãããŒãžã£ãŒã§docker-composeãã©ããããŸããããã¯ãdockercomposeãè¡ãã¹ãããšãå®è¡ããŠãããããã€ã³ããæã¡è² ãããŸãããã£ãŠããã 2幎以å ã«ã誰ããç¬èªã®ãã匷åãªdocker-composeãäœæã§ããããã«ãªããŸããã ããã¯ãã®åé¡ãéãããŠããå€ãã®æéã§ãã
é·æçã«ã¯ãçã®ãªãã·ã§ã³ã®ã°ã«ãŒãåãæ€èšããå¿ èŠããããŸãã ãã«ãã«ã®ã¿é¢é£ãããã®ãå®è¡ã«ã®ã¿é¢é£ãããã®ãçžäºã«é¢é£ãããã®ããããŸãïŒå°ãªããšãå®è¡ã®ããã«ãã¹ãã®ã¬ã€ã€ãŒãå¿ èŠãªå ŽåããŸãã¯åã«åé¢ããŠãã«ãã»ã¯ã·ã§ã³ãäœæããåé¡ã解決ããå¿ èŠããããŸãïŒã çŸåšãæ§æã«ã¯å€ãã®åé¡ããããŸãããããŒãžã§ã³5ã§ãã¹ãŠãäœãçŽãã ãã§ããããã®æç¹ã§æ£ããããå¿ èŠããããŸãïŒäž»ã«ã䜿çšæ³ããããããã®ã§ã¯ãªããæè¡ã¬ãã«ã®ãã¡ã€ã³ã§å®éãè¡šãããšã«ãã£ãŠïŒããŒã¹ã®ãã¡ã€ã³ãŸãã¯é床ã«åçŽãªå Žåã¯ã代ããã«ãé©åãªãã®ã®äžã«ãããã®ç®æšã®æ§æã¬ã€ã€ãŒãäœæããŸããéã«è¡ãããšã¯ã§ããŸããïŒã ãã®ãããªç¶æ³ã®ããã«ãè¿ éãªä¿®æ£ã¯æ£åœåããããšæããŸãã
ãªãã·ã§ã³2ãŸãã¯4ã®å Žåã¯+1
çŸåšãã®æ©èœãè¿œå ããäºå®ããªãå Žåã¯ãã³ã³ããžã·ã§ã³ã§ãã®ãããªãµãŒãã¹ïŒãŸãã¯ã¿ã¹ã¯ïŒãå®è¡ããæ¹æ³ãdocker-composeã®ããã¥ã¡ã³ãã«èšè¿°ããŠãã ããã
ããã¯å€ãã¹ã¬ããã§ããã docker-compose
ã_startããå®è¡ãããªããµãŒãã¹_ãæ°ã«ã
ããããç§ã¯éåžžtest
ãµãŒãã¹ãè¿œå ããã®ã§ããããç§ãããããšã§ãïŒ
entrypoint
ãäžæžãããŸããæ°ããentrypoint
ãå©çšå¯èœãªtty
ããããã©ããã確èªããŸãïŒ docker-compose run
ã¯ããã©ã«ãã§--tty
ã䜿çšããŸããã up
ã¯äœ¿çšããŸããïŒã
# Check if there is a tty
if [ ! -t 1 ] ; then
echo "No tty available."
exit 0
fi
ããã«ããã tty
ïŒããšãã°ã docker-compose up
ã䜿çšããŠïŒå®è¡ãããšã docker-compose run
æåŸ
ã©ããã«å®è¡ãããŠããéãåžžã«ãµãŒãã¹ãçµäºããŸãã
@paulodiovaniããã¯è§£æ±ºçãšããããã¯ããã¯ã®ããã«èŠããŸãã
æ©èœãªã¯ãšã¹ãã®å Žåã¯+1ã
äœãããªãã³ãã³ããæã€ãããªããã¯ã¯ãã³ã³ãããå®è¡ãããªããŠãããã«ããåæåãªã©ãè¡ãå¿
èŠãããããšãæå³ããŸãã
æäŸãããåŒæ°ã«åºã¥ããŠé©åãªdocker-compose
ã³ãã³ããåŒã³åºãåçŽãªbashã¹ã¯ãªãããæäŸããããšã«ããããããžã§ã¯ãã§ããã解決ããŸããã
./docker-compose.sh -e testing up
ãšãçµæã¯docker-compose -f docker-compose.yml -f docker-compose.testing.yml up
ãå®è¡ããå Žåãšåãã«ãªããŸãã
./docker-compose.sh up
ãå®è¡ãããšããæ³åã®ãšãããéåžžã®docker-compose up
ãŸãã
ãããã£ãŠãç§ã®-e ${environment}
ãªãã·ã§ã³ïŒ --env
ç¥ïŒã¯åºæ¬çã«-f docker-compose.yml -f docker.compose.${environment}.yml
ãšã€ãªã¢ã¹ã§ãã ããã«ããã docker-compose.yml
ãããŒã¹/ããã©ã«ãã®äœæãã¡ã€ã«ã«ãªãã docker-compose.testing.yml
ãããªãã¡ã€ã«ããã®æ¡åŒµåã«ãªããŸãã
ããã«ããããŠãŒã¶ãŒãdocker-compose
ã³ãã³ãã«å«ãããã¡ã€ã«ïŒããã³ãã®é åºïŒãããããªããšãã@acranã®åé¡ããé©çšããããšã§ããçšåºŠè§£æ±ºãããŸãã ããè€éãªäœæãã¡ã€ã«ã®çµã¿åããã䜿çšãããã®ããããããããã¯ããŸãå
ç¢ãªãœãªã¥ãŒã·ã§ã³ã§ã¯ãããŸãããã docker-compose
ã§ãåæ§ã®ããšãã§ããã¯ãã§ãã ã»ãšãã©ã®docker-compose
ãã¡ã€ã«ã¯docker-compose.
å§ãŸãããšã«ãã.yml
çµããå¯èœæ§ãé«ãã®ã§ããªããã®ãããªé·ãã³ãã³ãïŒ docker-compose -f docker-compose.yml -f docker-compose.testing.yml up
ãåžžã«å
¥åããå¿
èŠãããã®ã§ããïŒ ïŒãã¹ãç°å¢ã«1ã€ã®è¿œå ãµãŒãã¹ãå¿
èŠãªå Žåã¯ã©ããªããŸããïŒ
envsubstã¯å¿ èŠãããŸãããdocker-composeconfigãç°å¢å€æ°ãå®è¡ããdockerstackãstdinããååŸããŸãã
docker-compose config | docker stack deploy --prune --compose-file -
docker-compose.env眮æã䜿çšããŠã¿ãŸãããã
@kogliããã§ã®åé¡ã¯ããªãã·ã§ã³ãéžæããããšã ãšæããŸãã ãã¹ãŠã«é·æãšçæããããŸãã 以åã話ãããããã«ïŒ
ãã¹ãŠã®ãœãªã¥ãŒã·ã§ã³ã¯ãäžéšã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ããè¯ããä»ã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ããæªãïŒãŸãã¯åœ¹ã«ç«ããªãïŒãªããŸãã äœããå®è£ ãããã°ãããã¯æ°žé ã«ç¶æãããã®ã§ã圌ãã¯ããã䜿ã£ãŠæéãå²ãã®ãè³¢æã ãšæããŸãã
@ shin-ããªãã質åãã人ã ãšæããŸãïŒãããæ€èšããããšã¯æå³ããããŸããïŒ ããŒã ã®çŸåšã®äœçœ®ããããèšèšããã®ãã©ãã»ã©é£ãããããããŠããã«ããå€ãã®ããŒã«ãèãããšããããèµ·ãããªãããšã人ã ã«åã«äŒããã®ã¯ç°¡åã§ã¯ãªãã§ããããïŒ ããã§ã³ã¡ã³ããããã¹ãŠã®äººã§ã¯ãªãã«ããŠããã»ãšãã©ã®äººãããã«å¯ŸåŠããæ¹æ³ãèŠã€ããŸããã
ãããéããã®ã¯ããªãè¯ãããã§ããããã«ãéèŠãªããšã«éäžã§ããŸãããã«ãªã¯ãšã¹ããè¡ãå¿ èŠããããã©ãããããã³ããããã¹ãŠã®ããŒãºãåæã«æºããæ¹æ³ã«ã€ããŠã¯èª°ãçåã«æããŸããã 圌ãã¯ãã äœãä»ã®ãã®ãäœãã«è¡ãããšãã§ãããããŠå€åä»ã®äººãå©ããããã«ãããå ¬éããããšããã§ããŸãã
念ã®ããã«èšã£ãŠãããŸãããç§ã®ãœãªã¥ãŒã·ã§ã³ã¯å®ç§ã§ã¯ãããŸããã§ããããäŸåé¢ä¿ãã€ã³ã¹ããŒã«ããŠå€§éã®åé¡ãä¿®æ£ãããããžã§ã¯ããå®è¡ããã®ã«2æ¥ããã£ããããã¯ããã«åªããŠããŸããïŒãããŠãã§ã«Dockerã䜿çšããŠããŸããïŒã DockerãšDockerComposeãå¯äžã®äŸåé¢ä¿ãšããŠäœ¿çšãã3ã€ã®ã³ãã³ãã ã¯ããæã£ã以äžã®ã³ãŒãããããŸããã ã¯ããã³ãã³ããå®è¡ããããã®ãã ããªãé åºããããŸãã ãããŠãã¯ããèŠããŠããã¹ãããšãããå°ããããŸãã WikiããŒãžãããããã«ããŒããŸããã èªåã§ããèšããšã Docker Composeããã®ä»äºããããšããããšã§ãããä»ã«ãäœããå¿ èŠã§ããã
éèŠãªã®ã¯ããããç¯å²å€ã§ããå Žåãããã«ã€ããŠè°è«ãç¶ããã®ã¯æéã®ç¡é§ã§ãã å€ãã®äººã¯ãäœããã¹ããã決ããåã«ãããã«ç«ã¡å¯ã£ãŠããã«ã€ããŠè³ªåããæèŠãè¿°ã¹ãŸãã ãããéããããå Žåã§ãã圌ãã¯ä»ã®äœããèŠã€ãããæ§ç¯ãããããŸãã ãããŠããããŒã·ãã¿ãŒã®ã¹ã¬ããã1ã€å°ãªããªããŸãã
ç·šéïŒããã眮ãããã®è¯ãæ¹æ³ãèããã ãã§ãïŒ PRãåãå ¥ããæ確ãªåºæºããªããããã«é¢äžããŠããããè¿ãå°æ¥ã«ãããæ€èšããããšãèšç»ããŠããã³ã¢ããŒã ã«èª°ãããªãå Žåãããã¯ãåé¡ãããã ã®ã¢ã€ãã¢ã
åé¡ãªã¹ããä¹±éã«ããçç±ã¯ããããŸãããããã«ããå€ãã®ã¢ã€ãã¢ã¯è¯ããšæããŸãããè¯ããæªããã«ããããããã©ããã«å±ããŠãããšæããŸãã ã»ãŒ3幎ã«ãªããŸããããã€ãç¶æ³ãå€ããå¯èœæ§ããªãå Žåã¯ããã€ã§ããããåéããããæ°ããåé¡ãéãããšãã§ããŸãã
ãã®æ©èœã¯éåžžã«ã·ã³ãã«ãªãããå®è£ ã«1æ¥ã»ã©ããããŸãã ãããã2幎éã®è°è«ã®åŸããŸã äœããããŸããã æ²ããã
@rubycutãããããã¯ãããããããé«ãååãã䜿ãããããšäœ¿ããããããåŒãç¶ãã ãšãã«èµ·ããããšã§ãã ç§ã¯ãéçºè ãéè«ççãªæ©èœã§è£œåãè©°ãŸãããããªãããšãå®å šã«ç解ããŠããŸãã ãã ãããã®ç¹å®ã®éåžžã«èŠæ±ãããæ©èœã¯å®éã«ã¯çã«ããªã£ãŠããããã§ãã éçºè ããŠãŒã¶ãŒãããããç¥ã£ãŠãããšæãã®ã¯æ²ããããšã§ãã ïŒç¹°ãè¿ããŸããã圌ãã¯éåžžããããŸãããããåžžã«ã§ã¯ãããŸãããä»åã¯ããã§ã¯ãããŸãããïŒ
@rubycut Talkã¯å®ãã®ã§ãã³ãŒããèŠããŠãã ããã å¯èœã§ããã°PRãéä¿¡ããã§ããªãå Žåã¯å ±åããŠåŸ ã£ãŠãã ããã
@wangwenpeiåè«ã§ããïŒ ãŸã第äžã«ãããªãã¯ãã®ãããžã§ã¯ãã®ã¡ã³ããã§ã¯ãããŸããã ã¡ã³ããããã®ã¢ã€ãã¢ãåãå ¥ãããhelp wantãã¿ã°ãä»ãããšã誰ãããã«ãªã¯ãšã¹ããæäŸã§ãããšç¢ºä¿¡ããŠããŸãã ãããã圌ãã¯èå³ããªããšèšã£ãã ããã§ããããåãå ¥ããããªãã®ã«ããªããããããªã¯ãšã¹ãããã«ããã®ãã
åèãŸã§ã«ããã³ãŒããã¯ãã§ã«ååšããŸãïŒïŒ3047
@wangwenpeiãããšãïŒ3047ããã«ãªã¯ãšã¹ãããããŸã...
2幎以äžã®éãå°ãªããšãããã€ãã®ãã£ãŒãããã¯ãåŸãã®ãåŸ
ã£ãŠããŸãã æè¿éåºããŸãã
https://github.com/docker/compose/issues/1896#issuecomment-322285976ã§åŒ·èª¿è¡šç€ºãããŠããçç±ã«ãã
https://github.com/docker/compose/issues/1896#issuecomment -322285976ã§æå®ãããåŒæ°ã¯ããã«ãªã¯ãšã¹ããšã¯ãŸã£ããé¢ä¿ããªããããæ£çŽã«èšããšéåžžã«æããŸãã
- ãµãŒãã¹ãšã¯äœã§ããïŒ èšèšäžããµãŒãã¹ã¯æ確ã«å®çŸ©ãããé·æå®è¡ããã»ã¹ã§ãããä»ã®ãµãŒãã¹ãšçžäºäœçšããŠã¢ããªã±ãŒã·ã§ã³ã圢æããŸãã ããã¯ãComposeãåäœããåºæ¬çãªåæã§ãããå®è£ ãããã¹ãŠã®æ©èœã§ã¯ãªãã«ããŠããã»ãšãã©ã®èšèšãã¬ã€ãããŸãã
- ãã®å®çŸ©ã«ããã°ããããã©ã«ãã§éå§ãããªããµãŒãã¹ãã¯å®éã«ã¯ãµãŒãã¹ã§ã¯ãããŸãã[1]ãããã¯ãã³ã³ãããŒã®äžéšã§ã¯ãªããã³ã³ãããŒã§å®è¡ãããã¢ããªã±ãŒã·ã§ã³ã§åäœãããäºåå®çŸ©ãããã¿ã¹ã¯ã§ãã
ã¢ãµãŒã·ã§ã³By that definition, a "service that is not started by default" is not really a service
ãçã§ãããšã¯æããªãã ããã©ã«ãã§éå§ãããªããµãŒãã¹ã¯ãããã©ã«ãã§éå§ãããªããµãŒãã¹ã§ãããçŸæç¹ã§ã¯ãã以äžã§ããã以äžã§ããããŸããã ããã©ã«ãã§éå§ããããã©ããã¯ããµãŒãã¹ãé·æéå®è¡ãããŠãããã©ãããã¢ããªã±ãŒã·ã§ã³ã®äžéšã§ãããã©ããã«ã€ããŠã¯äœãèšããŸãããããã©ã«ãã§éå§ãããªãããšã ãã瀺ããŸãã
ãããŠãããã¯ãã«ãªã¯ãšã¹ãã®å€æŽãè¡ãããšã§ããããŸãããµãŒãã¹ãããã©ã«ãã§éå§ãããã©ãããããŒã¯ããæ©èœãè¿œå ããŸãã
ãããè¡ãããã«ãã¿ã¹ã¯ãªã©ã®æ°ããæŠå¿µãå°å
¥ããå¿
èŠã¯ãããŸããã å®éã httpsïŒ //github.com/docker/compose/issues/1896#issuecomment -322285976ã®ä»ã®ãã¹ãŠã®åŒæ°ã¯ã2ã®èª€ã£ãåæã«åºã¥ããŠãããããäœãå®è¡ããããšããªããã«ãªã¯ãšã¹ãã«ã¯é©çšãããŸãããããããªããšã
å®å šãæãããã«ïŒ
[1]ããªãã·ã§ã³ã®ãµãŒãã¹ããå¿ èŠã ãšèšã人ãããŸãããããã¯ãã®ã¹ã¬ããã§èšåãããŠããæãäžè¬çãªãŠãŒã¹ã±ãŒã¹ã§ã¯ãããŸããã ç§ã®ç¥ãéããã»ãšãã©ã®äººã¯ãã¿ã¹ã¯ãæ©èœãæãã§ããŸãã
ã¯ãã1åéãã®ã¿ã¹ã¯ã®äŸããããŸããããå®çŸ©ã«å¿ãã_real_ãµãŒãã¹ã®
ããã䜿çšããŠ1åéãã®ã¿ã¹ã¯ãå®è¡ã§ããã®ã§ãããã«å¯Ÿããæå¹ãªåŒæ°ãšããŠå®éã«åãå
¥ããããšã¯ã§ããŸããã å®å
šã«æå¹ãªdocker-compose.yml
ãé·æéå®è¡ããããããŒããå
¬éãããã¢ããªã±ãŒã·ã§ã³ã®éèŠãªéšåã§ã¯ãªã_service_ãå®çŸ©ããããšã¯ãã§ã«å¯èœã§ãã
å®éãããã¯æšå¥šãããåé¿çã®1ã€ã§ããããŸãã _tasks_ãåå¥ã®docker-compose.yml
åå²ããã ãã§ãã
èšåãããŠããä»ã®åé¿çã¯ãç¬èªã®èªå®¶è£œïŒãã©ãããã©ãŒã äŸåïŒã¹ã¯ãªããã䜿çšããããšã§ããããã¯ãdocker-composeã®èªå·±èšè¿°ã®ç®çãšå®å
šã«ççŸããŸããäžèšã®ç§ã®ã³ã¡ã³ããåç
§ããããåã«å¥ã®ããŒã«ã«åãæ¿ãããã€ãŸãå®å
šã«ç Žæ£ããŸããçŸåšã®ããŒã«ãã§ãŒã³ïŒdocker-composeïŒã«ç°¡åã«å®è£
ã§ãã䟿å©ãªãã®1ã€ã®å°ããªæ©èœãååŸããããã ãã«ãããŸãæ©èœããããŒã«ãã§ãŒã³ã
ãªãã·ã§ã³2ã®æãåºæ¬çãªå®è£
ã«å¯ŸããŠæèµ·ãããå¯äžã®æ¬åœã®è°è«-ã€ãŸããããã©ã«ãã§ç¹å®ã®ãµãŒãã¹ãéå§ããªãããã«docker-compose
ã«æ瀺ãã_äœããã®æ¹æ³_ãæã¡ããã以äžãæ°ããæŠå¿µãªã©ã¯ãããŸãã-ããã¯å¯èœæ§ããããšããããšã§ãbe_somehow_ã¯_some_ãŠãŒã¶ãŒã«ãã£ãŠèª€çšãããŸãã
ãããããã®è°è«ã¯ãããã«å¯ŸããéèŠãšããã§æèµ·ãããæ£åœãªãŠãŒã¹ã±ãŒã¹ãšæ¯èŒããŠéåžžã«åŒ±ãã§ã...
@ shin-
ããããç§ãã¡[3]ã«ã¯ããã®æ©èœã人ã ã«ãšã£ãŠæ¬åœã«åœ¹ç«ã€ãã®ã«ãªãããã«å¿ èŠãªãã®ãå®è£ ãŸãã¯ç¶æããããã®æéããªãœãŒã¹ããªãããã§ãã
[3]ãããŠãçŸæç¹ã§docker-composeã«ç©æ¥µçã«åãçµãã§ããã®ã¯ç§ã ããªã®ã§ããã®æç¹ã§ç§ã¯ãç§ããæå³ããŸãã
ã¢ã¯ãã£ããªã¡ã³ããã¯1人ããããªãããšã匷調ããäžæ¹ã§ããã«ãªã¯ãšã¹ããç¡èŠããã ããªã®ã§ãä»ã®éçºè
ããããžã§ã¯ãã«åå ãããæ©äŒãç¡é§ã«ããããšã¯ãç§ã«ã¯ç解ã§ããŸããã
ïŒ3047ã§æäŸãããã³ãŒãå€æŽã¯ããã§ã«[å€ãã®]人ã
ã«_æ¬åœã«åœ¹ç«ã€æ©èœã_do_å®è£
ããŠããŸã_-ããããã_ãã¹ãŠ_ã®ãŠãŒã¹ã±ãŒã¹ãæã€äººã
ã§ã¯ãªããããã«ããã»ãšãã©ã®äººã
ã§ãã
å®å
šã«æ°ããæŠå¿µãæ°ããäŸåé¢ä¿ç®¡çãæ倧cmake
ãããªè€éããå°å
¥ããå¿
èŠããããã¹ãŠã®è¿œå èŠä»¶ã¯ãåã«èª€ã£ãåæã«åŸãã ãã§ãïŒ
ãã®ãããªæ©èœãæ¢ããŠããã®ã§ãã»ãã®æ°æ¥åã«ãã®åé¡ã«ééããŸããã
æ®å¿µãªããå®è£ ãããŠããªãããããããŠç§ãåéã§ãããã®ãããå ¬åŒã«ãµããŒããããŠãã代æ¿æ段ã¯ãè€æ°ã®yamlãã¡ã€ã«ã䜿çšããããšã§ãã
ããã©ã«ãã§å®è¡ãããªããµãŒãã¹ã«è€æ°ã®yamlãã¡ã€ã«ã䜿çšãããšããèãã¯ãããã©ã«ãã§å®è¡ãããªããµãŒãã¹ããšã«1ã€ã®è¿œå èšå®ãå«ããã¹ãŠã®ãµãŒãã¹ã«1ã€ã®yamlãã¡ã€ã«ã䜿çšããã®ãšæ¯èŒããŠäžååãªä»£æ¿æ段ã ãšæããŸãã
ã ããããããç§ã®+1ã§ãã
æãåèã«ãªãã³ã¡ã³ã
ãªãã·ã§ã³2ã«æ祚ããŸããããšãã°ã
start: false
ãã£ã¬ã¯ãã£ãã®ãããªãã®ã§ãã å©ç¹ã¯ãè€æ°ã®compose.ymlãã¡ã€ã«ãè¿œå ã®æ§æãã¡ã€ã«ãäžèŠã«ãªãããšã§ãã1ã€ã®compose.ymlãèªã¿åãã ãã§ãã¢ããªã¹ã¿ãã¯å šäœã®æ觊ãã€ããããšãã§ããŸãã