ããã©ã«ãã§ã¯ãComposeã¯ããã£ã¬ã¯ããªcomposeã®basenameã«åºã¥ããŠãããžã§ã¯ãåãäœæããŸã
ã³ãã³ãã¯ããå®è¡ãããŸãã ãããžã§ã¯ãåã¯ã次ã®ããããã®æ¹æ³ã§äžæžãã§ããŸãã
ã³ãã³ãããšã«-p / --project-name
ãªãã·ã§ã³ãæž¡ããã
COMPOSE_PROJECT_NAME
ç°å¢å€æ°ã
_each_ã³ãã³ãã«--project-name
ãªãã·ã§ã³ã䜿çšãããšããšã©ãŒãçºçãããããªããŸãã
ïŒããšãã°ïŒ docker-compose up
å®è¡ãããšãã«ãªãã·ã§ã³ãæž¡ããšã次ã®ããã«ãªããŸãã
å¥ã®ååã§äœæãããŠãããããžã§ã¯ãã®_å¥ã®_ã€ã³ã¹ã¿ã³ã¹ããŸãã¯
亀æãããå¥ã®ãããžã§ã¯ãã®ã³ã³ããã
COMPOSE_PROJECT_NAME
ç°å¢å€æ°ã䜿çšããããšã¯ã察åŠãããšãã«åœ¹ã«ç«ã¡ãŸãã
è€æ°ã®ãããžã§ã¯ãã§ãåæ§ã®åé¡ãåŒãèµ·ããå¯èœæ§ããããŸãã
ãããã®åé¡ã解決ããããã«ãcomposeã¯ãããžã§ã¯ãã®ååããã¡ã€ã«ã«ä¿åããŸã
build-ãããžã§ã¯ããæåã«éå§/ãã«ãããããšãã®ã³ã³ããã¹ãã
ãããžã§ã¯ããã¡ã€ã«ãèŠã€ãã£ãå Žåãcomposeã¯ãã®ãããžã§ã¯ãåãèªåçã«äœ¿çšããŸã
ãŠãŒã¶ãŒããããžã§ã¯ãåãäžæžãããããšããŠããå Žåã¯ããã¡ã€ã«ãäœæããŠäŸå€ãã¹ããŒããŸã
--project-name
ãªãã·ã§ã³ã䜿çšããŸãã
ãªãã·ã§ã³ãããã«æ¡åŒµã§ããããã«ãcomposeã¯é衚瀺ã®.docker-compose
ãã£ã¬ã¯ããªãäœæããŸã
ãã«ãã³ã³ããã¹ãã®ãã«ãŒãããã£ã¬ã¯ããªã«ãããŸãã ãã®ãã£ã¬ã¯ããªå
ã§ã
project-name
ãã¡ã€ã«ãäœæããããããžã§ã¯ãã®ååã ããå«ãŸããŸãã
tree -a
.
âââ .docker-compose
â  âââ project-name
âââ docker-compose.yml
è°è«ãã¹ãããšãããã€ãæ®ã£ãŠããŸãã
docker-compose init --project-name=foobar
ïŒdocker-compose destroy
ïŒ--file
ïŒãæå®ã§ããŸãããããŠãããåºãç¯å²ã§;
ç·šéïŒFigãComposeã«åå倿Ž
ãããžã§ã¯ãåã¯éèŠã§ã¯ãããŸããã ç§ã¯ã©ã³ãã ãªãããžã§ã¯ãåã®ã¢ã€ãã¢ã奜ãã§ãã ããã«è¯ãâ fig.ymlãžã®ãã¹ã®ããã·ã¥ãçæããŠããã䜿çšã§ããŸããïŒ
å®éããããžã§ã¯ãåã¯ããªãéèŠã ãšæããŸãã CIãã€ãã©ã€ã³å ã®ã€ã¡ãŒãžã§äœã§ãã§ããããã«ãããå Žåã¯ããããžã§ã¯ãåãç¥ã£ãŠãããããå¥ã®ãã®ãšããŠåã¿ã°ä»ãã§ããããã«ããå¿ èŠããããŸãã
ç°å¢å€æ°ãããããžã§ã¯ãåããªãŒããŒã©ã€ãã§ãããããããããäžæã§äºæž¬å¯èœã«ä¿ã€ããšã容æã«ãªããŸãã äœãèµ·ãã£ãŠããç°å¢å€æ°ããã®ãªãŒããŒã©ã€ãããµããŒãããå¿ èŠããããšæããŸãã
ãããžã§ã¯ãåããã¡ã€ã«ããæ§æã§ããããã«ãããšããã¢ã€ãã¢ã奜ãã§ãã ïŒïŒ45ïŒã§ãåæ§ã®è°è«ããã£ããšæããŸãã .fig/project-name
ãããžã§ã¯ãåããããšãéåžžã«å°ããªãã¡ã€ã«ãããããçºçããããã§ãã fig.yml
èªäœã«å
¥ããæ¹ãç°¡åã ãšæããŸãïŒïŒ45ã§ææ¡ãããŠããããã«ãDockerã®1ã€ãææ¡ãäœæããŸãïŒã
å¥ã®ãã£ã¬ã¯ããªãšãã¡ã€ã«ã«é 眮ããããšã®å©ç¹ã¯äœã§ããïŒ
å¥ã®ãã¡ã€ã«ã«å ¥ããçç±ã¯ããã€ããããŸãããã®èåŸã«ããç§ã®èãã説æããããšæããŸãã
--project-name=foobar
ïŒãä¿æãããããããã¯ãèªåãããžã§ã¯ãåãšã¯ç°ãªãå ŽåããããŸãã.fig/project-name
ã¯ãããžã§ã¯ãã®_ãã®ã€ã³ã¹ã¿ã³ã¹_ã®ååãä¿æããŸããããããããã¡ã€ã«ã¯instance-name
ãŸãã¯åæ§ã®ãã®ãšåŒã°ããã¹ãã§ãã
ãããžã§ã¯ãåããã¡ã€ã«ããæ§æå¯èœã«ãããšããã¢ã€ãã¢ã奜ãã§ã
ãã®ææ¡ã§ãããè¡ãããšã¯_å¯èœ_ã§ããïŒ project-name
ãã¡ã€ã«ãæåã§äœæããããšã«ããïŒãç§ã®äž»ãªäœ¿çšäŸã¯ã䜿çšãããååãä¿åããããã«_fig_ã«ãã¡ã€ã«ãäœæãããããšã§ããã
éåžžã«å°ããªãã¡ã€ã«ãããããçºçããŸãã
確ãã«ãå¥ã®æ¹æ³ã¯.fig
ãã£ã¬ã¯ããªãã¹ãããããããšã§ãããå°æ¥è¿œå ã®ãã®ãå¿
èŠã«ãªã£ãå Žåã¯ããããžã§ã¯ãã®ã«ãŒããä¹±éã«ããããšãªã远å ã®ãã¡ã€ã«ã远å ã§ããŸãã Gitãåæ§ã§ãã¯ãªãŒã³ãªã¢ãããŒãã ãšæããŸãã
fig.ymlã«å ¥ããã»ããç°¡åã ãšæããŸã
ã©ã¡ãã®ãªãã·ã§ã³ãè£å®ã§ãããšæããŸãã ååããã©ã°ãŸãã¯ç°å¢å€æ°ã«ãã£ãŠãªãŒããŒã©ã€ããããªãå Žåã¯ãããã©ã«ããšããŠfig.yml
ã®ååã䜿çšããŸãã ãããžã§ã¯ãã_éå§_ããããã«å®éã«äœ¿çšãããååã.fig/project-name
ç°å¢å€æ°ãããããžã§ã¯ãåããªãŒããŒã©ã€ãã§ãããããããããäžæã§äºæž¬å¯èœã«ä¿ã€ããšã容æã«ãªããŸãã äœãèµ·ãã£ãŠããç°å¢å€æ°ããã®ãªãŒããŒã©ã€ãããµããŒãããå¿ èŠããããšæããŸãã
å¥åŠãª; è€æ°ã®ãããžã§ã¯ãã®ç®¡çãã©ã®ããã«åŠçããŸããïŒ ã€ãŸãã cd project-a && fig ps
ãæ¬¡ã«cd project-b fig <something>
ïŒ
ãæèŠããããšãããããŸãïŒ
å¥åŠãª; è€æ°ã®ãããžã§ã¯ãã®ç®¡çãã©ã®ããã«åŠçããŸããïŒ
ç§ã¯éåžžã®å®è¡fig
ããpython-tox
ç§ã¯ã®ã§ãç§ã¯æ¬åœã«ç§ã®ã·ã§ã«ã§ãããèšå®ããããšã¯ãããŸããããç°å¢ãèšå®ããããšãã§ããŸããã ãŸããtmuxã䜿çšããåŸåãããããããããžã§ã¯ãããšã«ç°ãªãã·ã§ã«ã䜿çšããŠããŸãã
äž¡æ¹ã®ãªãã·ã§ã³ãè£å®ã§ãããšæããŸã
ãã£ããããåæããŸãã
.fig/instance-name
販売ãããŠããã®ããã€ã³ã¹ã¿ã³ã¹åºæã®ãªãŒããŒã©ã€ããå«ãå¯èœæ§ã®ãã.fig-instance.yml
ã§è²©å£²ãããŠããã®ãã¯ããããŸããããããã¯ãã€ããŒãªç¹ã ãšæããŸãã
ãããžã§ã¯ãåãèãã; ç§ãããªãã®ç¶æ³ãæ£ããçè§£ããŠããå Žåãçæããã_images_ãããšãã°myapp:build12345
ããŸãã¯_containers_ã®ååãå¶åŸ¡ã§ããããšãéèŠã§ãã ããªãã®ç¶æ³ã®ãæè§ŠããåŸãããã ãã«ã
ãã©ã³ãã ãªããããžã§ã¯ãåã®èåŸã«ããç§ã®èãã¯ãFigããããžã§ã¯ãã®ã³ã³ãããèŠã€ããããšãã§ããéããèŠæ ãã®è¯ãååã¯éèŠã§ã¯ãªããšããããšã§ããã ãŠãŒã¶ãŒãšããŠããµãŒãã¹åïŒ fig stop web
ïŒãä»ããŠãµãŒãã¹ã®ã³ã³ãããŒã«ã¢ã¯ã»ã¹ã§ããå Žåãå®éã®ã³ã³ãããŒã®ååã¯éèŠã§ã¯ãããŸããã
figã¯ã .fig
ãã£ã¬ã¯ããªå
ã®ããŒã«ã«ã¹ãã¬ãŒãžå
ã®IDã«ãã£ãŠã³ã³ããã远跡ã§ãããšèããŠããŸããïŒããã¯ãå®è¡äžã®ã³ã³ããã倿°ãããã·ã³ã§ããã©ãŒãã³ã¹ãåäžããå¯èœæ§ããããŸãïŒã ããããããã¯æ¬åœã«å¥ã®åé¡ã®ããã®ãã®ã§ãã
'project-name'ãã¡ã€ã«ããæé»çã«ãäœæããããšããŸãã¯fig init
ä»ããŠãæç€ºçã«ãäœæããããšã«ã€ããŠäœãèãã¯ãããŸããïŒ ãããããããããã®äŒæäžã«å°ãæéãããã°ãå°ãå®éšããããšãã§ããŸãïŒPythonã§äœãã³ãŒãã£ã³ã°ããããšããªãã®ã§ã_æ¬åœã«_å®éšçã§ã:)ïŒ
myappïŒbuild12345ãªã©ãçæãããã€ã¡ãŒãžããŸãã¯ã³ã³ãããŒã®ååãå¶åŸ¡ã§ããããšãéèŠã§ããïŒ
ã€ã¡ãŒãžã¯æ¬åœã«éèŠã ãšæããŸãããã³ã³ãããŒåãç«¶åããªãããã«ããããšããå ±æãã¹ãã§ã¯éåžžã«éèŠã§ãã ãã®ææ¡ã¯ãå®éã«ã¯ãã®åé¡ã«ã察åŠããããšãç®çãšããŠãããšæããŸãã
ããããã³ã³ããã®äºæž¬å¯èœãªååã¯äŸç¶ãšããŠéèŠã ãšæããŸãã å€éšã·ã¹ãã ïŒå³ã ãã§ãªãïŒãã³ã³ãããŒãååã§èå¥ã§ããããšãéèŠãªããã€ãã®ã¿ã¹ã¯ãèããããšãã§ããŸãã
ã³ã³ããåãã©ããªããã¯ãã§ã«ããã£ãŠããã®ã§ãã©ã¡ããä»ã¯ãšãŠãç°¡åã§ãã ååãæ€çŽ¢ããå¿ èŠãããå Žåã¯ãå€å°è€éã«ãªããŸãã
figã¯.figãã£ã¬ã¯ããªå ã®ããŒã«ã«ã¹ãã¬ãŒãžã«ããIDã§ã³ã³ããã远跡ã§ãããšããèããŠããŸãã
ãããããã©ãŒãã³ã¹ã®åäžã«ãªãå¯èœæ§ãããã®ã¯äºå®ã§ãããããã¯ééã£ãã¢ãããŒãã§ãããšå¿é ããŠããŸãã figã«æ°žç¶çãªç¶æ ã远å ãããšãïŒç¶æ ã«ä»éããïŒå€ãã®ãã°ãçºçããå¯èœæ§ããããŸãã ãããããããdockerdã®ã©ããªã³ã°ã·ã¹ãã ã«ãã£ãŠåŠçãããããšãæãã§ããŸãã figãã³ã³ãããŒã«ã©ãã«ãä»ããã ãã§ããã®ã©ãã«ãä»ãããã¹ãŠã®ã³ã³ãããŒãç §äŒã§ããå Žåããã¹ãŠã®ç¶æ ã1ã€ã®å ŽæïŒdockerdïŒã«ä¿æããŸãã ããæç¹ã§ãã®è©±ããã£ãããšã¯ç¥ã£ãŠããŸãããããŒããããã«ãããã©ããã¯ããããŸããã
'project-name'ãã¡ã€ã«ããæé»çã«ãäœæããããšããŸãã¯fig initãä»ããŠãæç€ºçã«ãäœæããããšã«ã€ããŠäœãèãã¯ãããŸããïŒ
æé»çã«äžäœäºææ§ãé«ããšæããŸãã ã©ãããŠãå¿
èŠãªå Žåãé€ããŠã fig init
é¿ããããšæããŸãã baseirã䜿çšãã代ããã«ã <basename>-<4 digit random id>
ãããžã§ã¯ãåãæé»çã«äœæããŠããããšãããããŸããã
figãã©ã³ãã ãªååãçæãå§ããå Žåã«ã®ã¿ãåäžã®ãã¹ãã§1000以äžã®ã³ã³ãããŒãå®è¡ããååã§ããããèå¥ã§ããªããªã£ãå Žåã¯ãããããåãæ¿ããŸãã
@ frank-dspeedãŠãŒã¹ã±ãŒã¹ã远å ããŠããã ãããããšãããããŸãã ç§ãæ£ããçè§£ããŠããã°ãfigã䜿çšããŠã³ã³ãããŒã_éå§_ããŸããããã®åŸãFigã䜿çšããåœåèŠåã䜿çšããŠãDockerãä»ããŠã³ã³ãããŒãçŽæ¥_ "管ç"ããŸããïŒ
ãããããããããªãã«ãšã£ãŠè峿·±ãããšã§ãïŒ https ïŒ
ãããããã§ããããšãã°æ°ããfildã远å ããã ãã§ããã®ãããªææ¡ãããããããŸãããããã®å Žåã¯ENVã远å ããã ãã§çµãããã³ã¹ãã¥ãŒã fildãšããŠè§£æã§ããŸãïŒdartïŒ
ãããžã§ã¯ãåã®æç¢ºãã管çããããšã¯ãfigã®è²¬ä»»ã§ã¯ãªããšæããŸãã
ç§ãããªãã®ææ¡ãæ£ããçè§£ãããšããã©ã³ãã ãªååãçæãããšã FIG_PROJECT_VARIABLE
ãš--project-name
ãªãã·ã§ã³ã圹ã«ç«ããªããªããŸãã ããã¯ããã³ãã¬ãŒãããµãŒãã¹ã«äŸ¿å©ã§ãã
ãããžã§ã¯ãåã®æç¢ºãã管çããããšã¯ãfigã®è²¬ä»»ã§ã¯ãªããšæããŸãã
ç§ã¯ã¡ãã£ãšç¢ºä¿¡ãæãŠãŸãã; åãååã®ãã£ã¬ã¯ããªã«ããŸããŸãããšåä»ãªããšããããããå³ã¯å¥ã®ãããžã§ã¯ãã®ã³ã³ãããããµã€ã¬ã³ãã«ãäžæžãããŸãã
ç§ãããªãã®ææ¡ãæ£ããçè§£ãããšããã©ã³ãã ãªååãçæãããšãFIG_PROJECT_VARIABLEãš--project-name-optionã圹ã«ç«ããªããªããŸãã ããã¯ããã³ãã¬ãŒãããµãŒãã¹ã«äŸ¿å©ã§ãã
äžèšã®è°è«ã«ç¶ããŠãç§ã¯ãã®ãããªãã®ãããŸããããšæããŸã
--project-name
ãæäŸãããŠããå Žåã¯ãããã䜿çšããŸãïŒãããŠã .project-name
ãæžã蟌ã¿/æŽæ°ããŸããïŒããããªãïŒ--project-name
ã¯æäŸãããŠããŸãããã FIG_PROJECT_NAME
ã¯ã FIG_PROJECT_NAME
䜿çšããŸãïŒãããŠ.project-name
æžã蟌ã¿/æŽæ°ããŸããïŒïŒ.project-name
ãèšå®ãããŠããå Žåã¯ã .project-name
䜿çšããŸã.project-name
æžã蟌ã¿ãŸãååãåŠçããŠfigã«æž¡ãã¹ã¯ãªããã§figã䜿çšãã人ã®èгç¹ããã¯ããããžã§ã¯ãïŒç§ã®å Žåã¯ãã³ãã¬ãŒãïŒã®å Žæã«ååãæ ŒçŽããããšã¯æå³ããããŸããã
ããã§ãã fig up
å®è¡ãããšãã«ãçµæã®ã³ã³ããã®ååã«ãã£ã¬ã¯ããªåã䜿çšãããŠããããšã¯éåžžã«çŽæç
ããšãã°ã docker ps -a
ãèŠããšãã©ã³ãã ãªååã§åããããŠããå Žåã¯ããŸã圹ã«ç«ã¡ãŸããã
ãªãã·ã§ã³--random-name
ã¯ããªãã®ç¶æ³ã«åœ¹ç«ã¡ãŸããïŒ
ããã«å ããŠãåå空éãåæ ããããã«[a-zA-Z0-9_].*
ãä»å ããæ©èœã¯ãããåºç¯ãªå±éã«åœ¹ç«ã€ãšæããŸãã
fig.ymlã䜿çšããŠãã®ãããªæ å ±ãä¿åããã®ã¯ã©ãã§ããïŒ
schema-version: 1.1
project_name: foo
containers:
web:
build: .
command: python app.py
links:
- db
ports:
- "8000:8000"
db:
image: postgres
ãããŠãBCãç¶æããããã«ãcompose / project.py :: from_configã§
<strong i="9">@classmethod</strong>
def from_config(cls, name, config, client):
if 'schema-version' not in config:
config = {
'schema-version': '1.0',
'containers': config
}
dicts = []
for service_name, service in list(config.containers.items()):
if not isinstance(service, dict):
raise ConfigurationError('Service "%s" doesn\'t have any configuration options. All top level keys in your docker-compose.yml must map to a dictionary of configuration options.' % service_name)
service['name'] = service_name
dicts.append(service)
return cls.from_dicts(name, dicts, client)
@jderusseç§ã¯ããªããææ¡ãããããªãã®ã«ãšãŠã
ãšã«ããããã®ãã±ããã§è§£æ±ºããããã«ïŒ ææ¡ãããïŒ1233ã¯ãäžäœäºææ§ãæãªãããšãªãããŠãŒã¶ãŒãå®è¡ããã¢ã¯ã·ã§ã³ã決å®ã§ããããã«ããããšã§ãäž¡æ¹ã®é·æãæäŸããŠããããã§ãã
ããšããšã¯docker-compose.yml
ã®ååãââæ¬²ããã£ãã®ã§ããããã£ãšèããŠã¿ããšãå¥ã®ãã¡ã€ã«ãšããã¢ã€ãã¢ããšãŠãæ°ã«å
¥ã£ãŠããŸãã
å¥ã®ãã¡ã€ã«ã䜿çšãããšãå¿ èŠã«å¿ããŠããŒãžã§ã³ç®¡çã®å¯Ÿè±¡å€ã«ããããšãã§ããŸãïŒåãŠãŒã¶ãŒãç°ãªããããžã§ã¯ãåãæã€ããšãã§ããããã«ããå ŽåïŒã
æ°ãããããã¯ãŒã¯ãµããŒãã§ã¯ããããã¯ãŒã¯åãæ§æã§ããããã«ããæ©èœèŠæ±ããããŸãïŒããã©ã«ãã§ã¯ãããžã§ã¯ãåã«ãªããŸãïŒã ãããã£ãŠãå¥ã®æ§æãã¡ã€ã«ã䜿çšããŠãããã©ã«ãã®ãããã¯ãŒã¯åãããã©ã«ãã®ã¹ã±ãŒã«ãªã©ãå«ããããšãã§ããŸããã¢ããªã±ãŒã·ã§ã³å®çŸ©ã®äžéšã§ã¯ãªãããã³ã³ããžã·ã§ã³ã®å®è¡ã«é¢é£ãããã¹ãŠã®ã¡ã¿æ§æã
ç§ã¯ãããã£ã³ãèšã£ãããšã«åæããŸãã ãã¡ã€ã«.docker-compose
ã©ãã§ããïŒ ããã«ãã¹ãŠã®ã³ãã³ãã©ã€ã³åŒæ°ã®ããã©ã«ããªãã·ã§ã³ããªã¹ãã§ããŸãã
@dnephin sgtm
@mikehaertlãã®äŸã§ã¯.docker-compose
ãã©ã«ããŒã䜿çšããŸããããä¿åããæ
å ±ã®éã«ãã£ãŠã¯ããã¡ã€ã«ãæ©èœããå¯èœæ§ããããŸãã
@thaJeztahãããããã ãããããªããã ç§ã¯éããŸããã
@mikehaertlã¯ãããã®ååã.fig
ãã.docker-compose
;-)
æ£ãã ïŒïŒ
å®éãç§ã¯åçŽãªãã¡ã€ã«ã奜ã¿ãŸãã iniã¹ã¿ã€ã«ã¯ã©ãã§ããïŒ äžéšã®ã°ããŒãã«ãªãã·ã§ã³ãã»ã¯ã·ã§ã³å ã®ã³ãã³ãåºæã®ãªãã·ã§ã³ïŒ
project-name = blabla
[build]
no-cache
åããã¡ã€ã«ãŸãã¯åããã£ã¬ã¯ããªã«ä¿åãããåé¢é£æ å ±ã®ã¢ã€ãã¢ïŒ
è€æ°ã®äœæãã¡ã€ã«ããµããŒãããããã«ãªã£ãã®ã§ãæ§æãšããŠäœ¿çšããäœæãã¡ã€ã«ãžã®ãã¹ãå«ããããšãè峿·±ããããããŸããã
ã¯ã©ã€ã¢ã³ãAPIããŒãžã§ã³
ããããdocker_host
ïŒ
ãããè¯ããã®ã®ããã«èãããŸãïŒè¿œå ïŒ
ç§ã¯ã¡ããã©ãã®åé¡ã«ééããŸããã
Dockeræ§æã®åºæ¬æ§é ãæ±ºãŸã£ãæç¹ã§ãä»ã®ãµãŒãã¹ã«è€è£œããŠããŸãã ãã¹ãŠã®ãããžã§ã¯ãã¯åãæ§é ãæã£ãŠããããããã¹ãŠåããµããã£ã¬ã¯ããªïŒãããã£ãŠããã©ã«ãã®ãããžã§ã¯ãåïŒã䜿çšããŸãã ã€ãŸããåããã¹ãã§2ã€ã®ãµãŒãã¹ãå®å šã«ã¹ããŒã«ããããšã¯ã§ããŸããã
ãããžã§ã¯ãã®ãã£ã¬ã¯ããªåãããã©ã«ãã«ãªãããã«æ§é ã倿Žããå¿ èŠããããããããŸããããã€ã¡ãŒãžã®ãã«ãæã«ãã¡ã€ã«ãã³ããŒããããšã«ã€ããŠ100ïŒ è¯å®çã§ã¯ãããŸããã
ããã§ãåãã§ããã Makefileã¿ãŒã²ããã§åæ§ã®åé¡ã解決ããŸããã ããã§ããã«ã¹ã¿ã docker-compose
ã³ãã³ããå®è¡ããå Žåã¯ã -p customname
ã䜿çšããå¿
èŠããããŸãã
çŸåšã /home/alice/myproject
ãš/home/bob/myproject
docker-composeã»ããã¢ãããäºãã®ã³ã³ãããŒãèžãŸãªãããã«ããæ¹æ³ãèŠã€ããããšããŠããŸãã æåŸã®ãã£ã¬ã¯ããªåã ãã§ãªããå®å
šãªãã¡ã€ã«ãã¹ããã³ã³ããåãååŸããæ¹æ³ã¯ãããŸããïŒ
@ chris-martinããã¯åãªãåé¿çã§ã...
alias docker-compose="docker-compose -p ${PWD}"
docker-composeã¯ãããžã§ã¯ãåãã/
åãé€ããŸããïŒ
ãããžã§ã¯ãåã«äœ¿çšã§ããæåã¯ææžåãããŠããŸããïŒ
æçµçã«ãã£ã¬ã¯ããªæ§é ã倿Žããdocker-compose.ymlããããžã§ã¯ãã«ãŒãã«é 眮ããŸãããããã¯ååã«é©åãªåé¿çã§ãã
ãã¹ãŠã®gitãªããžããªãåããã£ã¬ã¯ããªïŒããšãã°ã$ HOMEããŸãã¯$ HOME / projectsïŒã«é 眮ããåŸåãããå Žåã¯ãããçšåºŠã®ä¿è·ãæäŸãããŸãããå¥ã®æ§é ïŒããšãã°ãçµç¹ããšã«1ã€ã®ãã£ã¬ã¯ããªïŒã䜿çšãããšé¢åã«ãªããŸããå€ãã®å ŽåïŒããŸãã¯ãã·ã³ãboot2dockerã䜿çšããŠããå Žåãdocker-machineãåå¥ã®VMãæäŸããããã«æ³šæããªãéããåãããã¯ã¹äžã®ãŠãŒã¶ãŒéã§æ å ±ããªãŒã¯ããåŸåããããŸãã
ïŒ2294ãŸãã¯docker-machineãããè¡ççã«ããããšã§ãåé¡ã解決ãããšæããŸãã
ãŸãããããžã§ã¯ãã«ãŒãã«é 眮ããå¥ã®ãã©ã«ããŒåãä»ããããšããå§ãããŸãã
ç§ã®å ŽåãAWSã«å ±æãã·ã³ããããã«ãŒãã«docker-compose.ymlããããŸããããŠãŒã¶ãŒããªããžããªãå¥ã®ååã®ãã£ã¬ã¯ããªã«è€è£œã§ãããããæåã®ãããžã§ã¯ãåãèšå®ããããšæããŸãã ãããçŸåšçºçããŠããå Žåãã³ã³ããã®èµ·å/忢ã§åé¡ãçºçããŸãã
æ°ããv2
æ§æã䜿çšãããšã httpsïŒ //github.com/docker/compose/issues/745#issuecomment-74028861ã§èª¬æãããŠããããã«å®è£
ã§ã
å®ã¯container_name_prefix
ã§ãããïŒ
@ schmunk42
ããã¯å®éã«ã¯åãªãcontainer_name_prefixã§ãããïŒ
volume_name_prefix
ã image_name_prefix
ã network_name_prefix
ãšããŠã䜿çšãããã®ã§ã project_name
ã®æ¹ãäžè¬çãªçšèªã ãšæããŸãã
.docker-compose
docker-compose.override.yml
ã¯ãå€ãã®ç¹ã§
ãããã£ãŠã @ JosephEarlã®ãŠãŒã¹ã±ãŒã¹ãæå¹ã«ããããã«ã docker-compose.yml
ã«project_name
ããŒã远å ãããšããïŒ745ïŒã³ã¡ã³ãïŒã§ã®@jderusseã®ææ¡ã«è³æã§ãã
ãŠãŒã¶ãŒåºæã®ã«ã¹ã¿ãã€ãºã¯ã docker-compose.override.yml
ã䜿çšãã .gitignore
ä»ããŠé€å€ããããšã§ããã§ã«å®è£
ã§ããŸãã
3çªç®ã®æç€ºçã«ãŠãŒã¶ãŒåºæã®ãªãŒããŒã©ã€ããã¡ã€ã«ãå¿
èŠãªå Žåã¯ã .docker-compose.local-override.yml
å§ãããŸãã
YAMLã®æ§é ã«é¢ããŠã¯ã project
ãšããæ°ãããããã¬ãã«ããŒãäœæããããšããå§ãããŸããããã«ã¯project_name
ãå«ãŸããå°æ¥çã«ã¯ä»ã®å€æ°ãå«ãŸããå¯èœæ§ããããŸãã ããã«ãããæäžäœã®åå空éã®æ±æãåé¿ãããŸãã 説æããïŒ
project:
project_name: "your-project"
network_prefix: "abc"
network_prefix
ã䜿çšãã代ããã«ããããã¯ãŒã¯èªäœã®ååãçŽæ¥ã«ã¹ã¿ãã€ãºããæ¹ãçè§£ããããå Žåãããããšã«æ³šæããŠãã ããã ç§ãçè§£ããŠããããã«ã2ã€ã®ã±ãŒã¹ããããŸãã
project_name
ã§ååã§ããäžã§ææ¡ãããææ¡ã¯ç§ã«ã¯è¯ãããã§ããç§ãã¡ã¯äœåãªèšå®ãã¡ã€ã«ãå°å ¥ããããªãããšã«åæããŸã
ãã®åé¡ã®æŠå¿µã«+1
ãã ãããªããžããªã«å¥ã®ãã¡ã€ã«ã远å ãã代ããã«ã docker-compose.yml
ããŒã䜿çšããå Žåã+1ããŸãã
以åã®ã³ã¡ã³ããèŠçŽãããšããããžã§ã¯ãåã®ã«ãã¯ã¢ããã·ãŒã±ã³ã¹ã®1ã€ã®ææ¡ã¯æ¬¡ã®ããã«ãªããŸãã åã®ã¢ã€ãã ãåŸã®ã¢ã€ãã ãããåªå ãããŸãã
--project-name
䜿çšããŸãCOMPOSE_PROJECT_NAME
䜿çšããŸããdocker-compose.yml
ïŒãŸãã¯ãã®èšå®ãä¿åãããŠããå ŽæïŒã®project_name
ããŒã䜿çšããŸããbasename
ã䜿çšããŸã2察3ã®åªå é äœãããããŸããã
--project-name
ãšã®äžè²«æ§ãCOMPOSE_PROJECT_NAME
ã¯project_name:
ã確å®ã«ãªãŒããŒã©ã€ãããå¿
èŠããããŸããCOMPOSE_PROJECT_NAME
ãproject_name:
ãããåªå
ããããšãç°å¢å€æ°ãèšå®ãããŠããããã«èª€ã£ãŠééã£ããããžã§ã¯ãåã䜿çšããå¯èœæ§ããããŸãã ããã¯ãããã°ãé£ããå ŽåããããŸãã ãã®å ŽåãèŠåã¡ãã»ãŒãžãåé¡ã«ãªãå¯èœæ§ããããŸããïŒBCãç¶æããããã«ããã©ã«ãå€%(project_name)s_%(service_name)s_%(instance_number)s
æ°ããããããã£container_name_pattern
ãå°å
¥ããã®ã¯ã©ãã§ãã
ãã®ãã©ã¡ãŒã¿ãŒã䜿çšãããšãèªç±ã«hardcodedproject_%(service_name)s_%(instance_number)s
ã«å€æŽããŠããã®åé¡ã確å®ã«ä¿®æ£ã§ããŸãã
ãã®æ©èœã10å鿢ããåŸããã®åé¡ãçºçããŸããã
ç§ãæåã«ããããšã¯ããã¡ã€ã«åç
§ã®äœæããã¥ã¡ã³ãã§æ£ããããŒãæ€çŽ¢ããããšã§ããããããã£ãŠã docker-compose.yml
project_name
ããŒã+1ããŸãã
ïŒ+1ïŒ @ cr7pt0gr4ph7æŠç¥ã®å Žå
@ cr7pt0gr4ph7æŠç¥ã®+1
Composeã«ã¯ãç°å¢çœ®æã®æ§æããããŸãã ãããžã§ã¯ãåã«ç°å¢å€æ°ã䜿çšããã®ã§ã¯ãªããæ°ã«ãªã人ã«èªåã§ããããŠããããŸãããïŒ
äžæ¹ãDockerãã·ã³ã¯ããšã³ãã䜿çšããŠãcomposeãã«ãããã«ããããã·ã³ã決å®ããããããããžã§ã¯ãåãšã¿ãŒã²ããã¯åãããã«æ©èœããã¯ãã§ãã ããŒããããã¯é£ãããã®ã§ãã
https://github.com/docker/compose/issues/745#issuecomment-182296139ã¯æ£ããèãããŸãã ç°å¢å€æ°ã¯ãããã©ã«ããšããŠæ©èœããäœæãã¡ã€ã«ã®å€ãããåªå ãããŸãïŒãããžã§ã¯ãåãäœæãã¡ã€ã«ã«å±ããŠãããšæ³å®ïŒã
ããããããããžã§ã¯ãåãå®çŸ©ããè€æ°ã®äœæãã¡ã€ã«ã䜿çšãããšã©ããªããŸããïŒ
ãã¡ã€ã«ãããã©ã€ããªããŸãã¯ããšã¯ã¹ãã©ãã«ãããšã©ãŒã§ã¯ãªããšæããŸãããçŸæç¹ã§ã¯ããã§ã¯ãããŸããã ä»»æã®ãã¡ã€ã«ãåç¬ã§äœ¿çšããããšããä»ã®ãã¡ã€ã«ãšçµã¿åãããŠäœ¿çšââããããšãã§ããŸãã
èŠåã劥åœãªå Žåãããã°ãå®å šã«ç¡èŠããå ŽåããããŸãïŒãªãã·ã§ã³ãŸãã¯ç°å¢å€æ°ãèšå®ããããšã§å€ãç¡èŠã§ããããïŒã
ããããããããžã§ã¯ãåãå®çŸ©ããè€æ°ã®äœæãã¡ã€ã«ã䜿çšãããšã©ããªããŸããïŒ
docker-compose -f compose1.yml -f compose2.yml up
ãããªããšãããäž¡æ¹ã®ãã¡ã€ã«ããããžã§ã¯ãåãå®çŸ©ããå Žåã䜿çšãããååã¯compose2.yml
ããã®ãã®ã§ãªããã°ãªããŸããã
誰ããç§ããã§ã«æ°ã«å
¥ã£ãŠãããœãªã¥ãŒã·ã§ã³ã«åãçµãã§ãããšæããŸã:-)ã€ãŸããdocker-compose.yamlã®project_name
ã§ãã docker-compose.yamlãã¡ã€ã«ã«ãããžã§ã¯ãåãå«ããããã®å¥ã®ãŠãŒã¹ã±ãŒã¹ã«ã€ããŠèª¬æããããšæããŸãã
ãããžã§ã¯ãã®HTTP500 Internal Server ErrorããŒãžã§ãåé¡ãä¿®æ£ãŸãã¯ãã©ãã«ã·ã¥ãŒãã£ã³ã°ããæ¹æ³ãéçºè
ã«äŒããŸããããšãã°ããµãŒããŒãPostgreSQLããŒã¿ããŒã¹ããªãããšã«æ°ä»ããå Žåã¯zcat database-dump.tgz | docker exec -i projectname_db_1 psql
ã§ããããšãéçºè
ã«äŒããŸãããŠãŒã¶ãŒãäœæãããŸãããæ¬¡ã«ãèªåã§projectname
ãéžæããŸããããããªããšããã«ãã¡ãã»ãŒãžãã³ã³ãœãŒã«ã«ã³ããŒããŠè²Œãä»ããããšãã§ããŸããã
COMPOSE_PROJECT_NAMEãcompose.ymlã®ãããžã§ã¯ãåããªãŒããŒã©ã€ããããšãã«èŠåã衚瀺ãããããšã«åæããŸãããã®åäœã¯æ¢åã®Dockerã³ãã³ãã«åºã¥ããŠæå³ããããŸãããç¹ã«è«ççã§ãåå¿è ã«ãšã£ãŠãæçœã§ã¯ãããŸããã
@ cr7pt0gr4ph7æŠç¥ã®+1
äœãèŠã€ãããªãã£ãã®ã§ãèªåã§åé¡ãéãåã«äœããæ€çŽ¢ããŠã¿ãŸããã
docker.compose.ymlãã¡ã€ã«ã®project_name
+1ã v2ã§ã¯ãããã¯ãŸããŸãçã«ããªã£ãŠãããšæããŸãã
COMPOSE_PROJECT_NAMEãcompose.ymlã®ãããžã§ã¯ãåããªãŒããŒã©ã€ããããšãã«èŠåã衚瀺ãããããšã«åæããŸãããã®åäœã¯æ¢åã®Dockerã³ãã³ãã«åºã¥ããŠæå³ããããŸãããç¹ã«è«ççã§ãåå¿è ã«ãšã£ãŠãæçœã§ã¯ãããŸããã
ç°å¢å€æ°ãæ§æèšå®ããªãŒããŒã©ã€ãããã³ãã³ãã©ã€ã³åŒæ°ãæ§æèšå®ãšç°å¢å€æ°ããªãŒããŒã©ã€ãããã®ã¯ãããæ®éã®åäœã§ãã
æ¬åœã«ãã®èŠåã§ããïŒ èª°ãã誀ã£ãŠCOMPOSE_PROJECT_NAME
ãšããååã®ç°å¢å€æ°ãäœæãããããªãã®ã§ã¯ãããŸããã
ãããå®çŸããããã«docker-compose.yml
ããproject_name
ã䜿çšããPRãäœæããŠã倧äžå€«ã§ããããïŒ ãŸãã¯ãããã«åç
§ãããæåŸã®yml
ãã¡ã€ã«ã®project_name
å€ã䜿çšãããããªè¿œå ã®ãã®ãå¿
èŠã§ããïŒ
ããã¯ã©ãïŒ
version: "2"
project:
default_name: "app"
ãã®åœ¢åŒã®å®è£
ïŒhttps://github.com/docker/compose/pull/3118ïŒã倿ŽããŸãã ãããã project
ã»ã¯ã·ã§ã³ãå¿
èŠãã©ããã¯ããããŸããã
+1ãã®æ©èœãèŠãã
@timgriffiths ããããžã§ã¯ãã«ç°å¢ãã¡ã€ã«ã远å ããããšã§ãææ°ã®RCã§ãããå¯èœã«ãªãããã§ãã
@deizelç°å¢ãã¡ã€ã«ã調ã¹ãŸããããäœæãã¡ã€ã«å ã§ãããžã§ã¯ãåãå®çŸ©ã§ããè¯ããŠãŒã¹ã±ãŒã¹ããããšæããŸãã
ç§ãã¡ã®ç¶æ³ã§ã¯ãProdãStagingãUATãDevã®äœæãã¡ã€ã«ãããã®ã§ãã¢ããªã±ãŒã·ã§ã³ã¹ã¿ãã¯ã®ç°ãªãããŒãžã§ã³ãèµ·åã§ããŸãããŸããåã矀ãã§StagingãšUATç°å¢ãç«ã¡äžãããå Žåãããã®ã§ãç°å¢ã䜿çšã§ããŸãã倿°ãªã©ã¯ããŠãŒã¶ãŒããããèšå®ããããšãèŠããŠãããã©ããã«äŸåããŸããããã¯ãäœæãã¡ã€ã«ã«ãããã®ããã«ããã¹ãŠããªããžããªã«ãã§ãã¯ã€ã³ããããã¹ãŠãã€ã³ã©ã€ã³ã«ä¿ã¡ããã¹ãŠã®ãŠãŒã¶ãŒã«ç°¡åã«èª¬æã§ããããã«ããŸãã
+1äœæãã¡ã€ã«ã«äºåæ§æããããªã¢ãŒãããªã¥ãŒã ãžã®åç §ãããç¶æ³ããããŸãã Composeã¯ããããžã§ã¯ãåããããã®ããªã¥ãŒã åã«èªåçã«è¿œå ããŸãããååãäžèŽããªãããã«ããŠã³ãã«å€±æããŸãã äœæymlãã¡ã€ã«ã§ãããžã§ã¯ãåãæç€ºçã«èšå®ã§ãããšãç°å¢ã«ãã£ãŠç°ãªãå¯èœæ§ã®ãããããŸããªå€éšãã¡ã€ã«ã«ç°å¢å€æ°ãé ãã®ã§ã¯ãªãããããžã§ã¯ãã«é¢ä¿ããä»ã®ãŠãŒã¶ãŒã«ãšã£ãŠåœåèŠåãã¯ããã«ãããããããªããŸãã
@edevenportã®å Žåãååä»ãããªã¥ãŒã ã®å€éšãªãã·ã§ã³ã䜿çšã§ããŸãã
# docker-compose.prod.yml
volumes
dbdata:
external:
name: my-project-db-data
ããããšã@ fesor-ç§ã¯ãã£ââãšè©³çްã«å ¥ãå¿ èŠããããŸããã ç§ã¯å®éã«æ¬¡ã®ãããªæ§æã䜿çšããŠglusterfsããªã¥ãŒã ãããŠã³ãããŠããŸãïŒ
...
volumes:
- media:/data/media:ro
volumes:
media:
driver: glusterfs
ãã®å Žåã media
ã¯ãã¹ãäžã§projectname_media
ã«ãªããglusterfsããªã¥ãŒã ããããžã§ã¯ãåã§äºåã«äœæãããŠããªãéããããŠã³ãã«å€±æããŸãã glusterfsããªã¥ãŒã ããã¹ãã«æåã§ããŠã³ãããdocker-composeãã¡ã€ã«ã§external
ã䜿çšããããšãèããŠããŸããããäºåã«ãã¹ãŠã®ããŒãã§æåã§è¡ãå¿
èŠã¯ãããŸããã§ããã
@edevenportç§ã¯ãããçè§£ããŠããŸãã ãã ãããã®ããªã¥ãŒã ãdocker volume create
ã䜿çšããŠæåã§è¿œå ãã䜿çšããããšãã§ããŸãã
volumes:
- media:/data/media:ro
volumes:
media:
external:
name: my-glusterfs-media
ãããã£ãŠããããžã§ã¯ãã倿Žããå¿ èŠã¯ãªãããã¬ãã£ãã¯ã¹ãåé€ããŸãã
@timgriffithsã®å Žåã¯ãã£ãšè€éã§ãåé¿çã¯ãããŸããã ãããžã§ã¯ãåãèŠããŠããªãããã«ã docker-compose
åšãã«åçŽãªã©ãããŒã䜿çšããŸãã
@fesorãªã®ã§ãäœæãã¡ã€ã«ã説æçãªãã©ã«ããŒåã«è²Œãä»ããã ãã§åé¡ãåé¿ã§ããŸãããããã«ããããã®å¶éãåé¿ã§ããŸãã ãããããããåŸã®ãªãªãŒã¹ã§è¿œå ãããã®ãèŠãã®ã¯ãšãŠãããããšã§ã
@timgriffithsç§ã¯PRãäœæããŸããïŒhttps://github.com/docker/compose/pull/3118ïŒ-å€åããã¯åœ¹ç«ã€ã§ãããã ãã ããè€æ°ã®äœæãã¡ã€ã«ãããå Žåã¯ãã±ãŒã¹ãåŠçã§ããŸããã
@fesor PRã¯å®ç§ã ãšæããŸããããããçµ±åããå¯èœæ§ã¯ãããŸããïŒ
ããã§ãComposeã¯ç°å¢ãã¡ã€ã«ãæäŸããã®ã§ããããžã§ã¯ãåãããã«æ°žç¶åã§ããŸãã
@mkuzmin COMPOSE_FILE
ãããã®ã«ã COMPOSE_OVERRIDE_FILE
ããªãã®ã¯æ²ããããšã§ãã
@fesorAFAIKè€æ°ã®ãã¡ã€ã«ãæå®ã§ããŸã
@ schmunk42ãããžã§ã¯ãåãæå®ã§ããŸãã ããããããã¯åé¡ã解決ããŸããã ãããã€ã¹ã¯ãªããã«æ¬¡ã®ãããªãã®ãå¿ èŠã§ãã
docker-compose up -d
ã®ä»£ããã«
docker-compose -f $COMPOSE_FILE -f $COMPOSE_OVERRIDE_FILE \
up -d
äžèšã®äŸã®COMPOSE_PROJECT_NAME
ã¯CIã«ãã£ãŠæå®ãããŠããŸãã ãããŠã .env
ãã¡ã€ã«ã®ãããªæ©èœã¯ãã£ãããã§ãã...ãããžã§ã¯ãåã®æ°žç¶æ§ã®å Žåã«ã¯åœ¹ã«ç«ã¡ãŸããã
.env
ã䜿çšããŠç°å¢å€æ°ãDRYããŸãïŒãããŠdocker-compose <1.7ã®å ŽåãåçŽãªã©ãããŒã䜿çšããŸãïŒããä»ã®åé¡ã¯è§£æ±ºããŸããã @timgriffithsã¯ãswarmã¯ã©ã¹ã¿ãŒãžã®ãããã€ã®ã±ãŒã¹ããã§ã«ææããŠããŸãã
COMPOSE_FILE=one.yml:two.yml
ã¯ãè€æ°ã®ãã¡ã€ã«ãèšå®ããæ¹æ³ã§ãã ãããã£ãŠããªãŒããŒã©ã€ããã¡ã€ã«ã$COMPOSE_FILE
å«ããã ãã§ãã
@dnephinã¯ãã®æ©èœãèŠéããŸããã
ãããš...ã¹ãŠã©ãŒã ãããã€ã¡ã³ãã«ã€ããŠã¯ãjenkinã®ãžã§ãENV倿°ã§COMPOSE_PROJECT_NAME
ãä»ããŠãã§ã«åŠçããŠãããããæåãããã€ã¡ã³ãã§ã®ã¿åé¡ãçºçããŸãã ãããŠãç§ã®å®è£
ã§ã¯ãããã©ã«ãã®ãããžã§ã¯ãåãäžæžãããããšã¯ã§ããŸããã
ãã®åé¡ã¯ã»ãŒ2幎åã®ãã®ã§ããããŸã 解決ãããŠããŸããã DockerããŒã ãæçµçã«é©åãªä¿®æ£ã远å ããã®ãæ£ç¢ºã«åŠšããŠããã®ã¯äœã§ããããã docker-compose.yml
ãã¡ã€ã«ã«åçŽãªæ°ããæ§æãã£ã¬ã¯ãã£ãã远å ããã®ã¯æ¬åœã«é£ããã§ããïŒ
.env
ã®åé¿çã¯åªããŠããŸãããåžžã«äœ¿çšã§ããããã§ã¯ãããŸããïŒ .env
ãã¡ã€ã«ã¯ã¢ããªã±ãŒã·ã§ã³ã§ãã§ã«äœ¿çšãããŠããå¯èœæ§ããããŸãïŒã ãããŠãããã¯ãŸã åé¿çã§ãã
ãŸãããããžã§ã¯ãåã«é¢é£ããå¯èœæ§ã®ããä»ã®æ°ããåé¡ãææ°ããŒãžã§ã³ïŒïŒ3966ïŒã«å¿ã³å¯ãã®ãèŠãããšããããŸãã
ããã§ãæ¬åœã«åé¡ã¯äœã§ããïŒ
docker-compose.yml
ãã¡ã€ã«ã«åçŽãªæ°ããæ§æãã£ã¬ã¯ãã£ãã远å ããã®ã¯æ¬åœã«é£ããã§ããïŒ
çªå·ïŒ åé¡ã¯ãå®è£ ã®é£ããã§ã¯ãããŸããã§ããã
.env
ã®åé¿çã¯åªããŠããŸãããåžžã«äœ¿çšã§ããããã§ã¯ãããŸããïŒ.env
ãã¡ã€ã«ã¯ã¢ããªã±ãŒã·ã§ã³ã§ãã§ã«äœ¿çšãããŠããå¯èœæ§ããããŸãïŒã ãããŠãããã¯ãŸã åé¿çã§ãã
ããã¯åé¿çã§ã¯ãªãã解決çã§ãã .env
ãã¡ã€ã«ã«ã¯ãComposeã«ãã£ãŠèªã¿åãããç°å¢å€æ°ãå«ãŸããŠããŸãã ã¢ããªã±ãŒã·ã§ã³ã§èªã¿åãç°å¢å€æ°ãããå Žåã¯ãããããå¥ã®ãã¡ã€ã«ïŒããšãã°ã app.env
ïŒã«é
眮ãã env_file
ãªãã·ã§ã³ã䜿çšããŠåç
§ããŸãã
ããã§ãæ¬åœã«åé¡ã¯äœã§ããïŒ
ãããžã§ã¯ãåãdocker-compose.yml
ãã¡ã€ã«ã«è¿œå ãããšãç§»æ€æ§ãäœäžããŸããããã¯ãç§ãã¡ãæšå¥šãããããšã§ã¯ãããŸããã docker-compose.yml
ã®ç§»æ€æ§ãç ç²ã«ããããšãªãããããžã§ã¯ãåãæ°žç¶çã«æå®ããæ¹æ³ïŒ .env
ïŒãããã®ã§ãæ§æãªãã·ã§ã³ãšããŠè¿œå ããå Žåã¯åŒ±ããªããŸãã ãããããã®åé¡ã解決ãããªãã£ãäž»ãªçç±ã§ãã
ãããžã§ã¯ãåãdocker-compose.ymlãã¡ã€ã«ã«è¿œå ãããšãç§»æ€æ§ãäœäžããŸãã
ããã¯ãªãã·ã§ã³ã§ã¯ãããŸãããïŒ å人çã«ã¯ã docker-compose.yml
ãã§ãã¯ã€ã³ããããšã¯ãããŸããããããŒã«ã«ã§èª¿æŽãããªããžããªã«docker-compose-example.yml
ãæäŸããã ãã§ãã ããšãã°ãéçºäžã«ãããã€ãã®è¿œå ã®env倿°ã远å ãããã远å ã®ããªã¥ãŒã ãã³ã³ãããŒã«ããããããããå ŽåããããŸãã ãããžã§ã¯ãåãæå®ãããªãã·ã§ã³ãæäŸããŠã¿ãŸãããïŒ
è°è«ã«ç¶ããŠããã¹ãŠã®network
ãªãã·ã§ã³ã.env
ç§»åããå¿
èŠããããŸãããããã¯éåžžããŸã£ããç§»æ€æ§ããªãããã¹ããã·ã³ã®ãããã¯ãŒã¯èšå®ã«äŸåããããã§ãã
å¥ã®èšãæ¹ãããã°ããããžã§ã¯ãåãç¹å¥ãªçç±ã¯äœã§ããïŒ docker-compose.yml
ã«ã¯ãå®éã«ã¯ç§»æ€æ§ã®ãªãä»ã®å€ãã®ãªãã·ã§ã³ããã§ã«ãããŸãã éçºè
ã«ããŠãŒã¹ã±ãŒã¹ã«æé©ãªãã®ãéžæãããªãã·ã§ã³ãæäŸããŠã¿ãŸãããïŒ
ãŸãããªãã·ã§ã³ãå©çšã§ããããã«ããå¿
èŠããããšæããŸãã Dockerã®äœ¿çšãåºãŸãã«ã€ããŠãã¯ãŒã¯ãããŒå
ã§ã³ã³ãããŒåã䜿çšããéçºè
ã1人ã ãã®ãããžã§ã¯ãããŸããŸãäžè¬çã«ãªããŸãã ãããã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ããããžã§ã¯ãåãäžå®ã§ãã£ãŠãåé¡ãããŸããã ãã®ãããªæè»æ§ãå¯èœã«ããå¥ã®ãããžã§ã¯ãã®è¯ãäŸã¯ã Vagrantfile
ã§ãã 圌ãã¯ãå€§èŠæš¡ãªããŒã ã«ã¯ç¢ºãã«ãŠãŒã¹ã±ãŒã¹ãããããšãèªèããŠããŸãããäžå¹çŒã®éçºè
ã®ã·ããªãªãèªèããŠããŸãã
ããã§ãããžã§ã¯ãåãªãã·ã§ã³ãå®è£ ããããšã¯ãæ¡çšã®ããã«éèŠã ãšæããŸãã ãã¹ã±ãŒã©ãã«ãªãããžã§ã¯ãåã®æ§ææŠç¥ããæ°ã«ããªãäžäººã®éçºè ãæšãŠãå¯èœæ§ããããŸãã
ãããžã§ã¯ãåãdocker-compose.ymlãã¡ã€ã«ã«è¿œå ãããšãç§»æ€æ§ãäœäžããŸããããã¯ãç§ãã¡ãæšå¥šãããããšã§ã¯ãããŸããã docker-compose.ymlã®ç§»æ€æ§ãç ç²ã«ããããšãªãããããžã§ã¯ãåãæ°žç¶çã«æå®ããæ¹æ³ïŒ.envã䜿çšïŒããããããæ§æãªãã·ã§ã³ãšããŠè¿œå ããå Žåã¯åŒ±ããªããŸãã ãããããã®åé¡ã解決ãããªãã£ãäž»ãªçç±ã§ãã
ãããžã§ã¯ãåãdocker-compose.yml
远å ãããšãç§»æ€æ§ãäœäžããŸããïŒ
@mikehaertlã«ãã£ãŠäœæãããïŒ3966ã«ç€ºãããŠããããã«ãç§èŠã§ã¯å®éã«ã¯éã§ãã ãã®åé¡ã¯ããããžã§ã¯ãåãdocker-compose.yml
æ ŒçŽãããŠããªããããå®éã«ã¯ç§»æ€æ§ãäœããªãããšãæç¢ºã«ç€ºããŠããŸãïŒããšãã°ãåããã·ã³ããéå§ãããä»ã®äœæãããžã§ã¯ããšè¡çªããå¯èœæ§ãé«ããªããŸãïŒãå€ãã®äººãå°ãªããšãæåã¯ç¥ããªãã³ã³ãããã©ã«ãåã
.env
ãã¡ã€ã«ã远å ãããšãComposeãæ¡çšãããæ°ãã人ã®ããã«åŠã¶ããšã远å ãããã ãã§ãªããããããé²ãããã«docker-compose.yml
暪ã®ãªããžããªã«è¿œå ããå¿
èŠãããããã§ããè¡çªdocker-compose.yml
ãããžã§ã¯ãåãå®çŸ©ããã ãã§ãç§»æ€æ§ãã©ã®ããã«ç°ãªããã¯ããããŸããã
ãŸããdocker-compose.ymlã«ååã远å ããããã®ãã®ã§ãã .envãã¡ã€ã«ã¯ãç§ã䜿çšããŠããä»ã®ãã¬ãŒã ã¯ãŒã¯ã§äœ¿çšãããŠããããªããžããªããé¢ããŠããããšãéèŠã§ãã ãã ããéçºè å šäœã§ããŒã«ã©ã€ãºãããã³ã³ãããŒãç¶æããã«ã¯ãDockerã«ã€ããŠã®ç¥èãå°ãªãã»ã©ïŒæåã¯ïŒåªããŠããŸãã ä»ã®ãããžã§ã¯ããšè¡çªããªãã·ã³ãã«ãªãšã³ããªãã€ã³ããå¿ èŠã§ãã ãªãç©äºããããªã£ãŠããã®ã説æããããããŸããã åçŽãª
ã¯ããŒã³ãªããžããª
docker-æ§æãã
çŸåšã®ç§ã®åé¿çã¯ã @ schmunk42ãææ¡ãããã¡ã€ã«ãäœæããããšã§ãã
ã³ã³ããèªäœã¯ãããžã§ã¯ãåãæ°ã«ããå¿ èŠã¯ãããŸããã ãã¹ããæ°ã«ããããšã ããç®çãšããã¡ã«ããºã ãšããŠç°å¢å€æ°ã䜿çšããã®ã¯ãªãã§ããïŒ
docker-compose.yml
ãã¡ã€ã«ã§ããããµããŒããããŠããããšã確èªããããšæããŸãã ç°å¢å€æ°ãä»ããŠèšå®ããå¿
èŠãããå Žåã¯ã .env
ãã¡ã€ã«å
ã§å®çŸ©ãïŒãã¹ãã«çŽæ¥èšå®ãããŠããªãå ŽåïŒã docker-compose.yml
ãã¡ã€ã«ã®å€æ°çœ®æãä»ããŠäœ¿çšã§ããŸãã
ååä»ãã³ã³ãããèš±å¯ãããŠããå Žåãååä»ããããžã§ã¯ããèš±å¯ãããªãã®ã¯ãªãã§ããïŒ
.ymlãã¡ã€ã«ã§ã®ãããžã§ã¯ãåã®å®çŸ©ã䟿å©ãªãŠãŒã¹ã±ãŒã¹ã¯æ¬¡ã®ãšããã§ãã
ç°ãªãWebãµãŒããŒïŒç°ãªãããŒã¿ããŒã¹è³æ Œæ
å ±ãç°ãªãããŒã¿ããªã¥ãŒã ãããŽãªã©ã®ããã€ãã®å°ããªéãïŒã«å¯ŸããŠåãdocker-composeãã¡ã€ã«ããããŸãã å®è¡äžã®ã¢ããªã±ãŒã·ã§ã³ããšã«3ã€ã®ãµãŒãã¹ãããããããã¯äœæãã¡ã€ã«ã§æ§æãããŸãã è€æ°ã®ãµãŒããŒãé£ãåã£ãŠå®è¡ãããŠããå Žåãã©ã®ãµãŒãã¹ãã©ã®ãããžã§ã¯ãã«å±ããŠãããã確èªãããšäŸ¿å©ã§ãã
ã³ã³ãããŒåã®å€æ°çœ®æã¯ããã¬ãã£ãã¯ã¹ãšããŠ$ COMPOSE_PROJECT_NAMEã䜿çšãããšäŸ¿å©ã§ãã .env-fileãœãªã¥ãŒã·ã§ã³ã¯ããçè§£ããŠããŸãããããã«ãããïŒCIïŒãããã€ã¡ã³ãç°å¢ã§ã®ãéçºè ã«ãšã£ãŠäœ¿ããããããã®ã«ã¯ãªããŸããã
-pãŸãã¯ç°å¢å€æ°ãèšå®ãããŠãããããdockerããµããã©ã«ããŒã«docker-composeãäœæããããããŸã£ããç°ãªãdocker-composeã®docker-composeãã«ã³ã³ãããŒã1ã€æã€ããšã¯ãç§ã®æèŠã§ã¯é倧ãªãã°ã§ãã
æ·±å»ãªå±éã§ã¯ããšã©ãŒã®äœå°ãå€ãããŸãã -pã.envããŸãã¯ãã®ä»ã®å Žæã§ãããžã§ã¯ãåãæå®ããããšãå¿ããŠãã ãããäœãèµ·ãã£ããã«æ°ä»ããŸã§ããã°ããã®éãªãã©ã€ã³ã«ãªããŸãã ããã«æªãããšã«ãè¡çªããŠãããµãŒãã¹ã¯ãäœæ¥äžã®ãµãŒãã¹ã§ã¯ãªãããªãã©ã€ã³ã«ãªããŸãã ããªãã¯å¹žããªäžæ¥ãéããã§ããã:(
@dnephinãããæçµçã«å®è£ ããããã«
ãã¶ãç§ã¯ããã§ããã«ããã€ãã®æžå¿µãæã£ãŠããå¯äžã®äººã§ããããšã«ããã
ãã®ã»ããã¢ããã§ã¯ãç°å¢ãåãæ¿ããããã«.env
ãã¡ã€ã«ãšapp.env
ãã¡ã€ã«ã®ã¿ã倿ŽããŸãããããã¯è€æ°ã®ãã¡ã€ã«ãæã¡ã yml
ãã¡ã€ã«ãããŒãžããããšã«äŸåããŠããŸãã
ãããå®è£ ãããããBCã«ã€ããŠèããŠãã ããã
äŸãã°ã ãããžã§ã¯ãåãdocker-compose.yml
ãš.env
å®çŸ©ãããŠããå Žåã¯ãåŸè
ãåªå
ãããŸãã ããããªããšã .env
ãä»ããŠããã管çããããšã«äŸåããŠãã人ã
ã¯ãçŸåšã®ã¯ãŒã¯ãããŒããã©ã«ããŒåã«äŸåããŠããå Žåã®ããã«ãã¹ã¿ãã¯ã®éè€ã«ã€ããŠåæ§ã®åé¡ãæ±ããŠããŸãã
@ schmunk42 .env
æ©èœãåé€ããå¿
èŠããããšèšã£ãŠããããã§ã¯ãããŸããã ãããžã§ã¯ãåã.env
ã«å
¥ãããå Žåã¯ãåã«docker-compose.yml
èšå®ããªãã§ãã ããã
ããããããã§ã®è°è«ãæç¢ºã«ç€ºããŠããããã«ãä»ã®äººã¯ãããdocker-compose.yml
å
¥ããããšã奜ã¿ãŸãã 圌ããæããªãã圌ãã¯ããããããšãã§ããã¯ãã§ãã ããã¯ãªãã·ã§ã³ã®æ©èœã§ãã äž¡æ¹ãæ§æãããŠããå Žåã«åªå
ãããã®ã¯ãåçŽãªèŠåãå®çŸ©ããããšã§ãã
Srslyãååä»ããããžã§ã¯ãã远å ããŠãã ããã 䜿çšäºäŸïŒ
ãããžã§ã¯ã1ïŒ
docker-compose up --build --remove-orphans
docker-compose up --build --remove-orphans
ãããžã§ã¯ã2ãéå§ãããšãåºå£137ïŒã³ãŒã128 +ã¬ãã«9ïŒã§ãããžã§ã¯ã1ã®ã³ã³ãããŒã匷å¶çµäºãããŸãã
ä»ãç§ã¯docker system prune
ãå®è¡ãããããã¯ãŒã¯ãæ¯æ¥åæ§ç¯ããŠãæ°åã®ãããã³ã³ãããçºçããªãããã«ããå¿
èŠããããŸãã
export COMPOSE_PROJECT_NAME=somethingnew
ã³ã¢ããŒã ã®èª°ããæçµçã«èª¬æã§ããŸããããã®æ©èœã劚ããŠããã®ã¯äœã§ããïŒ ããã¯ãšãŠãã€ã©ã€ã©ããŸãããšãŠãç°¡åã«ä¿®æ£ã§ãããã®ãæ£åœãªçç±ããªããããã¯ãããæ¹æ³ã
ãããŸã§ã®å¯äžã®è°è«ã¯ã docker-compose.yml
ç§»æ€å¯èœã«ä¿ã€ããš
networks
ã port
ã..ãããã¯ãã¹ãŠãç¹å®ã®ãŠãŒã¹ã±ãŒã¹ã«å€§ããäŸåããŸãã ããããåã«ããã€ãã¯ããã®ãªãã·ã§ã³ãããããªãã®ã§ãããããšã¯èª°ããèªåã®æèŠã«åŸãããšãæã£ãŠããããšãæå³ããŠã¯ãããŸããïŒ
@mikehaertlããªãã¯ãã§ã«æ°žç¶çãªãããžã§ã¯ãåãæã£ãŠããŸãã .env
ãã¡ã€ã«ã眮ããããã«COMPOSE_PROJECT_NAME
倿°ãèšå®ããã ãã§ãã äœæãã¡ã€ã«ã®ãããžã§ã¯ãåã«ã¡ãªããã¯ãããŸããã
@fesorãã·ã³/ç°å¢åºæã®èšå®ãå«ãŸããŠãããããéåžžãããŒãžã§ã³ç®¡çäžã«.env
ãã¡ã€ã«ã¯ããdocker-compose.yml
ãã¡ã€ã«ã§ãããžã§ã¯ãåãæ§æã§ããããã«ãããã®ã§ãã ã
@fesor ïŒ @thasmoã¯ããã§æ£ãããšæããŸãã ãããžã§ã¯ãåã¯ããããžã§ã¯ãã䜿çšãããã¹ãŠã®éçºè
ã«é¢é£ããå Žåã¯ããŒãžã§ã³ç®¡çäžã«ããå¿
èŠãããããã compose.yml
ãã¡ã€ã«ã§æå®ãããªãã·ã§ã³ãå¿
èŠã§ãã
@fesorç³ãèš³ãããŸããããå人çãªå¥œã¿ãæ¬åœã®è°è«ã ãšã¯æããŸããã æ¬åœã®åé¡ã¯ããªã.envãç°å¢å€æ°ã䜿ããããªãã®ããšããããšã§ã¯ãããŸããã ããã¯éã§ãïŒãªããããå±ããèšå®ãã¡ã€ã«ã«å ¥ããããªãã£ãã®ã§ããïŒ
ã³ãã³ãã©ã€ã³ã§docker
ã«æž¡ãããšãã§ããã»ãšãã©ãã¹ãŠã®ãªãã·ã§ã³ã¯ããã®ãã¡ã€ã«ã§æå®ã§ããŸãã ãããžã§ã¯ãåã®ã¿ãããã€ãã®äžæè°ãªçç±ã§é€å€ãããŠããŸãã ããã¯è°è«ã®äžã§ã¢ãã«ããã€ãã®äžåœ¢æ
ã§ããïŒ ïŒPIã¯ããããã¹ãŠã«å¯ŸããŠå¹³çãªæš©å©ã䞻匵ããŸãïŒ éçºè
ã«æ±ºå®ãä»»ãã人çºçãªå¶çŽã課ããªãã§ãã ããã
ãããŠåã³ïŒèª°ãããªãããå€ããªãã·ã§ã³ã奪ã£ãŠããŸãã-ç§ãã¡ã¯ã€ãã«ãã®è¿œå ã®ãªãã·ã§ã³ã欲ããã ãã§ãã ããã¯å ¬æ£ãªããšã§ãã
@dnephin ïŒããªããšä»ã®ã¿ããªãcr7pt0gr4ph7ã®ãã®åé¡ã®æ¹è¯ã§è¿°ã¹ããã解決çã«æºè¶³ããŠããããã§ãã
ãããå®è£ ãããã«ãªã¯ãšã¹ããåãã§åãå ¥ããŸããããããšãã¡ã³ããã®1人ã«ãããæžããŠãããã€ããã§ããïŒ
@ cr7pt0gr4ph7
* compose.ymlã«ãããžã§ã¯ãåãæã€@ dnephin @ fesorã¯ãçµ±äžãããæ§æã¹ããŒãã容æã«ããŸã
ãããžã§ã¯ãåãéèŠãªçç±ã¯ç§ã«ã¯ããããŸããã æ§æãã¡ã€ã«ã®ã©ã®éšåããç¹å®ã®ãããžã§ã¯ãåã«äŸåããã¹ãã§ã¯ãããŸããã
ãããžã§ã¯ãåã®å¯äžã®éèŠãªå質ã¯ãä»ã®ãããžã§ã¯ãã®ååãšç«¶åããªãããšã§ããããã¯ãå®éã«ã¯ã docker-compose.yml
ãã¡ã€ã«ã«å
¥ããããšã«å察ããè°è«ã§ãã ãããžã§ã¯ãã®éçºè
ã¯ããããžã§ã¯ãããšã«ç°ãªããã£ã¬ã¯ããªåã䜿çšããããšãå€ããããã»ãšãã©ã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ããã©ã«ããæ£ããããšããããããŸãã
ããã©ã«ããæ£ãããªãå Žåãéçºè
ãããããªãŒããŒã©ã€ãããæ¹æ³ããããŸãïŒ -p
ããŸãã¯COMPOSE_PROJECT_NAME
ïŒãããã¯ãšã€ãªã¢ã¹ã«ãããã .env
ãã¡ã€ã«ã«å
¥ããããšãã§ããŸãã ã
ç§ã¯ãããžã§ã¯ãåãå®çŸ©ãããããžã§ã¯ããã¡ã€ã«ã«å察ããŠããŸããããã®æ©èœãäžéšã®äººã«ãšã£ãŠéåžžã«éèŠã§ããçç±ãçè§£ããããšæããŸãã äœæãã¡ã€ã«ã«ç¹å®ã®ãããžã§ã¯ãåãå¿ èŠãªããã§ããå Žåã¯ãå¥ã®åé¡ãšããŠå¥ã®æ¹æ³ã§å¯ŸåŠããå¿ èŠããããšæããŸãã
1ã€ã®ãã£ã¬ã¯ããªã«4ã€ã®äœæãã¡ã€ã«ãå¿ èŠã§ããã ããã§ã¯ãããã©ã«ãã§ãã£ã¬ã¯ããªåãééã£ãŠããŸãã ç§ãæã£ãŠããå¯äžã®ãªãã·ã§ã³ã¯ã1ã€ã®ãã£ã¬ã¯ããªå ã®1ã€ã®äœæãã¡ã€ã«ã«å¯ŸããŠã®ã¿æ©èœãã.envã§ãã
_COMPOSE_PROJECT_NAMEãš-pïŒ_ãé€å€ããçç±
COMPOSE_PROJECT_NAMEãš-pã¯ãèšå®ããããšãå¿ããªãããã«ããå¿
èŠããããããæ¬çªç°å¢ã§ã¯ä¿åãããªããšæããŸãã ãŸãã¯ãèµ·åã¹ã¯ãªãããäœæããdockercomposeãçŽæ¥äœ¿çšããªãããšãå¿ããªãã§ãã ããã 人ç©Aããã®ã¡ã«ããºã ã«äŸåããŠããŠã人ç©Bããããç¥ããªãå Žåãããã¯ç¹å®ã®å€±æã§ãã
ïŒç§ã¯ãã§ã«ãããäžã§è©³è¿°ããŸããïŒ
@dnephinç§ãšç§ã®ããŒã ã«ãšã£ãŠãã¢ããªã±ãŒã·ã§ã³ããžãã¯ã¯éåžžããããžã§ã¯ããã©ã«ããŒã®htdocsãã©ã«ããŒã«ä¿åãããŸãã ããã«ãããä»ã®é¢é£ããã¥ã¡ã³ã/ãªãœãŒã¹ã1ã€ã®ãã£ã¬ã¯ããªã«ãŸãšããããšãã§ããŸãã ãªã¢ãŒãéçºè ãšååããéçºè ãšããŠã ãã©ã«ããŒæ§é ã«ã€ããŠäœãæ³å®ããå¿ èŠããªããã°ãDockerãæ¡çšããŠãããã®ã¯ç°¡åã§ãã ç§ã¯éå»ã«ãããè¿°ã¹ãŸãããã.envã¯éåžžãç§ãã¡å šå¡ãå ±æãããªããžããªã®äžéšã§ã¯ãªããããç§ã«ãšã£ãŠãªãã·ã§ã³ã§ã¯ãããŸããã
ãããžã§ã¯ãåãéèŠãªçç±ã¯ç§ã«ã¯ããããŸããã æ§æãã¡ã€ã«ã®ã©ã®éšåããç¹å®ã®ãããžã§ã¯ãåã«äŸåããã¹ãã§ã¯ãããŸããã
ãã¹ãã§ãdocker-composedownããå®è¡ããå¿
èŠãªã³ã³ãããšã¯ç°ãªãã³ã³ãããããŠã³ãããããšãäœåºŠããããŸããã èŠããŠããªãã£ããããšãã£ãŠã .env
ãã¡ã€ã«ã«ãæ§æããã£ãããšãã
ãããžã§ã¯ãåã®å¯äžã®éèŠãªå質ã¯ãä»ã®ãããžã§ã¯ãã®ååãšç«¶åããªãããšã§ããããã¯ãå®éã«ã¯ãdocker-compose.ymlãã¡ã€ã«ã«é 眮ããããšã«å察ããè°è«ã§ãã ãããžã§ã¯ãã®éçºè ã¯ããããžã§ã¯ãããšã«ç°ãªããã£ã¬ã¯ããªåã䜿çšããããšãå€ããããã»ãšãã©ã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ããã©ã«ããæ£ããããšããããããŸãã
å€åããã¯ããªãã«ãåœãŠã¯ãŸãmyapp/app/docker-compose.yml
ãããªãã®ã§ãã ãããã£ãŠããã¹ãŠã®ã¢ããªã¯ãã£ã¬ã¯ããªåapp
å
±æããŸãã ãŸãããã¹ãäžã«è€æ°ã®ã³ã³ãããŒããããŸãã
ããã©ã«ããæ£ãããªãå Žåãéçºè ãããããªãŒããŒã©ã€ãããæ¹æ³ïŒ-pããŸãã¯COMPOSE_PROJECT_NAMEïŒããããŸããããã¯ããšã€ãªã¢ã¹ã«ããããšãã.envãã¡ã€ã«ã«å ¥ããããšãã§ããŸãã
çå£ã«ãç§ã¯ããã§ã«ãã«ã®å°èª¬ã«ããããã«æãå§ããŸãã ããã¯ããªããåºæ¬çã«ã®ããã®ãã¹ãŠã®ã³ãã³ãã©ã€ã³ãªãã·ã§ã³çœ®ãããšãã§ããããšããæããã«ãããŠããŸããdocker
ã«docker-compose.yml
ãã®äžã€ã®å€§ããªäŸå€ãé€ããŠ- ïŒ
äœåºŠãäœåºŠãç§ãã¡ã«å°ããŠç§ãã¡ã®çããç¡èŠãã代ããã«ããªã誰ããæçµçã«æµæãæ£åœåã§ããªãã®ã§ããïŒ ãããŠãããïŒã...ãããç§ã¯ãããå¿ èŠãšããªããã¯æå¹ãªè°è«ã§ã¯ãããŸããïŒ
@dnephinç¬èªã®gitãªããžããªã«è€æ°ã®ãããžã§ã¯ãããããã«ãŒããããžã§ã¯ããã£ã¬ã¯ããªãã¯ãªãŒã³ã«ä¿ã€ããã«ããã¹ãŠã®Dockeré¢é£ã®ãã®ãdocker
ãšãããµããã©ã«ããŒã«é
眮ããŸãïŒãã«ãã³ã³ããã¹ãã¯..
ããã¹ãŠãçŸããæ©èœããŸãïŒã
1ã€ã®ãµãŒããŒã§è€æ°ã®ãããžã§ã¯ããå®è¡ããã«ã¯ãçŸåšãåãªããžããªã«docker/.env.dist
ãäœæãã cp docker/.env.dist docker/.env
åŸã«git clone
cp docker/.env.dist docker/.env
ãäœæããå¿
èŠããããŸãã ãã以å€ã®å Žåããããžã§ã¯ãåã¯docker
ãããã¯æããã«å¿
èŠãããŸããã .env
ã«ãã¹ã¯ãŒããªã©ãå«ãŸããŠããå Žåãããã®ã§ããšã«ãã.env.dist
ã³ããŒããå¿
èŠããããŸãããã»ãšãã©ã®å Žåã COMPOSE_PROJECT_NAME
ãå®çŸ©ããæ¹æ³ããªããšããçç±ã ãã§ã .env
ãååšããŸãã COMPOSE_PROJECT_NAME
docker-compose.yml
ã
åãCOMPOSE_PROJECT_NAME
ãdocker-compose.yml
å
ã§2å䜿çšããããšãã³ã³ãããŒã®éå§æ¹æ³ãšåæ¢æ¹æ³ã«äžå
·åãçããå¯èœæ§ãããããšãçè§£ããŠããŸããã .env.dist
ãã³ããŒããã®ãå¿ãããšããã§ã«çºçããŠããŸããŸãã¯ãåããµãŒããŒäžã®2ã€ã®ç°ãªã.env
ãã¡ã€ã«ã«èª€ã£ãŠåãååãå²ãåœãŠãå Žåã ç§ã«ãšã£ãŠã¯ã default_compose_project_name
ãdocker-compose.yml
ã§çŽæ¥å®çŸ©ãããããžã§ã¯ãã®ã¹ããŒãžã³ã°ã³ããŒãå®è¡ãããå Žåã¯ã .env
ã®å€ããªãŒããŒã©ã€ãã§ããã°çæ³çã§ãã ã ããã¯çŽå
å100ïŒ
ã§ããããã䟿å©ã§ãã
ç§ã¯éå»ã«ãããè¿°ã¹ãŸãããã.envã¯éåžžãç§ãã¡å šå¡ãå ±æãããªããžããªã®äžéšã§ã¯ãªããããç§ã«ãšã£ãŠãªãã·ã§ã³ã§ã¯ãããŸããã
ãã¶ããããããã¹ãŠã®æ ¹æ¬åå ã§ããåã«ã docker-compose
ãã®ãã¡ã€ã«ãããã€ãžã£ãã¯ãããååãapp.env
ã«å€æŽããããåŸãªãã£ããšèšããŸããã
ãã¶ãdocker-compose.env
ãæ£ããéžæã ã£ãã§ãããã
FWIWïŒæ¬çªç°å¢ã§ã¯.env
ãã¡ã€ã«ã®ã¿ã倿ŽããŠããŸããå¿
èŠã«å¿ããŠã yml
ãã¡ã€ã«ã¯docker-compose.override.yml
ãšããŒãžãããŸãã
åé¿çã¯ãymlãã¡ã€ã«ã.env
ãã¡ã€ã«ãªãã§éå§ããªãããã«å®çŸ©ããããšã§ããããŸãã 倿°image: $IMAGE
ã䜿çšããŸãã
ããã¯ã @ schmunk42ã®äžã®1ã€ã®ãã£ã¬ã¯ããªã±ãŒã¹ã«ãã4ã€ã®docker-composeãã¡ã€ã«ã®åé¿çã§ãã æ¬åœã«ïŒ
@RobIsHereãããããšã«ãã-f
ã䜿çšããå¿
èŠããããŸãããïŒ
ãã®ã³ã¡ã³ãã®@dnephinãžã®è¿ä¿¡ïŒ
ãããžã§ã¯ãåãéèŠãªçç±ã¯ç§ã«ã¯ããããŸããã
docker-compose
ã管çããDockerã³ã³ããã®ååã«åœ±é¿ãããããããã¯éèŠã§ãã ãããžã§ã¯ãåã®èšå®ãå¿ããå Žåã docker-compose ps
ã¯ã以åã«docker-compose --project-name <project_name> up -d <container_name>
äœæããã³ã³ãããŒãèŠã€ããããŸããã
ãŸããã°ããŒãã«ã³ãã³ãdocker ps
ãå®è¡ãããšãå®è¡äžã®ã³ã³ããã®ãªã¹ãã«ãããžã§ã¯ãåãå«ãŸãããããã³ã³ããã®åºæãããããŸãã ããšãã°ããã¹ãŠãMySQLã䜿çšããè€æ°ã®ã³ãŒããããžã§ã¯ããäžåºŠã«ãã¹ãããŠããŠãããããã«mysql
ã³ã³ãããããå Žåã docker ps
ã¯ãããŸããªã³ã³ããã®ãªã¹ãã衚瀺ãããŸãã ãããã£ãŠããããžã§ã¯ãåã¯ãåããã·ã³ã§å®è¡ãããŠããå€ãã®Dockerãããžã§ã¯ãã®ã³ã³ããã¹ãã§éèŠã§ãã
æ§æãã¡ã€ã«ã®ã©ã®éšåããç¹å®ã®ãããžã§ã¯ãåã«äŸåããã¹ãã§ã¯ãããŸããã
_DockerComposeãããžã§ã¯ãã«é¢é£ä»ããããŠããä»ã®ãã¹ãŠã®å€æ°_ãšã¯ç°ãªãå Žæã«ãããžã§ã¯ãåãèšå®ããå¿ èŠãããããšã¯æå³ããããŸããã
ãããžã§ã¯ãåã®å¯äžã®éèŠãªå質ã¯ãä»ã®ãããžã§ã¯ãã®ååãšç«¶åããªãããšã§ããããã¯ãå®éã«ã¯ãdocker-compose.ymlãã¡ã€ã«ã«é 眮ããããšã«å察ããè°è«ã§ãã
ç§ã®æåã®æ®µèœã§è¿°ã¹ãçç±ã«ãããããã¯_ããããžã§ã¯ãåã®å¯äžã®éèŠãªå質ã_ã§ã¯ãããŸããã 䜿ãããããšçè§£ã®ããã§ãã
ãããžã§ã¯ãã®éçºè ã¯ããããžã§ã¯ãããšã«ç°ãªããã£ã¬ã¯ããªåã䜿çšããããšãå€ããããã»ãšãã©ã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ããã©ã«ããæ£ããããšããããããŸãã
éçºè
ã_all_é¢é£ã®Dockerãã¡ã€ã«ãdocker
ãã£ã¬ã¯ããªã«é
眮ããããã©ã«ã以å€ã®å Žåãããã¯Dockerãããžã§ã¯ããæŽçããããã®å®å
šã«åççãªæ¹æ³ã§ããããããžã§ã¯ãåãèšå®ããéæ³ã¯ç«¶åãããããžã§ã¯ãåãäœæããŸãã ãããã£ãŠããã®ç¹å®ã®ã±ãŒã¹ã§ã¯ãããªããèšåããã®ãšåãç«¶åãçºçããŸãã ãšã«ãããããžã§ã¯ãåãæç€ºçã«èšå®ããŠããå Žåãéçºè
ããããžã§ã¯ãåã®è¡çªããä¿è·ããå¿
èŠã¯ãããŸããã
ããã©ã«ããæ£ãããªãå Žåãéçºè ãããããªãŒããŒã©ã€ãããæ¹æ³ïŒ-pããŸãã¯COMPOSE_PROJECT_NAMEïŒããããŸããããã¯ããšã€ãªã¢ã¹ã«ããããšãã.envãã¡ã€ã«ã«å ¥ããããšãã§ããŸãã
ç°å¢å€æ°ã®èšå®ã¯ãå¿
èŠã®ãªãäœåãªã¬ãã«ã®è€éãã§ãã ããŒãžã§ã³ç®¡çã䜿çšããŠéçºè
éã§ãããžã§ã¯ããå
±æããå Žåã¯ããã¡ã€ã«ã®ã¿ã䜿çšããã®ãçã«ããªã£ãŠããŸãã åŒã³åºãããšã«ã³ãã³ãã©ã€ã³ãã©ã¡ãŒã¿ãå«ããå¿
èŠãããã®ã¯é¢åã§ããšã©ãŒãçºçãããããªããŸãã ãŸãã .env
ãã¡ã€ã«ã¯ããããžã§ã¯ãåºæã®å€æ°ã§ã¯ãªãããŠãŒã¶ãŒåºæã®å€æ°ãå«ãããšã«ãªã£ãŠãããããããŒãžã§ã³ç®¡çã§å
±æã§ããŸããã ãããã£ãŠããããžã§ã¯ãåãèšå®ããçŸåšã®æ¹æ³ã¯äžååã§ãã
ç§ã¯ãããžã§ã¯ãåãå®çŸ©ãããããžã§ã¯ããã¡ã€ã«ã«å察ããŠããŸããããã®æ©èœãäžéšã®äººã«ãšã£ãŠéåžžã«éèŠã§ããçç±ãçè§£ããããšæããŸãã äœæãã¡ã€ã«ã«ç¹å®ã®ãããžã§ã¯ãåãå¿ èŠãªããã§ããå Žåã¯ãå¥ã®åé¡ãšããŠå¥ã®æ¹æ³ã§å¯ŸåŠããå¿ èŠããããšæããŸãã
docker-compose
ã®æ©èœã«åœ±é¿ãäžãããã¹ãŠã®å€æ°ã¯ãåãå Žæã docker-compose.yml
ãã¡ã€ã«ã«é
眮ããå¿
èŠããããŸãã ãããžã§ã¯ãåãèšå®ããçŸåšã®æ¹æ³ã¯ãäžå¿
èŠãªè€éãããããããŸãã
ãã®åé¡ã賌èªããŠããã»ãŒãã¹ãŠã®äººããããã®ç¹ã«åæããŸãã
docker-config.yml
ãããžã§ã¯ãåãèšå®ããæ©èœã远å ããŠããçŸåšã®æ©èœãšç«¶åããããšã¯ãããŸããã ãããå®è£
ããªãçç±ã¯ãããŸããã
@ schmunk42ååãã§ãã¯ãããšããdockerã¯.envãã¡ã€ã«ã®ååãéžæããããšãèš±å¯ããŸããã§ããã ç§ã¯äœããéããŸãããïŒå€æŽã«è¿œãã€ãã®ã¯é£ããã§ãïŒã docker-compse.envã®ãããªãã®ã«å€æŽãããšãç§ã®ãŠãŒã¹ã±ãŒã¹ã§ä¿®æ£ãããŸãã ç§ãæ±ããŠããåé¡ã¯ãäž¡æ¹ãšã.envãã¡ã€ã«ãå¿ èŠãšãã2ã€ã®éåžžã«äººæ°ã®ãããã¯ãããžãŒã䜿çšããŠããããšã§ãã PHP Laravelãã¬ãŒã ã¯ãŒã¯ã¯ããªããžããªå ã®ãã®ãã¡ã€ã«ã远跡ãããæ¬çªç°å¢ã§ã¯ãã¡ã€ã«ãååšããªãå ŽåããããŸãã
@RobIsHereã瀺ãããã«ãDockerãæåã«æ¡çšãããšããããã¯å®éã®ã¹ã¿ããªã³ã°ãããã¯ã§ããããšãmyapp/htdocs/docker-compose.yml
圢åŒã§ãã Dockerãæ¡çšããåæã®é ãç§ã¯æå³ããŠããªãã£ãä»ã®ã³ã³ãããŒã誀ã£ãŠåé€ããŠããŸããŸããã ç§ã®å Žåãdockerããã©ã«ããŒåã䜿çšããã®ã§ã¯ãªãããããžã§ã¯ãã«ã©ã³ãã ã«ååãä»ããæ¹ãããã§ãããã
Dockerãæ¡çšãå§ããŠããä»ã®ãªã¢ãŒãéçºè
ãäœäººãããŸãã ããŒã ãšããŠããããã®ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããããã«ããããã®éçºè
ã«åžžã«/ã®ã¿docker-compose up
ãæç€ºããæ¹ãåžžã«ç°¡åã§ãã ãããã®ã¢ãŒãªãŒã¢ããã¿ãŒãDockerã«ã€ããŠç¥ã£ãŠããããšãå°ãªãã»ã©è¯ãã§ãã 圌ãããã®èåŸã«ããåãèŠããšã圌ãã¯èªåã§æŸãã§ãããã
èŠçŽãããšããŠãŒã¹ã±ãŒã¹ã¯ããã©ã«ããé©åã§ãªãå Žåã®ããã§ãã ããã©ã«ãããªãŒããŒã©ã€ãããæ¹æ³ã¯ãã§ã«ãããŸããããšã©ãŒãçºçãããããã¢ãŒãªãŒã¢ããã¿ãŒã«ã¯æããã§ã¯ãªãå¯èœæ§ããããŸãã
ããã©ã«ããé©åã§ãªãå Žåã¯æ¬¡ã®ãšããã§ãã
-f
ãæå®ããå¿
èŠããããŸãïŒ-f
ãæå®ããå¿
èŠããããšæããŸããèããããåé¿çã¯ãäžæã®ãã£ã¬ã¯ããªåã䜿çšããããšã§ãïŒã@dnephin远å ããŸãããDockerãæ©æã«æ¡çšãã人ã«ãšã£ãŠã¯ã€ãŸããã®å¯èœæ§ã1ã€å°ãªããªããŸãã
@dnephinãã®ã³ã¡ã³ãã«ããããã®æžå¿µããããŸããïŒ
ããšããšdocker-compose.ymlã§ååãæ¬²ããã£ãã®ã§ããããã£ãšèããŠã¿ããšãå¥ã®ãã¡ã€ã«ã®ã¢ã€ãã¢ãæ¬åœã«å¥œãã§ãã å¥ã®ãã¡ã€ã«ã䜿çšãããšãå¿ èŠã«å¿ããŠããŒãžã§ã³ç®¡çã®å¯Ÿè±¡å€ã«ããããšãã§ããŸãïŒåãŠãŒã¶ãŒãç°ãªããããžã§ã¯ãåãæã€ããšãã§ããããã«ããå ŽåïŒã
ãã®ããã«ãããžã§ã¯ãå解決ã®åªå é äœãèšå®ãããšããã®åé¡ã解決ãããŸãïŒå€§ããªæ°åã¯å°ããªæ°åãããåªå ãããŸãïŒã
docker-compose.yml
COMPOSE_PROJECT_NAME
ç°å¢å€æ°--project-name
ã³ãã³ãã©ã€ã³ãªãã·ã§ã³ååãã§ãã¯ãããšããdockerã¯.envãã¡ã€ã«ã®ååãéžæããããšãèš±å¯ããŸããã§ããã
@fiveanddone AFAIKããã¯ã§ããŸãããããããžã§ã¯ãã«å¿ èŠãªENVãã¡ã€ã«ãç¥ãå¿ èŠããããããåé¡ãçºçããã ãã§ãã
phd5ã®å ŽåãïŒappïŒ-environmentãsrc/
ã .env
ã¯åã«ãcontrol-environment-fileãã§ãããããããã§èª¬æããããšã
ç§ã¯ããã奜ãã§ã¯ãªããèªåã§å€æŽããããšããªãã£ãã§ãããã ããã¯å€ãã®ãããžã§ã¯ãã§ã¯äžå¯èœãããããªãããšãç§ã¯ç¥ã£ãŠããŸãã
ãããæã€.env
ããªããšåãã¬ãã«ã§ãã¢ããªã±ãŒã·ã§ã³ããdocker-compose.yml
ããªããããã«aãšbå±ããŠããªããããªãã®ãã³ã³ãããŒã«ã»ç°å¢ãã®å€æ°ãååŸããïŒã®ã§ãè¶
è¿·æã«ãªããŸãïŒãããã®å€æ°ãå¿
èŠãªå Žåã¯ãã³ã³ããã«è»¢éããå¿
èŠããããŸããcïŒ app.env
ãã¡ã€ã«ã§ãããã®å€æ°ãäžæžã/倿Žããããšã¯ã§ããªããªããŸãã
@dnephinåªå
ç°å¢ãã¡ã€ã«ãšããŠdocker-compose.env
ãå°å
¥ãããã©ãŒã«ããã¯ãšããŠ.env
ã䜿çšããã®fig.yml
ã§ãåãããšã1åè¡ããŸããã
ããã§ãã¹ãŠã®äººã®åé¡ã解決ãããšã¯æããŸããã .env
ãã¡ã€ã«ã®ååã¯ãç§ã«ã¯å¥ã®åé¡ã®ããã«æããŸãã
åé¡ã®æ žå¿ã¯ããã ãšæããŸãïŒ
docker-compose up
ã®å
ã®èšèšã¯ããµãŒãã¹ãå®è¡ããããã«å®è¡ã§ããåäžã®ïŒçãïŒã³ãã³ãã§ããã ããã¯ãéçºè
ãæåŸ
ããŠããããšã§ãã ãã ããäžéšã®ãŠãŒã¶ãŒïŒãã®å ŽåïŒã§ã¯ãã®åäœãå®çŸã§ããŸããã
ãã®åé¡ãåé¿ããæ¹æ³ã¯ãããããããŸããããã¹ãŠã®äººã«åœ¹ç«ã€ãšæãããæ¹æ³ã¯ãããŸããã
åªå é äœïŒæé«ããæäœïŒã¯æ¬¡ã®ããã«ããå¿ èŠããããšæããŸãã
--project-name
ïŒåžžã«ãªãŒããŒã©ã€ãïŒCOMPOSE_PROJECT_NAME
ç°å¢å€æ°ïŒ3ïŒ .docker/project-name
ãã¡ã€ã«ã§å®çŸã§ããŸãïŒOPã§ææ¡ãããŠããããã«ïŒ
ïŒ4ïŒ docker-compose.yml
ãã¡ã€ã«ã®ãã£ãŒã«ãã§å®çŸã§ããŸã
ãããžã§ã¯ãåãèšå®ããããã«éåžžã«å€ãã®ç°ãªãæ¹æ³ãå¿ èŠãªã®ã¯æ®å¿µã§ãã
@dnephinã¯3ã«é¢ããŠããŠãŒã¶ãŒã«ããã©ã«ããèšå®ãããŸãããããenv倿°ã®ç®çã§ããããã¡ã€ã«ãäœæããå¿ èŠã¯ãããŸããã
ããŒã...ãããŠãåé¡ãå°ãäžè¬åããŠã docker-compose.yml
default_environment
ã»ã¯ã·ã§ã³ãå°å
¥ãããšã©ããªãã§ããããã ãã®ããã«ããŠãyamlã«ç¹å¥ãªãã£ãŒã«ããå°å
¥ããã«COMPOSE_PROJECT_NAME
ãèšå®ã§ããŸããããã¡ã€ã«å
šäœã®ä»ã®å Žæã«ååšããå¯èœæ§ãé«ãä»ã®ããã©ã«ã倿°ãå®çŸ©ããããšãã§ããŸãã ããã«ããã .env.dist
ã.env
ã³ããŒããå¿
èŠãããå Žåã®æ°ãæžããã³ããŒãå¿ããã³ã¹ããå°ãªããªããŸãã
䜿çšäŸïŒ
# ~/projects/sketches/sketch-42/docker/docker-compose.yml
version: "2"
default_environment:
- SUBDOMAIN=sketch-42
- ROOT_HOST=example.com
- COMPOSE_PROJECT_NAME=sketch-42
services:
web:
build:
context: ../
dockerfile: docker/Dockerfile
environment:
- VIRTUAL_HOST=${SUBDOMAIN}.${ROOT_HOST},www.${SUBDOMAIN}.${ROOT_HOST}
- VIRTUAL_PORT=80
- VIRTUAL_NETWORK=proxy
- LETSENCRYPT_HOST=${SUBDOMAIN}.${ROOT_HOST},www.${SUBDOMAIN}.${ROOT_HOST}
- LETSENCRYPT_EMAIL=admin@${ROOT_HOST}
restart: always
networks:
- proxy
networks:
proxy:
external:
name: proxy
ãã®yamlã¯ãç§ããã䜿çšãããã®ãšéåžžã«ãã䌌ãŠããŸããvisã¹ã±ããã«ã€ããŠèª¬æããŠããŸãããã®ã¹ã±ããã«ã¯ãåžžã«web
ãšãããµãŒãã¹ããããŸãããããAPIãµãŒããŒãããŒã¿ããŒã¹ãåããã³ã³ãããŒã«ãã£ãŠããã¯ã¢ããããããšãã§ããŸãã https://github.com/jwilder/nginx-proxyããã¹ãŠã®åé¢ã«ãããå®éã®ããŒã80ãš443ããªãã¹ã³ããŠãããšæ³å®ãããŠã
çŸæç¹ã§ã¯ãããŒã«ã«ãã·ã³ã䜿çšããŠããå Žåã§ãããªã¢ãŒããµãŒããŒã䜿çšããŠããå Žåã§ãã .env
ãç¶æããããã«_all_ç°å¢å€æ°ãèšå®ãããŠããããšã確èªããå¿
èŠããããŸãã ããšãã°ã SUBDOMAIN
ãå¿ããå Žåãã³ã³ããã¯èµ·åããŸãããWebãµãŒããŒã¯å£ãããŸãŸã§ãã
default_environment
ã»ã¯ã·ã§ã³ãèªç±ã«äœ¿çšã§ããã®ã§ããã¹ãŠã®æ¬çªå€æ°ã1ã€ã®ãã¡ã€ã«ã«é
眮ã§ãããµãŒããŒäžã§.env.dist
ãã³ããŒããå¿
èŠã¯ãããŸããã ããŒã«ã«ãã·ã³ã§ã¯ãäžèšã®äŸã§ã¯ã1ã€ã®å€æ°ã.env
ã«é
眮ããŸããããã¯ã ROOT_HOST=example.com.dev
ïŒãŸãã¯ãbashãããã¡ã€ã«ã§export ROOT_HOST=example.com.dev
ã䜿çšããããšãã§ããŸããïŒ ïŒ
èŠçŽãããšã default_environment
äžã«ã»ã¯ã·ã§ã³docker-compose.yml
å¯äžæã
ãçŸåšè°è«ãããŠããåé¡ã解決ããããšã¯ã§ããŸãããããŸã100ïŒ
BCãšçè§£ããããã§ãããªãããããã€ãã®äœåãªçŽ æµãªããªãã¯ãæå¹ã«ããããšãã§ããŸãïŒ
WDYTïŒ
ããã¯ããã§ãããã·ããªãªã«ãã£ãŠã¯éå®ãããããããŸããã
ãã ããäžèšã®ïŒå ç±ãããïŒè°è«ã«ç
§ãããŠã
ãœãªã¥ãŒã·ã§ã³ã¯å€§ãŸãã«æ¬¡ã®ããã«è§£éãããŸãããæ°ãããã¡ã€ã«ãã«è¿œå ãã代ããã«
ymlãæ°ããã»ã¯ã·ã§ã³ã远å ããã®ã¯ã©ãã§ããïŒã :)
ç«æã2017幎2æ28æ¥ã«ã¯ãåå0æ02åã¢ã¬ã¯ãµã³ããŒKachkaev [email protected]
æžããŸããïŒ
ããŒã...ãããŠãåé¡ãå°ãäžè¬åããŠåçŽã«ç޹ä»ãããšã©ããªãã§ãããã
docker-compose.ymlã®default_envã»ã¯ã·ã§ã³ã ãã®ããã«å®çŸ©ããŸã
yamlã«ç¹å¥ãªãã£ãŒã«ããå°å ¥ããã«COMPOSE_PROJECT_NAMEããã ã
ä»ã®ããã©ã«ã倿°ãå®çŸ©ããããšãã§ããŸãã
ãã¡ã€ã«å šäœã®ã©ããã«ååšããŸãã ããã«ãããã±ãŒã¹ã®æ°ãæžããŸã
.env.distã.envã«ã³ããŒããå¿ èŠãããå Žåãããã³ã³ããŒããã®ãå¿ããã³ã¹ã
ããããããšã¯å°ãªããªããŸãã䜿çšäŸïŒ
ã/ projects /ketches/sketch-42/docker/docker-compose.yml
ããŒãžã§ã³ïŒã2ã
default_envïŒ
ãµããã¡ã€ã³=ã¹ã±ãã-42
ROOT_HOST = example.com
COMPOSE_PROJECT_NAME = Sketch-42
ãµãŒãã¹ïŒ
ãŠã§ãïŒ
ãã«ãïŒ
ç°å¢ïŒ ../
dockerfileïŒdocker / Dockerfile
ç°å¢ïŒ
--VIRTUAL_HOST = $ {SUBDOMAIN}ã$ {ROOT_HOST}ãwwwã$ {SUBDOMAIN}ã$ {ROOT_HOST}
-VIRTUAL_PORT = 80
-VIRTUAL_NETWORK =ãããã·
--LETSENCRYPT_HOST = $ {SUBDOMAIN}ã$ {ROOT_HOST}ãwwwã$ {SUBDOMAIN}ã$ {ROOT_HOST}
--LETSENCRYPT_EMAIL = admin @ $ {ROOT_HOST}
åèµ·åïŒåžžã«
ãããã¯ãŒã¯ïŒ
-ãããã·ãããã¯ãŒã¯ïŒ
ãããã·ïŒ
å€éšïŒ
ååïŒãããã·ãã®yamlã¯ãç§ãããæã£ãŠãããã®ãšéåžžã«ãã䌌ãŠããŸã-visã«ã€ããŠèª¬æããŠããŸã
ã¹ã±ãããåžžã«ãŠã§ããšåŒã°ãããµãŒãã¹ããããŸãããããã¯ã¢ããããããšãã§ããŸã
ããAPIãµãŒããŒãšããŒã¿ããŒã¹ãåããã³ã³ããã«ãã£ãŠã æ³å®ãããŠãã
https://github.com/jwilder/nginx-proxyãåé¢ã«åº§ã£ãŠãªãã¹ã³ããŠãã
å®éã®ããŒã80ããã³443ã«ãçŸæç¹ã§ã¯ãããŒã«ã«ãã·ã³ã䜿çšããŠããå Žåã§ãããªã¢ãŒããµãŒããŒã䜿çšããŠããå Žåã§ãã
.envãç¶æãããã¹ãŠã確èªããããšãå¿ããªãã§ãã ãã
ããã§ç°å¢å€æ°ãèšå®ãããŸãã ããšãã°ãç§ãå¿ããŠããŸã£ãå Žå
ãµããã¡ã€ã³ãã³ã³ããã¯èµ·åããŸãããWebãµãŒããŒã¯å£ãããŸãŸã§ããdefault_envã»ã¯ã·ã§ã³ãèªç±ã«äœ¿çšã§ããã®ã§ããã¹ãŠã®æ¬çªç°å¢ã䜿çšã§ããŸãã
倿°ãé 眮ãããŠããã°ããµãŒããŒã«.env.distãã³ããŒããå¿ èŠã¯ãããŸããã
ããŒã«ã«ãã·ã³ã§ã¯ã1ã€ã®å€æ°ã.envã«å ¥ããã ãã§ãã
ROOT_HOST = example.com.devïŒãŸãã¯å€åç§ã¯ãšã¯ã¹ããŒãããããšããã§ããŸã
bashãããã¡ã€ã«ã®ROOT_HOST = example.com.devïŒïŒèŠçŽãããšãdocker-compose.ymlã®default_envã»ã¯ã·ã§ã³ã¯
ä»èª¬æããŠããåé¡ã解決ããŸãããããã«ããã€ãã®åªããäœ¿çšæ³ãæå¹ã«ããããšãã§ããŸã
ã·ããªãªïŒWDYTïŒ
â
ãã®ã¹ã¬ããã«ãµãã¹ã¯ã©ã€ãããŠããããããããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/docker/compose/issues/745#issuecomment-282885661 ããŸãã¯ãã¥ãŒã
ã¹ã¬ãã
https://github.com/notifications/unsubscribe-auth/AAQJJZumr10j3i17gPxrSyA-n8CwvsXTks5rg1X_gaJpZM4DLBNs
ã
docker-compose.ymlå
ã«ãproject_nameããå«ãããšãã¹ã¿ãã¯ã®åé¡ã解決ããŸãã
è€æ°ã®ãããžã§ã¯ããåŠçããæšæºåãããããªãŒãåããã¢ããªã¹ãªããžããªããããŸããããã¯å€ããå°ãªããæ¬¡ã®ããã«ãªããŸãã
projectA/infrastructure/docker-compose.yml
projectB/infrastructure/docker-compose.yml
...
æããã«çŸå®ã®äžçãããè€éãªã®ã§ãdocker-compose.ymlãã¡ã€ã«ããprojectA / projectBããã©ã«ããŒã«ç§»åããã ãã§ã¯äžååã§ãã
èµ·åãããããžã§ã¯ããå°ããCLIãã«ãŒãã«ããããããžã§ã¯ãåã¯docker_compose.ymlã®èŠªãã©ã«ããŒã«çŽæ¥äŸåããŠãããããç«¶åãçºçããŠããŸãã
docker-composeã³ãã³ãïŒCLIã¹ã¯ãªããå
ã«ã©ãããããŠããïŒãèªåã§äœæããªããããã³ãã³ãã«ã-pãåŒæ°ãæåã§è¿œå ããããšã¯ã§ããŸããã
ç§ãã¡ã®è§£æ±ºçã¯ãCLIã¹ã¯ãªããå
ã§åžžã«project_nameãçæããããšã§ãããã®ãããdocker-composeãåŒã³åºããšãã¯ãabsolute_pathã«åºã¥ããŠåžžã«ã-pãããããŸãããå¥åŠã«èãããŸãã
ããã«ãã人ã®äžã«ã¯ããã»ãšãã©ã®ãããžã§ã¯ãã§ã»ãšãã©ã®å ŽååäœããŸããdocker-compose.ymlã¯ãããžã§ã¯ãã®ã«ãŒããã©ã«ããŒå ã«ããããããžã§ã¯ãã®ååã¯ç°ãªããç«¶åãåé¿ããŸãããšèšã£ã人ãããŸãããç§ã¯åæã§ããŸããããã®ã åžžã«ã«ãŒããã©ã«ãå ã«ãããšã¯éããŸããã
ãµãŒãã¹ã®docker-compose.ymlãã¡ã€ã«ïŒã¹ã±ãŒãªã³ã°ãç¡å¹ã«ããïŒã§ãcontainer_nameããå®çŸ©ã§ããã®ã«ãdocker-compose.ymlãã¡ã€ã«èªäœã®ãproject_nameãããšåãã¬ãã«ã§å®çŸ©ã§ããªãã®ã¯ãªãã§ããã ãããŒãžã§ã³ã/ããµãŒãã¹ã/ããããã¯ãŒã¯ã/ãããªã¥ãŒã ãïŒ
ããã¯ãã³ã³ããåãæç¢ºã«ãªãããã«scale
䜿çšããå Žåã«å¿
èŠãšæãããŸãã ïŒäŸïŒ <project_name>_<container_name>_1
ïŒã
ããã¯ãDNSã«ã³ã³ããåã䜿çšãããšãã«åœ¹ç«ã¡ãŸãã
ãããè¡ãããããšãæåŸ ããŠããã«æ¥ãŸããã ãã£ãããããŸãŸã 3幎以äž
ãããããã¯Dockerã®æãæããªãŠãŒã¶ããªãã£ã®åé¡ã®1ã€ã§ãããä¿®æ£ãããŠããŸããã
ç§ãã¡ã¯ããã«ã€ããŠéçºè ãšè°è«ããããšã«å€ãã®æéãè²»ãããŸããããããŠã³ã³ã»ã³ãµã¹ããã£ããšããŠãããããæªããã¶ã€ã³ã§ãããšããæ¿èªã¯ãããŸããã§ããã
ããã«å¯ŸããæãããªãŠãŒã¶ãŒãµããŒããããã®ã§ã€ã©ã€ã©ããŸãããéçºè èªèº«ã®ãŠãŒã¹ã±ãŒã¹ã«é©åããªããããæ¯å¹Žæ¯å¹Žåããã·ã¥ãããŠããŸãã
cliã䜿çšããŠãªãã·ã§ã³ã远å ããå¿
èŠãããå Žåãdocker-composeã®ãã€ã³ãã¯äœã§ããïŒ
åœåã¹ããŒã ã®ãããã§ãããã€ãã®ã³ã³ãããäžæžããããŸããã
仿¥ãç§ã¯ãããžã§ã¯ãã«æ°žç¶çãªååãä»ããããã«ãããã«å¥ã®.env
ãã¡ã€ã«ã䜿çšããŠããã«å¥ã®docker-compose
ãããžã§ã¯ããèšå®ããŠããŸããã ããã§ãæåŸã«ãã§ãã¯ããŠããæ°å¹Žãçµã¡ãŸããã®ã§ããã®åé¡ããã§ãã¯ãããšæããŸããã ããããç§ãèŠãéããããã§ã¯äœãæ°ããããšã¯ãããŸãããïŒ .env
åé¿çã䜿ãç¶ããå¿
èŠããããšæããŸãã ç§ã«ã¯ãyamlãã¡ã€ã«ã§ãããžã§ã¯ãã«ååãä»ããããšãæãåºæ¬çãªããšã®ããã«æããŸããããŸã 解決ãããŠããªããããããã«ã€ããŠã¯çè§£ã§ããªãããšããããšæããŸãã
ãããžã§ã¯ãåãå€éšã§ïŒã³ãã³ãã©ã€ã³ãŸãã¯å€æ°ã§ïŒæå®ããå¿
èŠããããŸããã docker-compose.yml
ãã¡ã€ã«ïŒä»ã®ãã¹ãŠãå®å
šã«æå®ãããã¡ã€ã«ïŒã§ãããžã§ã¯ãåãèšå®ã§ããªãã®ã¯ç¡æå³ã§ãã 芪ãã£ã¬ã¯ããªåãã·ã§ã«ç°å¢ããŸãã¯ç¹å®ã®.env
å
ã®ç¹å®ã®è¡ã®ååšã«é¢ä¿ãªããããã»ã¹ãä»»æã®docker-compose.yml
ãã¡ã€ã«ã«åºã¥ããŠãµãŒãã¹ã®ç¹å®ã®ã¹ã¿ãã¯ãã¢ãã¬ã¹æå®ããå¿
èŠãããå ŽåããããããããŸãã .env
ãã¡ã€ã«ã CIãžã§ãããããžã§ã¯ãåãç¶ç¶çã«ãææ¡ãããå¿
èŠã¯ãããŸããããžã§ãããããžã§ã¯ãåãæœåºããŠäœ¿çšã§ããããã«ããããžã§ã¯ãåãdocker-compose.yml
æç¢ºã«èšèŒããå¿
èŠããããŸãã
ããã¯ãã®ãããžã§ã¯ãã§äœåºŠãèµ·ããããã§ãã Dockerã¯çŽ æŽããããã¯ãããžãŒã§ãããéçºè ãå®éã«å®éã®çµéšãæã£ãŠããã®ãããããšã18æ³ã®ããã«ãŒã§ãèªåãã¡ãæãããç¥ã£ãŠãããšæã£ãŠããã®ã§ããããã 人ã ã¯ãåžžã«åé¿çãæ¢ãã®ã§ã¯ãªããå®éã®äœæ¥ã«ãã®ãããªãã®ã䜿çšããããšèããŠããŸãã
ãã®éãããŒã ã¯ãã®åé¡ãç¡èŠããŠãããšæããŸãã Dockeréçºè ã説åŸããããšããããšã¯ããããç©ããã«èšãã°æ¬åœã«èŠçã«ãªãå¯èœæ§ããããŸãã
æç¢ºãªè°è«ã¯ãããŸãæå³ããªããªãããã€ãã®å¥åŠãªè«çã§å¯ŸæãããŸãã åãçç±ã§å šå¡ãããã«æ¥ããšããçŸå®äžçã®ãŠãŒã¶ãŒã®æèŠã¯ç¡èŠãããŸãã ããã¯æ®å¿µã ã
CIãžã§ãããããžã§ã¯ãåãç¶ç¶çã«ãææ¡ãããå¿ èŠããªãããã«ããŸãããžã§ãããããžã§ã¯ãåãæœåºããŠäœ¿çšã§ããããã«ãdocker-compose.ymlã«æç¢ºã«èšèŒããå¿ èŠããããŸãã
ã¹ã¿ãã¯ã®ååããbuild1234ãã®ããã«ãªã£ãŠããããŸãã¯ã¹ã¿ãã¯ã®ååãdocker exec build1234_myservice script.sh
ããã«å¥ã®å Žæã§ã©ã®ããã«äœ¿çšãããã®ããšããåé¡ããããŸããïŒ
ã©ã®ãŠãŒã¹ã±ãŒã¹ã«ãé©åããªããããããŸãããããããèšã£ãŠãããããã«...
ç§ãã¡ã®ã»ããã¢ããã§ã¯ãïŒã¯ããŒã³ïŒãããžã§ã¯ããã»ããã¢ãããããšãã«.env
ãã¡ã€ã«ã®ã¿ã倿ŽããŸãã 倿ŽãŸãã¯åçæ§æãå¿
èŠãªå Žåã¯ã docker-compose.yml
.env
倿°ãåå©çšããŸãã å©ç¹ã¯ã倿°ãæ¬ èœããŠããå Žåãdocker-composeãèŠåïŒãŸãã¯å€±æïŒããããšã§ãã
ç§ããã®åé¡ã«æ©ãŸãããŠããã®ã§ãã¯ãŒã¯ãããŒã倿Žããå¿
èŠããããšã¯èšããããããŸããã
åºæ¬çã«ã¯ã docker-compose.yml
ãžã®å€æŽããœãŒã¹ã³ãŒããžã®å€æŽã®ããã«æ±ããŸããã .env
ã¯åãªãæ§æã§ãã ãããããããžã§ã¯ãã«å€§ããäŸåããnetwork
ããã«ã docker-compose.yml
ã«ã¯ããã€ãã®ãªãã·ã§ã³ãããããšã«ãåæããŸãã äžèšã«æ»ããŸãã ãããã¯ãŒã¯ã®.env
倿°ãå®çŸ©ããŸãã ð€
ç§ããã®åé¡ã«æ©ãŸãããŠããã®ã§ãã¯ãŒã¯ãããŒã倿Žããå¿ èŠããããšã¯èšããããããŸããã
èªåã®ç¶æ³ãããå°ãèããŸããã ãããžã§ã¯ãåãå€éšã§èšå®ããããšã«å®éã«ã¯åé¡ã¯ãããŸãããå®éãããã¯-p <project_name>
ãã©ã°ã䜿çšããŠè¡ããŸããããã«ãããCIå
ã®ã¹ã¿ãã¯ã®äžæã®ã€ã³ã¹ã¿ã³ã¹ãåé¢ããè€æ°ã®ã¹ã¿ãã¯ãåæã«å®è¡ã§ããŸããå¿
èŠã ãã®CIãã§ãŒã³ã ãããã®ãããžã§ã¯ãåãç¥ã£ãŠããå¿
èŠãããã®ã§ãèªåçæãŸãã¯ã©ã³ãã ïŒãã ãæ¢ç¥ïŒã§åé¡ãããŸããã ãŸããç°å¢å€æ°ã䜿çšããŠããã©ã«ãåããªãŒããŒã©ã€ãããããšã«åé¡ã¯ãããŸãããã .env
ããªãã¯ã¯èªæã§ã¯ãããŸããã
ãã ãããããžã§ã¯ãã®_ããã©ã«ãå_ãã©ããã«æç€ºçã«å®çŸ©ããŠãããšäŸ¿å©ãªç¶æ³ããããŸãã ã§ã¯ããªã芪ãã£ã¬ã¯ããªåããã®ååã®ãœãŒã¹ãšããŠäœ¿çšããã®ã§ããããã ãããç§ã«ãšã£ãŠã®åŒ±ç¹ã§ãã ããã¯ã©ãããã§ãåãããšãã§ããŸã-芪ãã£ã¬ã¯ããªã®éžæã¯æ£æçã§ãããå€ãã®çç±ã¯ãããŸããïŒããšãã°ãã»ãšãã©ãã¹ãŠã®ç§ã®ãããžã§ã¯ãã§ã¯ã docker-compose.yml
ãã¡ã€ã«ã¯docker
ãšãããµããã£ã¬ã¯ããªã«ãããŸãïŒã ãããã£ãŠãä»»æã«ããå Žåã¯ãå€ãã®å Žåããã£ã¬ã¯ããªã®ã³ã³ãã³ãããå®å
šã«ç¬ç«ããŠããå¿
èŠããã芪ãã£ã¬ã¯ããªåã«åœ±é¿ãäžããŠå€éšã®å¯äœçšãäœæããã®ã§ã¯ãªããymlãã¡ã€ã«ãªã©ã®ããæç€ºçãªå Žæã«ä¿åããŸãïŒå¹Žã«åºã¥ãïŒåå©çšå¯èœãªãªãœãŒã¹ã§ã®äœæ¥çµéšïŒã
ããã¯ã©ãããã§ãååŸã§ããŸã-芪ãã£ã¬ã¯ããªã®éžæã¯æ£æçã§ãããçç±ã¯ããŸããããŸããïŒããšãã°ãã»ãšãã©ãã¹ãŠã®ãããžã§ã¯ãã§ãdocker-compose.ymlãã¡ã€ã«ã¯dockerãšãããµããã£ã¬ã¯ããªã«ãããŸãïŒã
ã©ã³ãã ID以å€ã®ãã®ãå¿
èŠãªå Žåã¯ã芪ãã£ã¬ã¯ããªã«ä»£ãããã®ã¯ãããŸããã å°ãªããšããã¹ã¿ãã¯ããã©ãããæ¥ãã®ãããç¥ããã£ã³ã¹ããããŸãã
ããããç§ãããªãã«åæããŸããç§ãã¡ã®ãããžã§ã¯ãã§ã¯ã .env
ãã¡ã€ã«ããªããš-äºãã«ã²ã©ãè¡çªããtests
ãã©ã«ããŒã«ãã¹ãã¹ã¿ãã¯ããŠããããã§ãã ãã®ãããç§ã¯docker-compose.env
ãšãããã¡ã€ã«ãåªå
ããããšãææ¡ããŸãããããã¯ç§èŠã§ã¯ã¯ããã«æç¢ºã§ãã
ããªããã¡ã¯ãããªããæ°ã«ããªãããšãèªããŠãã®ãã°ãéããã ãã§ããããããšãç§ãã¡ã®å€§å€æ°ãæãã§ããä¿¡ããããªãã»ã©åçŽãªããšãå®è£ ããŸããïŒ 2ã86幎åŸã§ãã ããããéããŸãã ããªãã®æ±ºå®ãææããããããªãã®ééããä¿®æ£ããŠãã ããã ããããããªãã¯ãããèŠããã§ãã äœãããªãã§ãã ããã
@matsamanãšåœŒã®ã³ã¡ã³ãã
ããªããã¡ã¯ãããªããæ°ã«ããªãããšãèªããŠãã®ãã°ãéããã ãã§ããããããšãç§ãã¡ã®å€§å€æ°ãæãã§ããä¿¡ããããªãã»ã©åçŽãªããšãå®è£ ããŸããïŒ 2ã86幎åŸã§ãã ããããéããŸãã ããªãã®æ±ºå®ãææããããããªãã®ééããä¿®æ£ããŠãã ããã ããããããªãã¯ãããèŠããã§ãã äœãããªãã§ãã ããã
ãåãã¡ãã¯èª°ã§ããïŒ ãªãŒãã³ãœãŒã¹ã§ã¯ãã³ãã¥ããã£ã決å®ãææããä»ã®äººã®ééããä¿®æ£ããŸãã Dockerã¯ãªãŒãã³ãœãŒã¹ã§ãã æ³£ãèšãèšã代ããã«ããã«ãªã¯ãšã¹ããéä¿¡ããããšãæ€èšããŠãã ããã
ããããŸã å®è£ ãããŠããªãã®ãæ®å¿µã§ãã ãããããªãŒãã³ãœãŒã¹ã§ã¯ãè²¢ç®ããããèŸæ±åŒ·ãåŸ ã€ãã®ã©ã¡ããã§ãã
$ cd foo
$ docker-compose up
$ docker-compose -p bar up
... some time later wanting to take down bar forgetting '-p'
$ docker-compose down
Stopping foo_nginx_1 ... done
Stopping foo_mysql_1 ... done
Removing foo_nginx_1 ... done
Removing foo_mysql_1 ... done
$ FU@$_!@*#%$(!_*@
-bash: FU@!@*#%$: command not found
äžåæ Œã
$ cd foo
$ source foo.env
$ docker-compose up
$ source bar.env
$ docker-compose up
... some time later wanting to take down foo forgetting to `source .foo.env`
$ docker-compose down
Stopping bar_nginx_1 ... done
Stopping bar_mysql_1 ... done
Removing bar_nginx_1 ... done
Removing bar_mysql_1 ... done
$ FU@$_!@*#%$(!_*@
-bash: FU@!@*#%$: command not found
äžåæ Œã
$ cd foo
$ docker-compose -f foo.yml up
$ docker-compose -f bar.yml up
... some time later
$ docker-compose down
ERROR:
Can't find a suitable configuration file in this directory or any
parent. Are you in the right directory?
Supported filenames: docker-compose.yml, docker-compose.yaml
ããŒãïŒ
$ COMPOSE_PROJECT_NAME=foo docker-compose up -d
$ COMPOSE_PROJECT_NAME=bar docker-compose up -d
... some time later
$ docker-compose down -v
Removing network project_default
WARNING: Network project_default not found.
O /
ãåãã¡ãã¯èª°ã§ããïŒ
@benjaminwoodãã®ãããžã§ã¯ãã®ã¡ã³ãããŒã§ãã ç§ãã¡ãè€éãªå€åã«ã€ããŠè©±ããŠããŠã誰ããããããæéãèŠã€ããããªããªããããªãã®è°è«ã¯çã«ããªã£ãŠããŸãã
ããã¯ãããã§ã¯åœãŠã¯ãŸããªãããšã¯æããã§ããå®è£ ã¯ãã³ãŒãããŒã¹ã«ç²ŸéããŠãã人ã«ãšã£ãŠã¯éåžžã«ç°¡åã§ãå€éšã®äººã«ãšã£ãŠã¯ã¯ããã«é£ããã§ãããã ã§ãããã誰ããããããæéããªããšããããšã§ã¯ãªãããããã¡ã³ããããããããããªã
ããã«äœåºŠãæçš¿ãããŠããåé¿çã¯ãã¹ãŠããç¥ãããŠããŸããããã¹ãŠã®äººã«é©çšã§ããããã§ã¯ãããŸããã ãããŠã docker-compose.yml
æ©èœã§ãããžã§ã¯ãåã ããçç¥ãããŠããçç±ã¯ããŸã çããèŠã€ãããŸããdocker-compose.yml
ã 誰ããèããå Žåãããã¯ããã«å±ããŠããªãã®ã§ã䜿çšããªãã§ãã ããïŒ ããããããã«å¯ŸããéèŠãå§åçã«æçœã§ããå Žåã¯ãä»äººã«å¯Ÿããããªãã®æèŠã劚ããªãã§ãã ããã
ãããå¥ã®èгç¹ããèŠãŠã¿ãŸãããã
docker-compose.yml
ãã¡ã€ã«ã®ãããã©ã«ããŒã«ããå Žåãã¹ã¿ãã¯ã®ãããžã§ã¯ãåã確èªããã«ã¯ã©ãããã°ããã§ããïŒ
ããã¯ããªãåºæ¬çãªè³ªåã§ãããç°¡åãªçãã¯ãããŸããã
çŸåšã¯ïŒåªå 床ã§ãœãŒãïŒïŒ
-p
ã®å€COMPOSE_PROJECT_NAME
ã®å€.env
ãã¡ã€ã«ããã®COMPOSE_PROJECT_NAME
ã®å€æªéã®æè·è ã«ãªãããã«ããªããã®ãã§ã«æ··ä¹±ããŠããèšå®ã«5çªç®ã®ãã®ã远å ããã®ã§ããïŒ
ãã®æ±ºå®ã«ãããããããçŸåšã®ååã«é¢ããããã©ã€ã©ã³å¯èœãªãæ
å ±ãããã¯ãã§ãã docker-compose config
ã¯ããããªããã¹ã¿ãã¯ãå®è¡ãããŠããªãå Žåã¯docker-compose ps
ããããŸããã
ãã¶ãdocker-compose create
ãçŸåšå©çšå¯èœãªæè¯ã®ãªãã·ã§ã³ã§ãããå®ç§ã«ã¯ã»ã©é ãã§ãã
å°ãªããšãdocker-compose config --project-name
ãããªãã®ãå¿
èŠã§ãã çŸåšãäžèšã®å Žæãç¥ããæ£ããé åºã§ç¢ºèªããå¿
èŠããããŸãã
docker-compose.ymlãã¡ã€ã«ã®ãããã©ã«ããŒã«ããå Žåãã¹ã¿ãã¯ã®ãããžã§ã¯ãåã確èªããã«ã¯ã©ãããã°ããã§ããïŒ
ç¹°ãè¿ãã«ãªããŸããã䜿çšããããªãå Žåã¯äœ¿çšããªãã§ã«ãšã£ãŠè¯ãã§ã!! äœãå€ãããªãã®ã§ãæ··ä¹±ããããšã¯ãããŸããïŒ
ããããä»ã®äººãç°ãªãèŠä»¶ãæã£ãŠããããšãåãå ¥ããããšã¯ã§ããŸãããïŒ å¿ èŠãªã®ã¯ããã®è«ççã«æ¬ èœããŠããéšåãæçµçã«è¿œå ãããããšã§ãã
æªéã®æè·è ã«ãªãããã«ããªããã®ãã§ã«æ··ä¹±ããŠããèšå®ã«5çªç®ã®ãã®ã远å ããã®ã§ããïŒ
æ··ä¹±ããå¯èœæ§ãããå¯äžã®çç±ã¯ããããžã§ã¯ãåãæåã«docker-compose.yml
ããé€å€ãããããã§ãã ãã以å€ã®å Žåã¯ããã¹ãŠããã®ãã¡ã€ã«ã«å«ãŸããããã«ãªããŸãã åªå
é äœã®ãªã¹ããå®çŸ©ã§ããŸã-åé¡ã§ã¯ãããŸããã
çŸåšãäžèšã®å Žæãç¥ããæ£ããé åºã§ç¢ºèªããå¿ èŠããããŸãã
ãããžã§ã¯ãã®Dockeråãããããªãã®ã¯ãªãã§ããããŸãããããèªåã«é¢ä¿ããŠããã®ã¯ãªãã§ããã ãããŠããããããªãããšãŠãæ··ä¹±ããããªãããªãããªãã¯ããªãã®ãã¹ãŠã®ãããžã§ã¯ãã§åãã¡ã«ããºã ã䜿ããªãã®ã§ããïŒ
ç¹°ãè¿ãã«ãªããŸããã䜿çšããããªãå Žåã¯äœ¿çšããªãã§ãã ããã ããªããããªãã®è§£æ±ºçã«æºè¶³ããŠãããªã-ããªãã«ãšã£ãŠè¯ãã§ã!! äœãå€ãããªãã®ã§ãæ··ä¹±ããããšã¯ãããŸããïŒ
ç§ã®è³ªåã¯ãæ°ããæ©èœã®äœ¿çšã«ã€ããŠã§ã¯ãªããæ¢åã®æ©èœã®æ¬ åŠã«ã€ããŠã§ããã ãããžã§ã¯ãåã¯ã docker-compose
ãç¹å®ã®ã³ã³ããã»ãããéå§ããã³åæ¢ããããã«äœ¿çšããå¯äžã®é¢é£æ
å ±ã§ãã
ãããžã§ã¯ãåã¯ã¹ã¿ãã¯ã®ã¯ãªãããããã®ã¹ã¬ããã®äººã
ã¯ééã£ãã³ã³ãããŒã匷å¶çµäºããããšã«ã€ããŠäžå¹³ãèšããŸãã
ããããä»ã®äººãç°ãªãèŠä»¶ãæã£ãŠããããšãåãå ¥ããããšã¯ã§ããŸãããïŒ å¿ èŠãªã®ã¯ããã®è«ççã«æ¬ èœããŠããéšåãæçµçã«è¿œå ãããããšã§ãã
ããã远å ãããšãäºåã«ãã£ã¬ã¯ããªåã䜿çšããŠãããããã¹ã¿ãã¯ã®äžéšã§ãããããééã£ãã³ã³ããã匷å¶çµäºããããšã«ã€ããŠäžå¹³ãèšãã§ãããã
æ··ä¹±ããå¯èœæ§ãããå¯äžã®çç±ã¯ããããžã§ã¯ãåãæåã«docker-compose.ymlããé€å€ãããããã§ãã ãã以å€ã®å Žåã¯ããã¹ãŠããã®ãã¡ã€ã«ã«å«ãŸããããã«ãªããŸãã åªå é äœã®ãªã¹ããå®çŸ©ã§ããŸã-åé¡ã§ã¯ãããŸããã
å®éã«ã¯ããããBCãŠã§ã€ã«è¿œå ããããšã¯ã§ããŸãããããã¯ããã£ã¬ã¯ããªåãšããŠã®åªå é äœãäœãããå¿ èŠãããã圹ã«ç«ããªããªãããã§ãã ã ããããããžã§ã¯ãåã®ååŸæ¹æ³ããèããŠããŸããã
ãããžã§ã¯ãã®Dockeråãããããªãã®ã¯ãªãã§ããããŸãããããèªåã«é¢ä¿ããŠããã®ã¯ãªãã§ããã
ç§ã¯éåžžãã£ã¬ã¯ããªåã䜿çšããŸããã .env
ã«ã¹ã¿ã å€ã䜿çšããããšãããããããããžã§ã¯ãåã¯ã¢ã¯ã·ã§ã³ãå®è¡ãããã³ã³ãããå®çŸ©ãããããé¢é£æ§ããããŸãã
cd /some/path/test
docker-compose up -d
cd /a-completely-different-path
docker-compose -p test down -v --remove-orphans
ããã«ãããæåã®ã¹ã¿ãã¯ã匷å¶çµäºãããŸãã yml
ãã¡ã€ã«ã®ãããžã§ã¯ãåãšåãã«ãªããŸãã
ãããŠããããããªãããšãŠãæ··ä¹±ããããªãããªãããªãã¯ããªãã®ãã¹ãŠã®ãããžã§ã¯ãã§åãã¡ã«ããºã ã䜿ããªãã®ã§ããïŒ
ç§ã¯ããã§ããç§ã¯ããã©ã«ãã®docker-compose
æ©èœã䜿çšããŠããŸãã ã»ãšãã©ã®å Žåããã£ã¬ã¯ããªåã¯åé¡ãããŸããããååã倿Žããå¿
èŠãããããåãã³ã³ããã»ããã§äœæ¥ãç¶ãããå Žåã¯ã .env
ãã¡ã€ã«ã远å ããŸãã
ããã远å ãããšã以åã«ãã£ã¬ã¯ããªåã䜿çšããŠãããããã¹ã¿ãã¯ã®äžéšã§ãããããééã£ãã³ã³ããã匷å¶çµäºããããšã«ã€ããŠäžå¹³ãèšãã§ãããã
ããã¯æå³ããããŸããã 誰ãããããžã§ã¯ãåãdocker-compose.yml
远å ããªããã°ãäœãå€ãããŸããã ãããŠã圌ããããã远å ããå Žåãããã¯åœŒããããã«ãããæãã§ããããã§ãïŒ åœŒãããããå¿
èŠãšããªãéãã誰ãããã远å ããŸããã
ãããŠãããšãããã ãšããŠãããã¹ãŠãé 調ã§ãã ããã§ã©ã®åé¡ãæ§ç¯ããããšããŠããã®ãããããŸããã ããªãã¯ç©äºãè€éã«ããããŠããŸãã
ãããžã§ã¯ãåãæ§æã§ãããã¹ãŠã®ãªãã·ã§ã³ãçµã¿åããããšããããåé¡ã ãšæããŸãã ããªãã¯ãããããã¹ãã§ã¯ãããŸããã
ãã£ã¬ã¯ããªã«è€æ°ã®ååä»ãäœæãã¡ã€ã«ããããšãåªå 床ããªãŒã®4ã€ã®ãªãã·ã§ã³ã®ãã¡3ã€ã¯ç¡æå³ã«ãªããŸãã ãµããã£ã¬ã¯ããªãäœæããããã«èšããªãã§ãã ããããµããã£ã¬ã¯ããªéã§.envãã¡ã€ã«ãå ±æããŠããããã§ãã
ãµããã£ã¬ã¯ããªãäœæããããã«èšããªãã§ãã ããããµããã£ã¬ã¯ããªéã§.envãã¡ã€ã«ãå ±æããŠããããã§ãã
env_file
䜿çšãããã¢ããªã±ãŒã·ã§ã³åºæã®.env
ãã¡ã€ã«ãå
±æããŠããŸããïŒ
ãŸãã¯ã docker-compose
䜿çšãããã®ã§ããïŒ
ãããšãæ··ããŸããïŒ
ããã¯æå³ããããŸããã 誰ãããããžã§ã¯ãåãdocker-compose.ymlã«è¿œå ããªããã°ãäœãå€ãããŸããã
ããã¯åé¡ã§ã¯ãããŸãããã远å ããããšåäœãå€§å¹ ã«å€ãããŸãã
äžæã€ã³ã¹ã¿ã³ã¹ãçæããããã«ïŒã€ãŸããã¢ããã°ã¬ãŒãããã¹ãããããã«ïŒã¹ã¿ãã¯ãæ°ãããã£ã¬ã¯ããªã«ã³ããŒããå Žåã docker-compose.yml
ã«è§Šããå¿
èŠã¯ãŸã£ãããããŸããã ãã ãããããã¹ã¿ãã¯ã®äžéšã§ããå Žåã¯ã .env
ãªãŒããŒã©ã€ããããã docker-compose.yml
倿Žããããæ±ºå®ããå¿
èŠããããŸãã
ããããããã远å ãããã¹ãã§
4ã€ã®ååä»ãcomposeãã¡ã€ã«ïŒåããã£ã¬ã¯ããªå ïŒã䜿çšããå ±éã®åäžã®.envãã¡ã€ã«ããããŸãã ç°å¢å€æ°ã¯ãããŸããã ã·ã§ã«ã¹ã¯ãªããã¯ãããŸããã ç§ã¯ãã äœæ²ã䜿ããŸãã
ç§ã¯ããã奜ã
docker-compose -f service1.yml up -d
代ããã«ããã¯ãã®ãããªãã®ã§ã
docker-compose -f service1.yml up -d
# F#&$, forgot the -p flag. Curse the compose devs for 3 years of c#*$blocking
docker-compose -f service1.yml down
docker-compose -f service1.yml -p service1 up -d
@ schmunk42ããã¯ãdocker-composeã³ãã³ãããšã«ãããããcomposeãã¡ã€ã«åã«å ããŠã
ãµãŒãã¹ããšã«1ã€ã®ãã©ã«ããŒã䜿çšããŠããäžçªäžã®ãã©ã«ããŒã«.env
ãã¡ã€ã«ãä¿æããããšã¯ã§ããŸãããïŒ
docker-compose -f service1/docker-compose.yml up -d
docker-compose -f service2/docker-compose.yml up -d
ãããžã§ã¯ãåããã¡ã€ã«ïŒ-ãã¹ïŒã«æžã蟌ãã ãã§ãð
ãããããã ãã®ããã®é¡§å®¢ããŒã¹ãå€ãã£ãããšã¯æããã§ãã
ç§ãããªãã«ææ¡ããããšã®äœãåé¡ãªã®ãæããŠãã ããã
æåã¯åãæžå¿µããããŸããããå©çšå¯èœãªæ©èœã«åãããŠã¯ãŒã¯ãããŒã調æŽããŸããã
ç§ãã¡ã®ããŒã ã®èª°ãããéå»2幎éã«èª€ã£ãŠã¹ã¿ãã¯ã殺ããããšãèŠããŠããŸããã ãã®æ¹æ³ã§ãçŽ1.000åã®ã³ã³ãããŒãš1.000åã®èªåãŸãã¯æåã®åãããã€ã§200ãè¶ ããã¹ã¿ãã¯ãå®è¡ããŠããŸãã
ç§ã¯ããã«åå ããããããŸãã...ããããç§ã¯æµæã§ããŸããã
çŸåšã®ç¶æ³ãèãããšã解決çããšãååšããå¯èœæ§ãèãããšãæ£ããã解決çãšã®éã«ã¯éåžžã«éèŠãªéãããããŸãã ãã®åé¡ã«çŠç¹ãåœãŠãã¹ããªã®ã¯ããæ£ããã解決çãèŠã€ããããšã§ããããã¯ãç§ã«é¢ããéãããŸã åæããªã人ããããããããŸããããããªãæçœã§ãã
@ schmunk42 ïŒ
ç§ãã¡ã®ããŒã ã®èª°ãããéå»2幎éã«èª€ã£ãŠã¹ã¿ãã¯ã殺ããããšãèŠããŠããŸããã
ç§ã¯å°ããªããã°ãªããŸããã ããªãã¯äž¡æ¹ãšãcodemixçµç¹ã®äžéšã§ããããšãããããŸãã ããªãã¯ååã§ããïŒ èå°è£ã§2人ãrotflã§ãããã©ããçåã«æãå§ããŠããŸãã
çŸåšã¯ïŒåªå 床ã§ãœãŒãïŒïŒ
- -pã®å€
- ã䜿çšã®ç°å¢ããã®COMPOSE_PROJECT_NAMEã®å€
- .envãã¡ã€ã«ã®COMPOSE_PROJECT_NAMEã®å€
- çŸåšã®ãã£ã¬ã¯ããªå
æªéã®æè·è ã«ãªãããã«ããªããã®ãã§ã«æ··ä¹±ããŠããèšå®ã«5çªç®ã®ãã®ã远å ããã®ã§ããïŒ
ç§ãèŠãŠããåé¡ã¯ãçŸåšäœ¿çšå¯èœãª_ãã¹ãŠã®åäžã®å€_ã_ç°å¢åºæ_ã§ãããšããããšã§ãã ãããžã§ã¯ãåºæã®ãªãã·ã§ã³ãæäŸããæ¹æ³ã¯ãããŸããã
1 +2ã ã³ãã³ããåŒã³åºããŠãŒã¶ãŒãæåã§æäŸããå¿ èŠããããŸãã
.env
ã¯ç¡èŠããæ£åœãªçç±ã§å
±æããªãã§ãã ããã ïŒç§ã¯.env.example
å
±æããããšã§ãããåé¿ããŸãããããã§ã远å ã®æåæé ãå¿
èŠã§ããïŒç§ã®æèŠã§ã¯ããããŠãã®ã¹ã¬ããã®å€ãã®äººã¯ã3ãã4ã®éã«ååšãããªãã·ã§ã³ãããã¯ãã§ãããã®ãããžã§ã¯ãã§äœ¿çšãããŠããdocker-composeãã¡ã€ã«ã«ããã©ã«ãã®ãããžã§ã¯ãåãæå®ã§ããæåã®ãããžã§ã¯ããšããŠäœ¿çšãããŸããåŸéããã ãã®å€ã¯ããã®ãããžã§ã¯ããå±éãããã¹ãŠã®äººã«ãã£ãŠå ±æãããŸãã ãªãã·ã§ã³1ã3ã¯ãã®å€ãäžæžããããªãã·ã§ã³4ã¯æå®ãããŠããªãå Žåã«ã®ã¿äœ¿çšãããŸãã
@benjaminwoodãã®åé¡ã«ã€ããŠèª°ãç¬ã£ãŠããªãããšãä¿èšŒã§ããŸãã ã¯ããç§ãã¡ã¯ããªãé·ãéãäºããç¥ã£ãŠããŸãããããŠããã¯ç§ãã¡ãæ ¹æ¬çã«å察ããã®ã¯åããŠã§ã¯ãããŸããã ããã®äœäººãã®ãŠãŒã¶ãŒã«ã¯è¿·æã«èããããããããŸããããããã¯ç§ã®æå³ã§ã¯ãããŸããã å®éãç§ã¯èªåã®çµéšãå ±æãã解決çãææ¡ããããšæããŸãã ç§ã¯ãã®ãããã¯ã«ã€ããŠè±å¯ãªçµéšãæã£ãŠãããšæããŸãã ãã®æ©èœãææ¡ã©ããã«å°å ¥ãããå Žåãã»ããã¢ããã§çºçããå¯èœæ§ã®ãããšã©ãŒã®èšå€§ãªåå ãçºçããŸãã
@joshuajabbour
- å ±æããããšãã§ããŸãããå®éã«ã¯.envã¯ç¡èŠããæ£åœãªçç±ã§å ±æããªãã§ãã ããã
ããã¯ã»ããã¢ããã«ãã£ãŠç°ãªããŸããããã¹ãŠã®ãããžã§ã¯ããªããžããªã§ç¡èŠãããŠããŸãã
ãã ããã¹ããŒãžã³ã°ããã³æ¬çªã¹ã¿ãã¯ã®ã¿ã®ãªããžããªã§ã¯ç¡èŠããŸããã ããªãã¯ã§ã³ãããååãå
±æããå Žåã¯docker-compose.yml
ããªããã³ãããããããšãã§ããŸã.env
ïŒãã®ãã¡ã€ã«ã¯ã®ã¿ã§ãdocker-compose
-äœããªãã³ãã³ãïŒ
- äºå®äžã©ã³ãã ã§ããããŠãŒã¶ãŒ/ç°å¢ã«åºæã§ãã
docker-compose.yml
å€ãããå€ããå°ãªããã©ã³ãã ã§ã¯ãããŸãããã¹ã¿ãã¯æ§æãåäžã®ãã¡ã€ã«ã§ã¯ãªãããã©ã«ããŒãšããŠè¡šç€ºããå¿
èŠããããŸãã ãã®å Žåã .env
ååãä»ãããããµããã©ã«ããŒåãä»ããããšãã§ããŸãã
æåŸã«ãã1ã€éžæè¢ããããŸãã
docker stack deploy -c docker-compose.yml the-project-name
ïŒ*ïŒã¹ãŠã©ãŒã ã¢ãŒãã§ã®ã¿äœ¿çšå¯èœ
å°æ¥ããããžã§ã¯ãåãyml
ãã¡ã€ã«ã«é
眮ããæ¹æ³ãããããŸãããããã¯ãã¹ã¿ãã¯å®çŸ©ã®æŠå¿µãšå®å
šã«ççŸã
@ schmunk42ã«æè¬ããŸãã ãã®ã¹ã¬ããã«è¡šç€ºããããã¹ãŠã®åŒ·ãæèŠã®äžã§ãããªããšããªãã¯ç©äºãéåžžã«ããŸãåŠçãããšæããŸãã
ã»ããã¢ããã§çºçããå¯èœæ§ã®ãããšã©ãŒã®èšå€§ãªåå ãçºçããŸãã
æŠãããããŸãã åé¡ãéããŸãã
ããã¯ã»ããã¢ããã«ãã£ãŠç°ãªããŸããããã¹ãŠã®ãããžã§ã¯ããªããžããªã§ç¡èŠãããŠããŸãã ãã ããã¹ããŒãžã³ã°ããã³æ¬çªã¹ã¿ãã¯ã®ã¿ã®ãªããžããªã§ã¯ç¡èŠããŸããã
ããã§ãä»ã®èª°ããæãã§ãããã®æ©èœã¯ãããªãã®å€ãã£ããªããžããªã¢ãŒããã¯ãã£ãå£ããŠããŸãã®ã§ãå°å ¥ãã¹ãã§ã¯ãããŸãããïŒ
ã³ãããããªããååãå ±æããå Žåã¯
docker-compose.yml
ããªããã³ãããããããšãã§ããŸã.env
ïŒ -äœããã®ãã¡ã€ã«ãå¯äžã®ãããã³ã°ãŠã£ã³ããŠ-ã³ã³ã³ãã³ãã®ã§ããïŒã
ãããšãç§ã®.env
ãã¡ã€ã«ã®å¯äžã®ãã®ãCOMPOSE_PROJECT_NAME
ã ã£ããšããããããã§ãã ããããã³ãããããããªãä»ã®å€ãã®_secure_倿°ãå
¥åãããŠããŸãã ãããŠãããããdocker-composeã«environment
ããããã£ã䜿çšããŠã€ã³ããŒãããŸãã ããã.env
ãã¡ã€ã«ã®äžè¬çãªç®çã§ã...
ç§ã®ææ¡ã§ã¯ããã£ã¬ã¯ããªããååŸããããã©ã«ãã®ãããžã§ã¯ãåãäžæžãããã ããªã®ã§ããããã»ããã¢ãããã©ã®ããã«å£ãã®ãã¯ãŸã ããããããŸããã ãããŠãããã«äŸåããŠããå ŽåïŒãªããžããªãè€è£œããããã£ã¬ã¯ããªã§ã¯ãªãããªããžããªã«ã³ãããããããã£ã¬ã¯ããªã§ããããïŒãdocker-compose.ymlèšå®ã«ãã£ãŠã©ã®ããã«ãªãŒããŒã©ã€ããããŸããïŒãããã³ããããããŠããããïŒããªãã®ãªããžããªã«;ããªãã¯ããªãã®ã·ããªãªã§äž¡æ¹ã®ãã®ãå¶åŸ¡ããŸãïŒïŒ
@ schmunk42ããªãã®èšãããšã¯ããæ°ããæ©èœã¯å¿ èŠãªãããã以å€ã®å Žåã¯ããããžã§ã¯ãã®ã»ããã¢ãããçè§£ã§ããªããªã£ãããã ããšããããšã§ãã
çå£ã«ïŒ ããã¯ããããå¿ èŠãšããä»ã®ãã¹ãŠã®äººã«ãªãã§ãã£ãŠãããããçç±ã§ãã
念ã®ããã«èšã£ãŠãããŸãããç§ãããã«ããŸãã æ°è»œã«åé¡ã解決ããŠãã ããã ããã§ã®è°è«ã¯ç¡æå³ã«ãªããŸããã
ããã§ãä»ã®èª°ããæãã§ãããã®æ©èœã¯ãããªãã®å€ãã£ããªããžããªã¢ãŒããã¯ãã£ãå£ããŠããŸãã®ã§ãå°å ¥ãã¹ãã§ã¯ãããŸãããïŒ
ç§ã¯ãããã远å ã®ãšã©ãŒã®åå ãããããå¯èœæ§ããããšããæžå¿µã衚æããŠããŸãã
ãããšãç§ã®.envãã¡ã€ã«ã«ããã®ãCOMPOSE_PROJECT_NAMEã ãã ã£ãå Žåã¯ãããã§ãã ããããã³ãããããããªãä»ã®å€ãã®å®å šãªå€æ°ãå ¥åãããŠããŸãã ãããŠãenvironmentããããã£ã䜿çšããŠããããdocker-composeã«ã€ã³ããŒãããŸãã
䜿çšsecrets.env
ã®ããã®ãã®ãšãçµç±ããŠããããã€ã³ããŒãenv_file
ã
ããã¯ã¯ãŒã¯ãããŒã«ã©ã®ããã«åœ±é¿ããŸããïŒ
ããã¯ã.envãã¡ã€ã«ã®äžè¬çãªç®çã§ã...
æ¬åœã§ã...ããããåé¡ã¯docker-compose
ã.env
ãã¡ã€ã«ãä¹ã£åããšããããšã ãšæããŸãã
ãããã®å€æ°ã«å ããŠã IMAGE_VERSION
ãªã©ã®docker-compose.yml
ã®ãããã¬ãã«ã§äœ¿çšããã倿°ãã docker-compose.env
ãšãããã¡ã€ã«ã«èšå®ã§ãããšããããã©ãã§ããããã
ç§ã¯ãããŠCOMPOSE_COMMAND_ENV_FILENAME=.env
ãææ¡ããããšã¯ãããŸãã-ä»ãŸã§:)
ç§ã¯ãŸã ãããããªãã®ã»ããã¢ãããã©ã®ããã«å£ãã®ãæ¬åœã«çè§£ããŠããŸãã...
ãããããã«å£ããªãã®ã¯äºå®ã§ãããããã¯åã«ç§ã®æåã®ãã€ã³ãã«ã€ããŠã§ãããããã«å€ãã®ãªãã·ã§ã³ãå°å ¥ããŠããŸãã
è€æ°ã®ãã¡ã€ã«-f docker-compose.A.yml
-f docker-compose.B.yml
ã䜿çšããããšãèããŠã¿ãŠãã ãããããšãã°ãAããããžã§ã¯ãã§ããããã£ã¬ã¯ããªããšã«ãããžã§ã¯ãåã«äŸåããŠãããšããŸãïŒå¶åŸ¡ããããããããè¡ããŸãïŒã project_name: extra
ã®è¿œå ãµãŒãã¹ã®ã»ããããããžã§ã¯ãåãCOMPOSE_PROJECT_NAME=testing
ã§äžæžããã.env
ãã¡ã€ã«ã®ãããã©ã«ããŒã§ãã¹ãäžã«èª€ã£ãŠå°å
¥ãããŸããã
ãããã .env
ãã¡ã€ã«ãªãã§éå§ããããããžã§ã¯ãã¯ã extra
ãšããååã«ãªããŸãã ð¥
è€æ°ã®*.env
ãã¡ã€ã«ãå«ããè€æ°ã®ã¬ãã«ã§ãã¡ã€ã«ãããŒãžããŠããŸããããã¯éåžžã«æå¹ãªãŠãŒã¹ã±ãŒã¹ã§ãã
çå£ã«ïŒ ããã¯ããããå¿ èŠãšããä»ã®ãã¹ãŠã®äººã«ãªãã§ãã£ãŠãããããçç±ã§ãã
èŠåïŒãããã¯ããå°ãå€ããŠããŸãããDockerã«é¢é£ããŠããŸã...
@mikehaertlç§ã¯ããªããããããã®ããã«èŠãŠããã®ã ããããšæ¬åœã«æã£ãŠããŸã;ïŒ
ã¿ãªããã
ç§ãã¡ã¯ãã®ã¹ã¬ããã§ç±å¿ãªè°è«ãåãäžããŸããïŒãããç€Œåæ£ããå¿ã®ããã£ããã®ã«ããŠãããçããã«æè¬ããŸãïŒïŒãããŠãããžã§ã¯ãåã¯Composeãã¡ã€ã«å ã«å±ããŠããªããšåºæ¬çã«ä¿¡ããŠããŸãããç§ãã¡ã¯äœãæãã€ããã®ã§ããïŒç§ãã¡ã¯ã次ã®PRã§åççãªäžéç¹ã§ãããšä¿¡ããŠããŸãïŒïŒ5378ã ãšã¯èšããã®ã®ããããããªãã®ããŒãºã«ç¢ºå®ã«çããããããã«ãããã«ã€ããŠã®ãã£ãŒãããã¯ãããã ããã°å¹žãã§ãã
èŠç¹ã¯æ¬¡ã®ãšããã§ãã
x-project-name
ãšã³ããªã远å ã§ããŸãã ãã®ããŒã¯ããã©ã«ãã§ã¯ç¡èŠãããŸãã.env
ãã¡ã€ã«ïŒã«COMPOSE_X_PROJECT_NAME
ãèšå®ãããŠããå ŽåãComposeã¯Composeãã¡ã€ã«å
ã®x-project-name
ãšã³ããªãããããžã§ã¯ãåãååŸããããšããŸããCOMPOSE_PROJECT_NAME
ããã³--project-name
ãããäœããªããŸããããã«é¢ãã質åãæžå¿µã«åãã§ãçãããŸãã
@ shin-ã§ã¯ãæ©èœãã¢ã¯ãã£ãã«ããã«ã¯ã COMPOSE_X_PROJECT_NAME
ã1
ã«èšå®ããå¿
èŠããããŸããïŒ
ãããããªãã COMPOSE_ENABLE_X_PROJECT_NAME
ãèããã¹ãååãããããŸãããããããã¯ç§ã®2ã»ã³ãã§ã-ãšã«ããããã䜿çšããŸããð
@ schmunk42 ãtruth-yãã®å€ãªãã©ãã§ãæ©èœããŸãããããã§ãããããã¢ã€ãã¢ã§ãã
@matsamanãã£ãããã䟿å©ã§å®çšçãªãã£ãŒãããã¯ãããããšãã
ãšã³ããŠãŒã¶ãŒã«å€æ°ãèšå®ããããã©ã¡ãŒã¿ãåŒã³åºãããã«æç€ºããå¿ èŠããããšèšã代ããã«ããšã³ããŠãŒã¶ãŒã«å€æ°ãèšå®ããããã©ã¡ãŒã¿ãåŒã³åºãããã«æç€ºããå¿ èŠããããšèšã£ãŠããŸãã
æ£çŽãªãšããããããŠæ¬åœã«äœã®æå³ããããŸããããããªãããããã©ã®ããã«è§£æ±ºçãšèããŠããã®ãæ³åã§ããŸããã
@ shin-ãã®å€æŽãã©ã®ããã«æçšãªéãããããããªããã説æããŸãïŒ
äœæãã¡ã€ã«ã§ãããžã§ã¯ãåãæ€çŽ¢ã§ããããã«ç°å¢å€æ°ãèšå®ããå¿ èŠãããããšã¯ããããžã§ã¯ãåèªäœã«ç°å¢å€æ°ãèšå®ããããšãšã»ãŒåãã§ã{äœæ¥éãå¿åŽã®ãªã¹ã¯ãããã³å©äŸ¿æ§}ã
äœæãã¡ã€ã«ã«ãããžã§ã¯ãåãèšå®ããããšã®èŠç¹ã¯ãç°å¢å€æ°ã䜿çšããå¿ èŠããªãããã«ããããšã§ãã ãããžã§ã¯ãåç°å¢å€æ°ã®åªå é äœã䜿çšããŠãäœæãã¡ã€ã«å ã®ãããžã§ã¯ãåããªãŒããŒã©ã€ããããªãã·ã§ã³ããŠãŒã¶ãŒã«äžããããšãã§ããŸãã
BCãå£ãããäžèšã®ããã«ããŒãžäžã«ãšã©ãŒãçºçããã®ãåé¿ã§ãããããéåžžã«åªãããœãªã¥ãŒã·ã§ã³ã ãšæããŸãã
äœæãã¡ã€ã«ã§ãããžã§ã¯ãåãæ€çŽ¢ã§ããããã«ç°å¢å€æ°ãèšå®ããå¿ èŠãããããšã¯ããããžã§ã¯ãåèªäœã«ç°å¢å€æ°ãèšå®ããããšãšã»ãŒåãã§ã{äœæ¥éãå¿åŽã®ãªã¹ã¯ãããã³å©äŸ¿æ§}ã
ããã§ã¯ãããŸããããã®èšå®ã¯ãç°å¢å ã§ã°ããŒãã«ã«1åè¡ãããšãã§ããŸãããã¹ãŠã®ãããžã§ã¯ãã§ãããè¡ãå¿ èŠã¯ãããŸããã
ããã§ã¯ãããŸããããã®èšå®ã¯ãç°å¢å ã§ã°ããŒãã«ã«1åè¡ãããšãã§ããŸãããã¹ãŠã®ãããžã§ã¯ãã§ãããè¡ãå¿ èŠã¯ãããŸããã
ç§ã¯ããªããããªãã®ã³ã³ãã¥ãŒã¿äžã§ã¹ããŒã³ããããªãã®ãã¹ãŠã®ã·ã§ã«ã§ã°ããŒãã«ã«æå³ããŠãããšä»®å®ããŠããŸãã ãããããšããŸã£ããé¢ä¿ã®ãªããããžã§ã¯ãã§æãŸãããªãåäœãçºçããå¯èœæ§ããããŸãã ãŸããéçºè ãããŒãžã§ã³ç®¡çãããããžã§ã¯ãããã«ããç°å¢å€æ°ã®èšå®ãå¿ããå Žåã«ãæ··ä¹±ãçããŸãã
äœæãã¡ã€ã«ã«ãããžã§ã¯ãåãå«ããããšã®æãéèŠãªç®æšã®1ã€ã¯ãäœæãããžã§ã¯ãã«é¢ä¿ãããã¹ãŠã®å€æ°ãããŒãžã§ã³ç®¡çã«æ ŒçŽãããããã«ããããšã§ãã
@nhooey @matsaman
ããã¯ç¹ã«ãåããã£ã¬ã¯ããªã«è€æ°ã®äœæãã¡ã€ã«ãããã .env
ãã¡ã€ã«ãœãªã¥ãŒã·ã§ã³ãéžæã§ããªãäººãæ¯æŽããããšãç®çãšããŠããŸãã ãããžã§ã¯ãã§ãããåžžã«ãªã³ã«ããå¿
èŠãããå Žåã¯ã .env
ãã¡ã€ã«ã .profile
ããŸãã¯x-project-name
ãåžžã«äœ¿çšãããããã«ãããã®ä»ã®å Žæã«ç°¡åã«èšå®ã§ããŸããèæ
®ã«å
¥ããŸãã
ãšã³ããŠãŒã¶ãŒã«å€æ°ãèšå®ããããã©ã¡ãŒã¿ãåŒã³åºãããã«æç€ºããå¿ èŠããããšèšã代ããã«ããšã³ããŠãŒã¶ãŒã«å€æ°ãèšå®ããããã©ã¡ãŒã¿ãåŒã³åºãããã«æç€ºããå¿ èŠããããšèšã£ãŠããŸãã
ããã«é¢ããç§ãã¡ã®äž»ãªé¢å¿äºã¯ãããšã³ããŠãŒã¶ãŒããç¬èªã®ãããžã§ã¯ããæã£ãŠãããååã®ç«¶åã絶察ã«é¿ããããšããããšã§ãã ãã®ç¹ã§ã圌ãã¯ãã£ã¹ããªãã¥ãŒã¿ãŒã§ã¯ãªãããããžã§ã¯ãåã管çããå¿
èŠããããŸãã ãã¿ãŒã³ããŒããããžã§ã¯ãã顧客ã«åºè·ããå Žåãé¢é£ãã.env
ãã¡ã€ã«ã«COMPOSE_X_PROJECT_NAME
ãèšå®ããããšãåæ§ã«ç°¡åã§ãããããã£ãŠãæ£çŽã«èšããšãããã®ã©ã®éšåãæžå¿µäºé
ã§ãããæ··ä¹±ããŠããŸãã
ãããããšããŸã£ããé¢ä¿ã®ãªããããžã§ã¯ãã§æãŸãããªãåäœãçºçããå¯èœæ§ããããŸãã
äŸãæããŠããã ããŸããïŒ ã·ã§ã«ã«COMPOSE_X_PROJECT_NAME
ãèšå®ããã ãã§ã¯ãæãŸãããªãåäœã¯èããããŸããã
äœæãã¡ã€ã«ã«ãããžã§ã¯ãåãå«ããããšã®æãéèŠãªç®æšã®1ã€ã¯ãäœæãããžã§ã¯ãã«é¢ä¿ãããã¹ãŠã®å€æ°ãããŒãžã§ã³ç®¡çã«æ ŒçŽãããããã«ããããšã§ãã
ãªã.env
ã䜿çšã§ããªãã®ã§ããïŒ .env
ãããŒãžã§ã³ç®¡çã«ä¿åããããšãçŠæ¢ãã人ã¯èª°ãããŸããïŒã¯ããããã¯äžè¬çã§ã¯ãããŸããïŒã
æåã¯.env
ã§ããã ããªãã¯æããã«äŒè©±å
šäœãéããŸããã
@matsamanããªãã¯çå£ã«ããªãã®æ 床ã
æ··ä¹±ã®ããã€ããæç¢ºã«ããããã«
ããªãã¯ãã§ã«ãããããããšãã§ããŸã
以åã¯ãç°å¢å€æ°ã䜿çšããŠãããžã§ã¯ãåãèšå®ã§ããŸããã æ°ããç°å¢å€æ°ã¯ååã§ã¯ãªããäœæãã¡ã€ã«ã«ãããžã§ã¯ãåãèšå®ã§ããæ©èœãæå¹ã«ãããã°ã«ã§ãã
ç§ã¯ããªããããªãã®ã³ã³ãã¥ãŒã¿äžã§ã¹ããŒã³ããããªãã®ãã¹ãŠã®ã·ã§ã«ã§ã°ããŒãã«ã«æå³ããŠãããšä»®å®ããŠããŸãã ãããããšããŸã£ããé¢ä¿ã®ãªããããžã§ã¯ãã§æãŸãããªãåäœãçºçããå¯èœæ§ããããŸãã
ãä»ã®ãããžã§ã¯ãããšããæå³ã§ã¯ããäœæ²ãããŠããªããã®ããããèªãã§å£ããŠããŸãããšããã®ã¯çŸå®çã§ã¯ãªããšæããŸãã ãã¹ãŠã®ã·ã§ã«ã«ã¯ããããã®ç°å¢å€æ°ãèšå®ãããŠããŸãã ç°å¢å€æ°ã¯ããCOMPOSE_X_ããšããŠé©åã«åå空éãä»ããããŠããŸãã
ãä»ã®äœæãããžã§ã¯ãããæå³ããå Žåããã®å€æ°ãå¿ èŠãªçç±ã«ã€ããŠå®éã«è°è«ããŠãããšæããŸãã ãã®æ©èœãããã©ã«ãã§æå¹ã«ãªã£ãŠããå ŽåãçŸåšã®ããã©ã«ãã®åäœã«äŸåããŠãã人ã¯ã ãã§ãå£ããŠããŸããŸãã
ã©ã¡ãã§ããªãå Žåã¯ãæç¢ºã«ããŠãã ããã
ãŸããéçºè ãããŒãžã§ã³ç®¡çãããããžã§ã¯ãããã«ããç°å¢å€æ°ã®èšå®ãå¿ããå Žåã«ãæ··ä¹±ãçããŸãã
ãããžã§ã¯ããç¹å®ã®ãããžã§ã¯ãåã§ã®ã¿æ©èœããå Žåã¯ãä»ã«ãåé¡ããããšæããŸãã ãããžã§ã¯ããåäžã®ååã§ã®ã¿æ©èœããå Žåã¯æ±ºããŠãããŸããã
ããã¯ããããžã§ã¯ãåãäœæãã¡ã€ã«ã«å ¥ããªãããã®ãã1ã€ã®åŒæ°ãšèããŠããŸãã ãããžã§ã¯ãåãäœæãã¡ã€ã«ã«ããå Žåã2ã€ã®ãããžã§ã¯ãã§åãååã䜿çšãããç«¶åãçºçããŠäž¡æ¹ã®ãããžã§ã¯ããç Žæããå¯èœæ§ããããŸãã ååã¯ãä»ã®ãããžã§ã¯ãåããã§ã«äœ¿çšãããŠããããšãç¥ã£ãŠããéçºè ãå®éã«èšå®ããå¿ èŠããããŸãã
æ®å¿µãªããã1幎以äžåã«ãã§ã«è¿°ã¹ãçç±ãããããã¯ç§ã«ãšã£ãŠã圹ã«ç«ã¡ãŸããã
ç°å¢å€æ°ãå«ããœãªã¥ãŒã·ã§ã³ã§ã¯ãæåã«ããããäœæããæ¹æ³ãç¥ãå¿ èŠããããŠãŒã¶ãŒãå¿ èŠã«ãªããŸãã ä¿¡ããããªããããããŸããããã¿ãŒããã«å ã§å šå¡ãåããŠããããã§ã¯ãããŸããã ç¹°ãè¿ããŸããããªããžããªã«.envãé 眮ããããšã¯ç§ã«ãšã£ãŠãªãã·ã§ã³ã§ã¯ãããŸããã
docker-composeã®çŸããã¯up
ã§ãã ãã®é話ãèšå®ããæ¹æ³ã«ã€ããŠã®èª¬æã§ã¯ãããŸããã
@fiveanddone
ç¹°ãè¿ããŸããããªããžããªã«.envãé 眮ããããšã¯ç§ã«ãšã£ãŠãªãã·ã§ã³ã§ã¯ãããŸããã
ãããæ¡åŒµã§ããŸããïŒ æè¡çãªç¥èãå°ãªããŠãŒã¶ãŒã«ã€ããŠã¯å®å
šã«è³ã«ããŸããããŠãŒã¶ãŒãã³ãŒããç°å¢ãšå¯Ÿè©±ããããšãæå³ããŠããªãå Žåããããžã§ã¯ãã«.env
ãã¡ã€ã«ãå«ããããšãåé¡ã«ãªãã®ã¯ãªãã§ããïŒ
@ shin-ãããåé¡ãããŸããã
ãã®ãã¡ã€ã«ããªããžããªã«å«ããŠããå ŽåããããŸãããåžžã«æ©èœãããšã¯éããŸããã ç§ã®ãŠãŒã¹ã±ãŒã¹ã¯äž»ã«ãéçºè ã®æè¡çç¥èã倧ããç°ãªãå¯èœæ§ãããWebéçºã«é¢ä¿ããŠããŸãã
.env
ã¯ãä»ã®ãã¬ãŒã ã¯ãŒã¯ã§äœ¿çšããããã©ã¡ãŒã¿ãŒãæ ŒçŽãããŠããŸãã .env
å
ã®å€æ°ã®ããã€ãã¯ãSMTPãªã©ã®å€éšãµãŒãã¹ã®è³æ Œæ
å ±ã§ãã ç§ã®ããŒã ã®éçºè
ã®ã»ãšãã©ã¯ãç¬èªã®.env
ãã¡ã€ã«ã䜿çšããŠããããã®ãµãŒãã¹ãç¬èªã®ãšã³ããã€ã³ãã«ãã€ã³ãããŠããŸãã .env
ããªãå Žåã¯ãããã©ã«ãããããŸãã
CSSã倿Žãããã ãã®æè¡çã§ãªãéçºè
ã«ãšã£ãŠãã¢ããªã±ãŒã·ã§ã³ã¯.env
ãã¡ã€ã«ããªããŠãåé¡ãªãåäœããŸãã ããã¯ããã¹ãŠã®ãããžã§ã¯ããã©ã«ãã«åãååãä»ããããŠããããã§ã¯ãªãããšãåæãšããŠããŸãã :)
ããã»ã©å€ãã¯ãªãããã«æããããããããŸããããå šåœã«ãŸãããè€æ°ã®éçºè ããã¶ã€ããŒãšä»äºãããŠããå Žåã¯ãã·ã³ãã«ã§ããã»ã©è¯ãã§ãããã
Dockerã¯ç§ã®äººçããšãŠã楜ã«ããŠãããŠããã®ãããžã§ã¯ãã«ãšãŠãæè¬ããŠããŸããããã®ã¹ã¬ããã®åšãã®ãã©ã¹ãã¬ãŒã·ã§ã³ã«é¢ä¿ããããšãã§ããŸãã
@fiveanddoneæŽå¯åãããããšãïŒ ããã§ã .env
ãã¡ã€ã«ã代ããã«docker-compose.env
ïŒãŸãã¯åæ§ã®ãã®ïŒãšåŒã°ããå Žåãããã¯ããªãã®æžå¿µã軜æžããŸããïŒ
@ shin-
ã¯ããããã¯ç§ã®ãŠãŒã¹ã±ãŒã¹ã«åœãŠã¯ãŸããŸãã
envãã¡ã€ã«ã¯DockerComposeã«ãã£ãŠèªåçã«ããŒããããŸããïŒ
ããã§ãªãå Žåã docker-compose.env
ãèªåçã«ããŒãã§ããŸããïŒ
@nhooey .env
ãšããååã®å Žåãenvãã¡ã€ã«ã¯èªåçã«ããŒããããŸãã ãŸãããµãŒãã¹ããšã«åå¥ã«envãã¡ã€ã«ãæå®ããããšãã§ããŸãã ããã¥ã¡ã³ããåç
§ããŠãã ããã
.envãšããååã®å Žåãenvãã¡ã€ã«ã¯èªåçã«ããŒããããŸãã ãŸãããµãŒãã¹ããšã«åå¥ã«envãã¡ã€ã«ãæå®ããããšãã§ããŸãã ããã¥ã¡ã³ããåç §ããŠãã ããã
ããã§ã¯ããããã«ãŒã§ã¯ãããŸããããããã¯å®éã«ã¯æ£ãããããŸããã ãããŠç§èŠã¯ããããã¯å šäœã®èª€è§£ã®æå€§ã®åå ã§ãã
.env
ã®å€æ°ã¯ãæç€ºçã«è»¢éããªãå Žåãããããã䜿çš
env_file:
- .env
ãŸãã¯
environment:
- VAR_FROM_DOTENV
- FOO=${ANOTHER_VAR_FROM_DOTENV}
.env
ãã¡ã€ã«ã¯èªåçã«ããŒããããŸããã¯ãããã ãã远å ã®æ§æãè¡ããªããšããããã®ComposeCLIç°å¢å€æ°ã«ã®ã¿é©çšãã
ãããããã©ã«ãã§docker-compose.env
åå倿Žããããšã匷ããµããŒãããŸããããã¯ããã®å€æ°ã§ããããã1ã€ã®ENV
ïŒãããç€Œåæ£ããå¿ã®ããã£ããã®ã«ããŠãããçããã«æè¬ããŸãïŒïŒ
ç§ã¯ããªãã®èšãããšãèããŸãããããŠç§ã¯ãã€ãç§ã®èœã¡çããä¿ã€ãšã¯éããªããšãã眪ãç¯ããŠããŸãã ãã®ããã«æ®å¿µã ããã€ãã®ã³ã¡ã³ãã¯æã æ¬åœã«ç§ãå§ããããŸã...ããã§ããŸãããã§ãããã
ãããžã§ã¯ãåãäœæãã¡ã€ã«ã«ããå Žåã2ã€ã®ãããžã§ã¯ãã§åãååã䜿çšãããç«¶åãçºçããŠäž¡æ¹ã®ãããžã§ã¯ããç Žæããå¯èœæ§ããããŸãã
ããã«é¢ããç§ãã¡ã®äž»ãªé¢å¿äºã¯ãããšã³ããŠãŒã¶ãŒããç¬èªã®ãããžã§ã¯ããæã£ãŠãããååã®ç«¶åã絶察ã«é¿ããããšããããšã§ãã ãã®ç¹ã§ã圌ãã¯ãã£ã¹ããªãã¥ãŒã¿ãŒã§ã¯ãªãããããžã§ã¯ãåã管çããå¿ èŠããããŸãã
@ shin-ããã¯äžè¬çã«åæãããŠããããã«èãããŸããã docker-compose.yml
ã¯åžžã«ãããžã§ã¯ãã®äžéšã§ããããããžã§ã¯ããªããžããªã«ååšããŸãã ããã¯å¿
ãããçå®ã§ã¯ãªããšæããŸãã docker-compose.yml
å
±æããªã人
ãŸãããååã®ç«¶åãåé¿ãããã«ã€ããŠïŒãããžã§ã¯ãåãšã®ååã®ç«¶åã®ä»£ããã«ããã¡ã€ã«ã·ã¹ãã ã¬ãã«ã§ïŒIMOïŒããé倧ãªååã®ç«¶åãçºçããŸããã .env
ã¯ããããžã§ã¯ãããããžã§ã¯ããå®çŸ©ããããã«äœ¿çšããäžè¬çãªååã§ããã¢ããªåºæã®èšå®ã éçºè
ãæ¬åœã«ãããããã®ã§ãªãéããDockerèšå®ã§æ±æãããã¹ãã§ã¯ãããŸããã ãã ãããã®æ±ºå®ã¯éçºè
ã«ä»»ããå¿
èŠããããŸãã
ææ¡ã¯æ¬¡ã®ãšããã§ãããããžã§ã¯ãåã«ä»ã®2ã€ã®ãªãã·ã§ã³ã远å ãã docker-compose.yml
V4ã§.env
䜿çšãéæšå¥šã«ããã®ã¯ã©ãã§ããïŒ äžã€ã¯ã project_name
ã§docker-compose.yml
ãå¥ã®ãã¡ã€ã«ã§ãã.dockerproject
åã®ã¿ãå«ãŸããŠããŸããããªããžããªã«æåºãã¹ãã§ã¯ãªã決ããŠã ããŒã«ã«ãã¡ã€ã«ã§ããå¿
èŠããããŸãã
åªå é äœã«ã€ããŠã®ç§ã®ææ¡ã¯æ¬¡ã®ãšããã§ãïŒæåã«æé«ïŒïŒ
-p
CLIåŒæ°.dockerproject
ãã¡ã€ã«project_name
ã§docker-compose.yml
ïŒããã°ãé¿ããã¹ãã§ããdocker-compose.yml
ãããžã§ã¯ããšäžç·ã«é
åžãããŸãïŒCOMPOSE_PROJECT_NAME
COMPOSE_PROJECT_NAME
ãã.env
ïŒéæšå¥šïŒãã®ããã«ããŠã誰ãã忣docker-compose.yml
ããŒãã³ãŒãã£ã³ã°ããå Žåã§ãããšã³ããŠãŒã¶ãŒã¯åžžã«.dockerproject
ãããžã§ã¯ãåãäžæžãã§ããŸãã
æŽæ°ïŒ .dockerproject
代ããã«.dockerenv
ãŸãã¯docker.env
ã䜿çšããŠç掻ããããšãã§ããŸãã ãã ããåé¡ã解決ããã«ã¯åªå
é äœãé«ãããå¿
èŠããããŸããããã§ã¯ã docker-compose.yml
ããŒãã³ãŒãããããããžã§ã¯ãåããªãŒããŒã©ã€ãããå¿
èŠããããŸãã
ããã«ã¡ã¯ãã¿ããªã
ãŸãããã®ã±ãŒã¹ãèŠãŠããã@dnephinãš@ shin-ã«æè¬ããŸãã @ shin-ãéä¿¡ãã倿Žã¯ããã®åé¡ã解決ããããã®å€§ããªäžæ©ã®ããã«èŠããŸãã
次ã®ãŠãŒã¹ã±ãŒã¹ã«ã€ããŠããã¹ããããžã§ã¯ãã§PR 5378ãæ€èšŒããŸããïŒ A default project name defined by the project, that can be checked in
ïŒhttps://github.com/docker/compose/issues/745#issuecomment-282858900ïŒã ãã®ããã«ãããŸããŸãªå¯èœæ§ã瀺ãgitãªããžããªãäœæããŸããïŒ https ïŒ
ãŠãŒã¹ã±ãŒã¹ãéšåçã«ã«ããŒããŠããPRïŒ5378ãèŠã€ããŸããã åé¡ã¯ããœãªã¥ãŒã·ã§ã³ã«COMPOSE_X_PROJECT_NAME
env倿°ãå¿
èŠãªããšã§ãã å¯èœãªè§£æ±ºçïŒ
.env
ãã¡ã€ã«ã詊ããŸããããdocker-composeãå¥ã®å ŽæããåŒã³åºãããå Žåã¯æ©èœããŸããïŒã³ãã³ãã®äŸããã¡ã€ã«ã®äœæãåç
§ïŒdefined by the project, that can be checked in
ãœãªã¥ãŒã·ã§ã³ã§ã¯ãããŸãããããŸãããã°ãããã§åãäžãããŠãŒã¹ã±ãŒã¹ã説æããããšãã§ããŸããã
芪æãªãã¡ã³ãããdocker-composeãã¡ã€ã«ã«ãªãã·ã§ã³ã®project_name
ããããã£ãå°å
¥ããPRïŒ5369ã«ãã£ãŠãŠãŒã¹ã±ãŒã¹ãã©ã®ããã«è§£æ±ºãããããæ€èšããŠãã ããã ãã®ããããã£ã®åªå
床ã¯äœããªããŸãããç°å¢ãäœæ¥ãã£ã¬ã¯ããªã«ã¯äŸåããŸããã
- å¥ã®ãªãã·ã§ã³ã¯ãããŸããïŒ
ãã®ãªãã·ã§ã³docker-compose --project-directory <PATH>
ïŒä»£æ¿äœæ¥ãã£ã¬ã¯ããªãæå®ïŒããããŸãã .env
ãã¡ã€ã«ã§ãæ©èœããã¯ãã§ãã
å¥ã®åŸ®åŠãªãŠãŒã¹ã±ãŒã¹ãããã¯ã¹ã«è¿œå ããã«ã¯ïŒ
ç§ã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ã2ã€ã®ãªããžããªããããŸãã1ã€ã¯ã¡ã€ã³ãããžã§ã¯ãïŒãã«ã/ãããã€ã«äœ¿çšïŒçšã§ããã1ã€ã¯devopsïŒDockerfileãdocker-compose.ymlãªã©ãå«ãïŒçšã§ãã
çŸåšã®ã»ããã¢ããã§ã¯ãã¡ã€ã³ãããžã§ã¯ããªããžããªã¯ã«ãŒã./ã«ãããdevopsãªããžããªã¯ãµããã£ã¬ã¯ããª./devops/ã«ãã§ãã¯ã¢ãŠããããŠããŸãã
ãã®èšå®ã§ã¯ã.envãã¡ã€ã«ã®äœ¿çšã¯æ¬¡ã®ããã«ããå¿ èŠãããããæ©èœããŸããã
docker-composeã³ãã³ããå®è¡ããããã©ã«ããŒïŒçŸåšã®äœæ¥ãã£ã¬ã¯ããªïŒã«é 眮ãããŸãã
ïŒããã¥ã¡ã³ãåç §ïŒ
docker-compose -f devops/docker-compose.yml
ãšããŠåŒã³åºããããããããã¯æ©èœããŸããã
ãã¡ãããããã«-pãã©ã¡ãŒã¿ãŒã远å ããããšãã§ããŸããããã¯çŸåšäœ¿çšããŠãããã®ã§ãããäžèšã§åç
§ããããã«äººçºçãšã©ãŒãçºçãããããªããŸãã
.envïŒãŸãã¯ææ¡ãããdocker-compose.envïŒãã¡ã€ã«ãdocker-compose.ymlãšåããã£ã¬ã¯ããªããèªã¿åãããšãã§ããã°ãããã§ãããžã§ã¯ãåãå®çŸ©ããããšã§ããŸãããã§ãããã
docker-compose.ymlå ã§env_fileãã£ã¬ã¯ãã£ãã䜿çšããŠãæ©èœããŸãããããã¯ããããã®env倿°ãã³ã³ãããŒå ã§ã®ã¿é©çšãããã³ã³ãããŒã®äœæã«ã¯é©çšãããªãããã§ãã
æçµçã«ãç§ã®ç®æšã¯ãå®éã®ãããžã§ã¯ãã³ãŒãããŒã¹ãæ±æããªãæ¹æ³ã§ãdevopsé¢é£ã®ãã¡ã€ã«ãèªå·±å®çµåã«ä¿ã€ããšã§ããããã®ãªããžããªãšäžŠè¡ããŠã¢ã¯ã»ã¹/å®è¡ããããšã¯ã§ããŸãã
ãã®ãªãã·ã§ã³ããããŸãdocker-compose--project-directory
ïŒä»£æ¿ã®äœæ¥ãã£ã¬ã¯ããªãæå®ããŸãïŒã .envãã¡ã€ã«ã§ãæ©èœããã¯ãã§ãã
@ schmunk42ã¯è¯ãã·ã§ãããããããŸãããã --project-directory
ã¯.envãã¡ã€ã«ã§ã¯æ©èœããŸããã æ¬¡ã®ããã«è©ŠããŸãããã.envãã¡ã€ã«ã¯ç¡èŠãããŸããïŒãããžã§ã¯ããã¡ã€ã«ïŒïŒ
docker-compose -f PR_5378/docker-compose.yml -f PR_5378/docker-compose2.yml --project-directory PR_5378 down
ä»åŸã¯ãäŒè©±ã«è²¢ç®ããªãã³ã¡ã³ãã建èšçã«åé€ããŠãããŸãã ç§ã¯åäŸãã¡ãšäº€æµããããšã«èå³ããããŸããã
èšå®å¯èœãª.env
åãæã€ããšã«ã€ããŠ
ã©ã®.env
ãã¡ã€ã«ã䜿çšããããæå®ããç°å¢å€æ°ãæã€ããšã®åé¡ã¯ããããæ¬è³ªçã«åŸªç°äŸåã§ãããšããããšã§ãã ç°å¢å€æ°ã®è§£éæ¹æ³ã«äŸå€ãå°å
¥ããå¿
èŠããããŸããããã¯ãè³¢æã§ã¯ãããŸãããæ¬è³ªçã«çŽæã«åããŸãã
.env
ååèªäœã«ã€ããŠ
.env
ååã倿°ã®ãœãããŠã§ã¢ããã¬ãŒã ã¯ãŒã¯ã§äœ¿çšãããŠãããéåžžã¯ããŒãžã§ã³ç®¡çã§ã³ãããããããšãæå³ããŠããªãããšã¯ãä»ã§ã¯æããã§ãã é倧ãªå€æŽãå ããããšã«éåžžã«ææã§ãããåè
ãååšããªãå Žåã¯ã .env
ãã¡ã€ã«ãžã®ãã©ãŒã«ããã¯ã䜿çšããŠä»£æ¿åïŒäŸïŒ docker-compose.env
ïŒãå°å
¥ããããšãã§ããŸããä»ã®ãŠãŒã¶ãŒãšå
±æãããå ŽåããããŸãã
äœæãã¡ã€ã«ã«project_name
ã远å ããå Žå
ç§ãã¡ã¯ãã§ã«ããã«å¯Ÿããç§ãã¡ã®ã¹ã¿ã³ã¹ãäœåºŠãç¹°ãè¿ããŸãã-ç§ãã¡ããã®å€æŽãè¡ãããšã«å察ããŠããããã€ãã®çç±ã«ã€ããŠã¯ããããšã«ã®ææ°ã®ã³ã¡ã³ããåç
§ããŠãã ããã ããã¯é£ããããšã§ã¯ãããŸããã ããã¯ç§ãã¡ãããã«ã€ããŠèããªãã£ããšããããšã§ã¯ãããŸããã ç§ãã¡ã¯ãããè©äŸ¡ããã®ã«å€ãã®æéãè²»ãããŸããããããŠç§ãã¡ã¯ãããïŒãã®åœ¢ã§ïŒè¿œå ããããšãæ£åœåããçµæãšããŠãããžã§ã¯ãã®å質ãããŸãã«ãæªããªãã ãããšæããŠããŸãã çŸå®çã«èšãã°ãïŒ5378ã¯ããªããã€ã³ããã³äžäœäºææ§ã®ããæ¹æ³ã§ãããæ©èœãããããã«è¡ãããšãã§ããæåã®è²æ©ã§ãïŒç·šéïŒãã¡ããããããã®ãã©ã¡ãŒã¿ãŒå
ã§ãã®ææ¡ãæ¹åããææ¡ãåãå
¥ããŸãïŒ
--project-directory
å°ãæ£æ¥ã§ããããã®ãªãã·ã§ã³ã¯çŸåšå°ãå£ããŠããããšãç§ã¯ç¥ã£ãŠããŸãã æ¯ãè¿ã£ãŠã¿ããšã解決ãããããå€ãã®åé¡ãçºçããããããŸã£ãã远å ããªãã»ããããã£ããšæããŸãã ç§ã¯ãããä¿®æ£å¯èœãã©ããã確èªããããã«ãã°ããæéãè²»ãããŸãããããã¯æ¬åœã«ä¿¡é Œã§ããªããã®ã«ããå¥åŠãªãšããžã±ãŒã¹ããããããããŸãã
ããã¯èšã£ãŠãã docker-compose.env
+ïŒ5378ãæºè¶³ã®ãã解決çã§ã¯ãªã人ã¯ããŸããïŒ ç§ã¯ãããããªãã®å¥œãŸãã解決çã§ã¯ãªããããããªãããšãçè§£ããŠããŸãããããç§ã¯ãããããªãã察åŠã§ããåççãªè²æ©ãããŠããã®ãã©ããå°ããŠããŸãã
åè«ã¯ããŠãã...
ãããšã«ã®ææ°ã®ã³ã¡ã³ããããããžã§ã¯ãã®è³ªãã«ã©ã®ããã«é¢ä¿ããŠãããã¯ãŸã ããããŸããã ããã«ãèŸæžã«ããŒã远å ããŠãäžäœäºææ§ãæãªãããããšã¯ãªããšããã®ãäžè¬çãªçµéšåã§ãã ããã°ã©ããŒãããã§ã¯ãªãæ¹æ³ã§ç©äºãå®è£ ããå Žåã¯åžžã«ãããŸãããç§ã¯äœè«ã§ãã
ãããžã§ã¯ãã®ãååãã¯ããŒã«ã®å€ãã®åŽé¢ã®åºæ¬ã§ããããã project-name
ïŒãŸãã¯ãã®ä»ïŒãã£ãŒã«ããå¿
èŠãšãããã£ã³ãã¯æ£åœåããããšæããŸãã ãã®ãã£ã³ãã®äººã
ã¯ãç°å¢å€æ°ããã©ã°ã®ãããªã³ãã³ãã®ãããªããäžæçãªè§£æ±ºçã®åé¡ãåé¿ããããã«ããã®ååãç³ã®ã©ããã«åã«æžãçããããšæããããããŸããã
ããã建èšçãªãã®ã§ãã£ãããšãé¡ã£ãŠããŸãã
@estarterããã¯ãã°ã ãšæããŸãããå¥ã®åé¡ãéã䟡å€ããããããããŸãã
å®éãããã¯ãã£ã¬ã¯ããªPR_5378
ã®.env
ãã¡ã€ã«ã§æ©èœãããšæããŸãã
docker-compose --project-directory PR_5378 -f docker-compose.yml -f docker-compose2.yml down
äœæãã¡ã€ã«ã«project_nameã远å ããå Žå
@ shin-決å®ã¯ãã§ã«è¡ãããŠããããã§ãã ããããç§ã¯ãŸã èæ¯ãçè§£ããããšããŠããŸãã ç§ã¯ä»¥åã«ãããå°ããŸããããçãã¯åŸãããŸããã§ããïŒããããè°è«ãç§ã«ãšã£ãŠãšãŠãè¿·æã ãšæããçç±ã®1ã€ã§ãïŒã
æã
ãæã£ãŠãããªãããªãã¯ãç§ãçè§£ããŠå©ããããŠãããcontainer_name
ãšããnetwork
ã§docker-compose.yml
ïŒ 1ã€ç®ã¯ãæœåšçãªç«¶åã®åå ã«ãªãå¯èœæ§ããããŸãã ãããŠåŸè
ã¯éåžžã«ãã¹ãåºæã§ãã ããªãã®è«çã«åŸããšããããã®2ã€ïŒããã³ä»ã®ïŒãããã«ããã¹ãã§ã¯ãããŸããã project_name
ãšã®éããããããŸããã
ãã®è³ªåãäºåºŠãšç¡èŠããªãã§ãã ããã
@ michael-k project_name
ã¯container_name
ãšåãã ãšèšã£ãŠããŸããïŒ ããããã°ã1ã€ã®ãããžã§ã¯ããè€æ°ã®ã³ã³ããã§æ§æãããŠããå¯èœæ§ãããããšããç¥ããããŸãã ãããšãç§ã¯ããªãã誀解ããŸãããïŒ
network
å Žåãå¿
ããããã¹ãåºæã§ããå¿
èŠã¯ãããŸããã ãããžã§ã¯ãã§ã1ã€ã®ã³ã³ãããä»ã®ãããã¯ãŒã¯ãšçžäºäœçšããäžå€®ã®åé¢ããããããã¯ãŒã¯ãå¿
èŠãªå Žåãå€ããããŸãã ãããŠããã®æ§æã¯docker-compose.yml
ä¿åãããŸãã
@AyushyaChitranshããªãã¯èª€è§£ããŸããã åé¡ã¯ã container_name
ã network
ãªã©ãdocker-compose.yml
ã®ã«ã project_name
ãããã«ããããšãèš±å¯ãããã¹ãã§ã¯ãªãã®ã¯ãªãã§ããïŒ ãããã¯ãã¹ãŠãå
±æãã¹ãã§ã¯ãªãç«¶åãŸãã¯ãã¹ãåºæã®æ§æã®åãå¯èœæ§ãå
±æããŸãã
@aanandç§ã¯ãã®æ©äŒã«ã€ããŠç¥ã£ãŠããŸãã ãŸããã³ã³ããåã«ã€ããŠãåãããšãèšããŸãããäœæãã¡ã€ã«ã«ã³ã³ããåãèšå®ããæ©äŒã¯ãããŸããïŒ
ã¯ããã§ãããã远å ããã®ã¯è¯ãèãã§ã¯ãªããšæããŸãã
é¢é£ãããã£ã¹ã«ãã·ã§ã³ããdocker-composeãã¡ã€ã«ã§ãããã¯ãŒã¯åãæå®ããŸãã
@estarterããã¯ãã°ã ãšæããŸãããå¥ã®åé¡ãéã䟡å€ããããããããŸãã
@ schmunk42ã¡ã³ããããããèªèããŠããããšãããããŸãã®ã³ã¡ã³ãã®On --project-directory
ã«å ããŠãïŒ4709ãïŒ4933ãïŒ4841ãåç
§ããŠãã ãã
å®éãããã¯ãã£ã¬ã¯ããªPR_5378ã®.envãã¡ã€ã«ã§æ©èœãããšæããŸãã
docker-compose --project-directory PR_5378 -f docker-compose.yml -f docker-compose2.yml down
--project-directory
ã-f
ãã©ã¡ãŒã¿ãŒã«åœ±é¿ãäžãããšä»®å®ããŸããã
å®éã«ã¯ããã§ã¯ãããŸããããã®ã³ãã³ãã¯IOError: [Errno 2] No such file or directory: u'./docker-compose.yml'
äžããŸã
--project-directory
ã-f
圱é¿ãäžããªãã®ã¯éåžžã«è¯ãããšã§ããããã§ãªããã°ã --project-directory
ãšè€æ°ã®docker-composeãã¡ã€ã«ããã¹ãŠç°ãªããã£ã¬ã¯ããªã§äœ¿çšããããšã¯æªå€¢ã«ãªããšæ³åããŠãã ããã
ç§ã解決ããåé¡ãšèŠãªããŠããããšã«ã€ããŠå€ãã®å¯©è°ãè¡ãããŠããã®ãèŠãŠãç§ã¯éåžžã«é©ããŠããŸãã
ããã¯ç§ãèŠæ £ããŠããåªå é äœã§ãïŒ
project_name
ãçŸåšããªãã·ã§ã³ïŒ1ããªãã·ã§ã³ïŒ4ããããŸããã ããã¯äººã
ãçŽé¢ããŠããæ ¹æ¬çãªåé¡ã§ãããäžäœäºææ§ã®ããæ¹æ³ã§è§£æ±ºããã®ã¯ç°¡åãªããã§ãã
ç§ãã¡ã¯çŽç²ãã«ã€ããŠå²åŠçãªè°è«ãããŠããããã§ãããããã¯åœ¹ã«ç«ããªããããããŸããã äžæ¹ãéåžžã«äžè¬çãªOSSã«ã¹ã±ãŒãæ§æã¹ããŒã ã䜿çšãããšéåžžã«åœ¹ç«ã¡ãŸãã
ç§ãã¡ã¯çŽç²ãã«ã€ããŠå²åŠçãªè°è«ãããŠããããã§ãããããã¯åœ¹ã«ç«ããªããããããŸããã
ãããããã®è°è«ãæã€ããšã¯å®éã«ã¯ç®çã§ã¯ãããŸããã åœåãããComposeãã¡ã€ã«ã§ã®ãããžã§ã¯ãåã®å®çŸ©ã«é¢ããŠç§ãã¡ãã©ãã«ç«ã£ãŠãããã«ã€ããŠéåžžã«æç¢ºã§ããã
ããããããã«ã€ããŠã¯éæã«ãããŠãã ããã ããã¯docker-compose
ã§ã¯æ±ºããŠèµ·ãããŸããã ããããã®åé¡ã«å¯ŸããŠåãå
¥ããŠãæ§ããªããšæã£ãŠããå¯äžã®è§£æ±ºçã§ããå Žåã¯ããããžã§ã¯ãããã©ãŒã¯ããŠèªåã§å®è¡ãããšããéåžžã«OSSããã»ã¹ãå®è¡ããå¿
èŠããããŸãã ã³ãŒãã¯å©çšå¯èœã§ãããéåžžã«å¯å®¹ãªã©ã€ã»ã³ã¹ã§å
±æãããŠããŸãã
docker-compose.ymlã«container_nameãããã«ã¯ãããã¯ãŒã¯ãããçç±ãçè§£ããã®ãæäŒã£ãŠããã ããŸãããïŒ 1ã€ç®ã¯ãæœåšçãªç«¶åã®åå ã«ãªãå¯èœæ§ããããŸãã ãããŠåŸè ã¯éåžžã«ãã¹ãåºæã§ãã ããªãã®è«çã«åŸããšããããã®2ã€ïŒããã³ä»ã®ïŒãããã«ããã¹ãã§ã¯ãããŸããã project_nameãšã®éããããããŸããã
container_name
å Žåããã®ãªãã·ã§ã³ã¯ãããžã§ã¯ãã®åç¶æéã®éåžžã«æ©ã段éã§å°å
¥ãããŸããã @ schmunk42ãææããããã«ã
network
ã«é¢ããŠã¯ãããªãã®å¿ã®äžã§ã©ã®ããã«æ¯èŒãããã®ãå®å
šã«ã¯ããããŸãããïŒ
ç§ãèšåãããªãã·ã§ã³ïŒ4ã¯ã©ãã§ããïŒ ããŒã«ã«ãã£ã¬ã¯ããªåºæã®èšå®ã«.docker-compose
ãå°å
¥ãããšãã話ãèŠãŸããã ããã¯ã _x_
ç°å¢ãã©ã°ïŒç°å¢ç®¡çãå¿
èŠïŒãå°å
¥ãããããã¯ããã«æãŸããïŒimoïŒã§ãããã
次ã®ããã«ãªããŸãã
# <my-project-dir>/.docker-compose
project_name: foobar
äžèšã¯ç°å¢å€æ°ãªãã·ã§ã³ãšã¯ç°ãªããåªå é äœãªã¹ãã®äžäœã«ãããŸãã
ããã¯ç§ã®ãŠãŒã¹ã±ãŒã¹ãããŸã解決ãããªã¹ãããå¥ã®æšæºæ§æãã¹ããã§ãã¯ããŸãã
@thedeenoç§ãã¡ã®èãã§COMPOSE_PROJECT_NAME
ã .env
ãã¡ã€ã«å
ã®COMPOSE_PROJECT_NAME
ã¯ããã§ã«ãããéæããŠããŸãïŒã¢ãŠãã©ã€ã³ãšåãåªå
é äœã§ïŒã ããããæã
ã¯ããªããèããäžã§.env
ãæã
ãæ€èšããŠããçç±ã§ããååã®ãç²æ«ãªéžæããšããdocker-compose.env
代æ¿ãšããŠã ããã¯ããªãã®ããã«åããŸããïŒ
ç§ãã¡ã®èãã§ã¯ã.envãã¡ã€ã«å ã®COMPOSE_PROJECT_NAMEã¯ãã§ã«ãããéæããŠããŸã
@ shin-ããã¯ç§ãã¡ãåæããªããšããã§ãã ç§ã¯ããã¯æããªãã
ç§ã¯å人çã«.env
ãã¡ã€ã«ã
ããã¯ãäžèšã®number 3
ç°å¢ããŒã¹ã®æ§æãæ¯æŽããã®ã«æé©ã§ãã
ç°å¢ã«ãããžã§ã¯ãåãææãããããªãå Žåã®ããã«ããšã¹ã±ãŒããããïŒ number 4
ïŒã¯æäŸãããŸããã
ç§ã®å Žåãéçºè
ã¯ããããç¬èªã®.env
ãã¡ã€ã«ïŒVCã§ã¯ãªãïŒãæã£ãŠããŸãã docker-compose.yaml
泚å
¥ããããã®ç§å¯ãå«ãŸããŠããŸãã ããã倧奜ãã
ãã ãããããžã§ã¯ãåã¯äžéšã®ããŒã«ãšåŒ·ãçµã³ã€ããŠãããããéçºè
ãããââãžã§ã¯ãåãå¶åŸ¡ããããšã¯æãŸãããããŸããã .env
ã¯ããŒãžã§ã³ç®¡çãããŠããªãããããã®ã¢ãããŒãã§ã¯éçºè
ã«æåã§COMPOSE_PROJECT_NAME
ãèšå®ãããå¿
èŠããããŸãã ããã¯ç§å¯ã§ã¯ãªãã®ã§ãä»ã®äººãšã¯ç°ãªããŸãã
æ®å¿µãªããã .env
ã®ããã©ã«ãã®ãœãŒã¹ãã¹ã倿Žããã ãã§ã¯ãããã§ã¯åœ¹ã«ç«ã¡ãŸããã .env
ãèªåçã«äŸçµŠãããã®ã倧奜ãã§ãã ãããžã§ã¯ãåããã®ããã«æå®ããããªãã ãã§ãã
ç§ã®ç·Žç¿ãã1ã€ã®ãŠãŒã¹ã±ãŒã¹ã瀺ããŸãïŒ
.env
ãã¡ã€ã«ã䜿çšããŠç»åã®ããŒãžã§ã³ãæå®ããå¥åŠãªsed / awk / perl /ãã®ä»ã®è§£æãåé¿ããããã«ãCIã®å€ãäžæžãããã ãã§ãã
echo APP_VERSION=$CI_COMMIT_REF_NAME > .env
docker-compose pull
docker-compose up -d
åŸã§docker-compose.yml
ãç»åã¯æ¬¡ã®ããã«æå®ãããŸãã
image: my.registry.example.net/app:${APP_VERSION}
ãã®çš®ã®å€æ°ãããã«å¿
èŠãªå Žåã¯ãè€æ°ã®.env
ãã¡ã€ã«ããµããŒããããŠããªãéããè§£æãè¡ãå¿
èŠããããŸãã
ãããã£ãŠãããããã docker-compose.env.d/*
ãŸãã¯.docker-compose.env.d/*
ãŸãã¯docker-compose.d/*
ãããªããã£ã¬ã¯ããªããµããŒãã远å ããŸãã
ãã ãããã®ãããªglobã¯ããšãã£ã¿ãŒã®ããã¯ã¢ããïŒ *~
ã *.bak
ïŒã®ãããã³ã°ã®åé¡ãå³åº§ã«åŒãèµ·ããå¯èœæ§ãããããã代ããã«æ¡åŒµæ©èœã䜿çšããããšããå§ãããŸãïŒ docker-compose.env.d/*.sh
...ããããç¹°ãè¿ãã«ãªããŸããã docker-compose.yml
ã§æ§æå¯èœã«ããã ãã§ãã©ã®ã«ãŒãã¬ãã«ã®.env
ãã¡ã€ã«ãããŒããããŸããããããšãé¶ãå
ãåµãå
ããšããåé¡ãçºçããŸããïŒ æ§æããŒãµãŒãã©ã®ããã«æ©èœãããããããŸãã:)
å°ããªããããã¯ã§ããã COMPOSE_PROJECT_NAME
envã§ã¯ãã¬ãã£ãã¯ã¹ãå®å
šã«å¶åŸ¡ã§ããŸãããããã§ãã A-Za-z0-9_
ã«äžèŽããããã«åé€ãããŸã...ãã¬ãã£ãã¯ã¹ã«-
ã䜿çšãããã£ãã®ã§ãã ïŒç§ã¯ä»ãããå ±åããå ŽæãèŠã€ããããšãã§ããŸããããããã¯å¯ŸåŠãããŠããŸããïŒ
dockerèªäœãå¶éããã®ãšåãæåãèš±å¯ããã®ã¯è«ççã§ãã
@glenscããã¯ç°å¢ã管çããããã®å€ãã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã§ãã ç§ã¯å人çã«ãããdocker-compose
ã®è²¬ä»»ã ãšã¯æããŸããã
ç§ãä»ã®ãããžã§ã¯ãã§è¡ã£ãŠããã®ãèŠãã®ã¯ãèªåçã«.env
@glensc @thedeenoçæ³çã«ã¯ã2ã€ã®*.env
ãã¡ã€ã«ããããŸãã1ã€ã¯ä»ã®ãŠãŒã¶ãŒãšå
±æããããã®ãã®ã§ããã1ã€ã¯ãã©ã€ããŒãã«ä¿ãããäž¡æ¹ãåã倿°ãå®çŸ©ããå ŽåãåŸè
ãåè
ããªãŒããŒã©ã€ãããŸããïŒ
å
é±ã®ã³ã¡ã³ãã§ãæ§æå¯èœãª.env
ååã«ã€ããŠèª¬æããŸããã
ãããªãã¯docker-compose.env
ïŒãã©ã€ããŒã.env
èªåãœãŒã·ã³ã°ããªããïŒãæã€ããšã¯ç§ãã¡ã«ãšã£ãŠçŽ æŽãããããšã§ãïŒ
ãããrcãã¡ã€ã«ã®ããã«æ±ãããœãŒã¹ç®¡çãã³ãããããŸãã
ãããªãã¯/ãã©ã€ããŒãã®envãã¡ã€ã«ããããšãããã«èšèŒãããŠããã»ãšãã©ã®ãŠãŒã¹ã±ãŒã¹ã解決ããå¯èœæ§ãé«ããšæããŸãã -
ããããžã§ã¯ãåã§ãèš±å¯ããããšããããããã¯çŽ æŽãããããšã§ãã
@ thedeeno @ glenscãããªãã¯ENVãã¡ã€ã«ã®å€ããªãŒããŒã©ã€ããããã©ã€ããŒãENVãã¡ã€ã«ãå¿ èŠãªãŠãŒã¹ã±ãŒã¹ãæããŠãã ããã
ã·ãŒã¯ã¬ããã¯ã³ã³ããã«èªå転éãããªãããã docker-compose.env
ã§å®çŸ©ããªãã§ãã ããã ããã§ã.env
ãã¡ã€ã«ã䜿çšããŠãããã䜿ã£ãŠããããããšãã§ããŸãã ãããã docker-compose
ãšã¹ã¿ãã¯å
ã®ã³ã³ãããŒãæ··åšãããã®ã¯ãç§ã«ã¯æ··ä¹±ããŠããããã«èŠããŸãã
@ schmunk42ç§ã«ã¯ãã®ãŠãŒã¹ã±ãŒã¹ããªãã®ã§ãããã§ã¯ããŸã圹ã«ç«ã¡ãŸããã project_name
ãããŒãžã§ã³ç®¡çã«ã³ãããããå¿
èŠããããŸãã docker-compose.env
解決ããŸãã
ç§ãããªãã®2çªç®ã®æ®µèœã«åŸããã©ããããããŸããã ã·ãŒã¯ã¬ããã«ã¯.env
ã䜿çšããæåã§docker-compose.yaml
æ¿å
¥ããŸãã
@ schmunk42 https://github.com/docker/compose/issues/745#issuecomment -346491062
ãã${variables}
ã image
å€ã«å¯ŸããŠ${variables}
ãå®çŸ©ããå Žæã.env
ãã¡ã€ã«ã®ããã«èŠããããã§ãã
@glenscåæããŸããïŒ
ãããã代ããã«ã docker-compose.override.env
ãææ¡ããŠã yml
ãã¡ã€ã«ã®çŸåšã®ãªãŒããŒã©ã€ãæ©èœã«åãããŸãã
docker-compose.env
docker-compose.override.env
docker-compose.override.yml
docker-compose.yml
ç§ãããªãã®2çªç®ã®æ®µèœã«åŸããã©ããããããŸããã ã·ãŒã¯ã¬ããã«ã¯.envã䜿çšããdocker-compose.yamlã«æåã§æ¿å ¥ããŸãã
@thedeenoç§ã¯ããªãããããããŠãããšæããŸãïŒ
environment:
- ${SECRET_VAR_FROM_DOTENV}
ããã¯docker-compose.override.env
ã§ãå¯èœã§ãã ãŸãã¯ã次ã®ããšãã§ããŸãã
env_file:
- .env
ããdocker-composeåºæã®ãã®ãåªå
ããŠ.envãåé€ããããšãææ¡ããŠããŸããïŒ
éïŒ
.envã®èªåãœãŒã·ã³ã°ãã¹ããããããšãç§ã®æªåœ±é¿ã«ãªããŸã
ããŒã ã®ã¯ãŒã¯ãããŒã ä»ã®ããŒã«ã«ã€ããŠã¯ããã®ãã¡ã€ã«ã«äŸåããŠããŸãã ç§ãã¡ã¯çµå±
ç§ãã¡ã®ç§å¯ã2ã€ã«å
¥ããŸãïŒ.envãšããªããææ¡ããŠãããã®ä»ã®ãã¡ã€ã«ïŒ
docker-composeã.envã®è¡šç€ºã忢ããå Žåã«é
眮ããŸãã
1:15ããã¢ã¹ã»ã ã³ã¯ã®æšã2017幎11æ23æ¥ã«ã¯[email protected]
æžããŸããïŒ
@glensc https://github.com/glenscåæããŸããïŒ
ãããã代ããã«ãdocker-compose.override.envãææ¡ããŠããã調æŽããŸã
ymlãã¡ã€ã«ã®çŸåšã®ãªãŒããŒã©ã€ãæ©èœãdocker-compose.env
docker-compose.override.env
docker-compose.override.yml
docker-compose.ymlç§ãããªãã®2çªç®ã®æ®µèœã«åŸããã©ããããããŸããã ã·ãŒã¯ã¬ããã«ã¯.envã䜿çšãã
docker-compose.yamlã«æåã§æ¿å ¥ããŸãã@thedeeno https://github.com/thedeenoç§ã¯ããªãããããããŠãããšæããŸãïŒ
ç°å¢ïŒ
- $ {SECRET_VAR_FROM_DOTENV}
ããã¯docker-compose.override.envã§ãå¯èœã§ãã ãããã¯ãããªã
åºæ¥ãŸããïŒenv_fileïŒ
- .env
â
ããªããèšåãããã®ã§ããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/docker/compose/issues/745#issuecomment-346538315 ããŸãã¯ãã¥ãŒã
ã¹ã¬ãã
https://github.com/notifications/unsubscribe-auth/AAFIdxtbI7y3wW2TFa401Go6Msj0gC74ks5s5Q1vgaJpZM4DLBNs
ã
ããdocker-composeåºæã®ãã®ãåªå ããŠ.envãåé€ããããšãææ¡ããŠããŸããïŒ
éïŒ
å¿
ãããããã§ã¯ãããŸãããBCã®ããã«docker-compose
ããŸã èŠãŠå¯èœæ§ã.env
ä»ã¯ãšåããèŠã€ãããªãå Žåã¯fig.yml
äžåã æ¬¡ã®å Žåãæ±ºå®ããã®ã¯é£ãããããããŸãããïŒ
.env
docker-compose.env
.env
docker-compose.override.env
.env
docker-compose.env
docker-compose.override.env
.env
ã¯æåŸã®ã±ãŒã¹ã§ã¯äœ¿çšãããŸããããäžéšã®ãŠãŒã¶ãŒã¯.env
ããªãŒããŒã©ã€ããšããŠäœ¿çšããä»ã®ãŠãŒã¶ãŒã¯ãã©ãŒã«ããã¯ãšããŠäœ¿çšãããããæåã®2ã€ãåŠçããæ¹æ³ã¯æªå®ã§ãã
ç§ã«ãšã£ãŠã.envã¯ãã¹ãŠã®å Žåã«äœ¿çšããå¿
èŠããããŸãã ç¹å¥ãªæå³ãæã€ãã¡ã€ã«ã§ã
ããåºãçæ
ç³»ã§ã
3çªç®ã®ã±ãŒã¹ã§ã¯ãåªå é äœãæãäœããã¡ã€ã«ã ãã§ãã
å¿
èŠãªã®ã¯ããããžã§ã¯ãåããœãŒã¹ç®¡çã«ã³ãããããæ¹æ³ã ãã§ãã ç§ã¯ããŸãã
ç¹ã«ãããæŽç·Žãããã«ã¹ã±ãŒãç°å¢ã«æ³šæããŠãã ãã
管çã ç§ã¯å®éã«ãã®ãããžã§ã¯ãåæŠç¥ã«ã¯äœããªãã£ãã»ãããããšæããŸã
ç°å¢å€æ°ã䜿çšããŸãã
æ§æãã¡ã€ã«ãããŒãã«ããå€ããŠããŠãã³ãããããæ¹æ³ãããå Žå
ããªããåã£ãŠãããã®envã«ã¹ã±ãŒããæã€project_nameç§ã¯ãããåãã§äœ¿çšããŸã
ã§ãïŒ
1:31ããã¢ã¹ã»ã ã³ã¯ã®æšã2017幎11æ23æ¥ã«ã¯[email protected]
æžããŸããïŒ
ããdocker-composeåºæã®ãã®ãåªå ããŠ.envãåé€ããããšãææ¡ããŠããŸããïŒ
éïŒå¿ ããããããšã¯éããŸããããBC docker-composeã®å Žåãæ¬¡ã®å Žåã§ã.envã確èªã§ããŸãã
fig.ymlãšåãããã«ãä»ã®ãã®ã¯èŠã€ãããŸããã ãããããŸããã
次ã®å Žåãæ±ºå®ããã®ã¯é£ããã§ãã.env
docker-compose.env.env
docker-compose.override.env.env
docker-compose.env
docker-compose.override.envæåŸã®ã±ãŒã¹ã§ã¯.envã¯äœ¿çšãããŸããããåŠçæ¹æ³ã¯æªå®ã§ãã
æåã®2ã€ã«ãäžéšã®ãŠãŒã¶ãŒã¯.envããªãŒããŒã©ã€ããšããŠäœ¿çšããä»ã®ãŠãŒã¶ãŒã¯
åŸéãããâ
ããªããèšåãããã®ã§ããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/docker/compose/issues/745#issuecomment-346539891 ããŸãã¯ãã¥ãŒã
ã¹ã¬ãã
https://github.com/notifications/unsubscribe-auth/AAFId95kZQIsiWp488JyPQOtGJju0OPbks5s5RFbgaJpZM4DLBNs
ã
ãããã¯ãŒã¯ã«é¢ããŠã¯ãããªãã®å¿ã®äžã§ã©ã®ããã«æ¯èŒãããã®ãå®å šã«ã¯ããããŸãããïŒ
@ shin-
services:
web:
build: ./
networks:
- my_project_network_on_my_localhost
networks:
my_project_network_on_my_localhost:
external: true
docker-compose.yml
ãã¬ãã«ã³ãããããããšããªãã®ã§ãééã£ãŠãããšæããŸãã åžžã«ãã¹ãåºæã®èšå®ãå«ãŸããŠããŸãã ãããã¯ã·ã§ã³ã®éçºã§ã¯ããŸã£ããç°ãªãã³ã³ãã³ããå«ãŸããå¯èœæ§ããããŸãã
ç§ã¯ã4project.rcãã®ãã¡ã³ã§ãããããããå¥ã®åœ¢åŒã®ä»£ããã«docker-project.yaml
ãããªãã®ã䜿çšããã§ãããã ããã¯ãŸãã«å
ã®åé¡ã説æããŠããããšã§ãã ç§ã«é¢ããéããcomposeãã¡ã€ã«ã«ãããžã§ã¯ãåãå
¥ããããšã«ã€ããŠã®è°è«ã¯å¥ã®åé¡ã«ããã¹ãã§ãã
å¿ èŠãªã®ã¯ããããžã§ã¯ãåããœãŒã¹ç®¡çã«ã³ãããããæ¹æ³ã ãã§ãã
ããã¯ãŸã ç§ã«ã¯ããããªãç¹ã§ãã ããŒãã³ãŒããããåäžã®ãããžã§ã¯ãåãèŠæ±ããçç±ã¯ãªãã¯ãã§ãã äžè²«ããååãæåŸ
ããå€éšããŒã«ãããå Žåããã®ããŒã«ãdocker-compose
åŒã³åºãåã«ãããžã§ã¯ãåãèšå®ããªãã®ã¯ãªãã§ããïŒ
my_project_network_on_my_localhost
ã¯ç§ã«ã¯ééã£ãŠããããã§ãã å€éšãããã¯ãŒã¯ã§ãããžã§ã¯ãåãå¿
èŠãªã®ã¯ãªãã§ããïŒ äœæãããžã§ã¯ãåãšäžèŽããå¿
èŠã¯ãããŸããã
my_project_network_on_my_localhostã¯ç§ã«ã¯ééã£ãŠããããã§ãã
ããã¯ã»ãã®äžäŸã§ãã ããŒã«ã«éçºãã·ã³ãšæ¬çªãµãŒããŒã®ãããã¯ãŒã¯èšå®ãç°ãªããŸãã docker-compose.yml
ä»ã®å€ãã®èšå®ããæ¬çªç°å¢ãšã¯å®æçã«ç°ãªããŸããããšãã°ããããžã§ã¯ãåºæã®ãã®ãæ§ç¯ããããããŒã¿ããŒã¹ãç¶æãããããããã«ãŠãŒãã£ãªãã£ã³ã³ãããå®çŸ©ããŠããŸãã
ç§ãçè§£ããããã«ãæåã¯docker-compose
ïŒãŸãã¯ããè¯ãfig
ïŒã®èåŸã«ããäž»ãªã¢ã€ãã¢ã¯ãè€éãªã³ã³ããã»ããã¢ããçšã®é·ãdocker
ã³ãã³ãã©ã€ã³ãªãã·ã§ã³ããã¹ãŠããŸãæŽçããããš1ã€ã®ãªãã·ã§ã³ãçç¥ãããŠããŸãã ããããç§ã¯ã©ãããããããããããã®èåŸã«ããäž»èŠãªã¢ã€ãã¢ã§ã¯ãªããªã£ãããšãèŠéããããã§ãã
docker-compose.ymlã®ä»ã®å€ãã®èšå®ã宿çã«æ¬çªç°å¢ãšã¯ç°ãªããŸããããšãã°ããããžã§ã¯ãåºæã®ãã®ããã«ãããããããŒã¿ããŒã¹ãç¶æãããããããã«ãŠãŒãã£ãªãã£ã³ã³ãããŒãå®çŸ©ããŠããŸãã
ããã§ãåãã¯ãŒã¯ãããŒããããŸãã ç§ãã¡ã®å Žåããäžè¬çãªãdocker-composeå®çŸ©ã¯ã»ãšãã©äœãèŠçŽã
éçºèšå®ã®äž»èŠéšåã¯å¥ã®ãã¡ã€ã«ã§å®çŸ©ãããèªåããŒãžã¯.envãã¡ã€ã«ãä»ããŠè¡ãããŸãã ãã¹ãã®ã»ããã¢ããã«ã€ããŠãåãã§ãã
ç§ãã¡ã®å Žåã¯ãã©ã«ãã«ããã®ã§ã次ã®ãããªããšãã§ããŸã
(cd tests && docker-compose up -d)
(cd tests && docker-compose ps)
(cd tests && docker-compose run php codecept run)
ãã¹ãçš...ãŸãã¯ãã
(cd production && docker-compose logs -f --tail 100)
æ¬çªçšïŒããŒãã¹ïŒå¥ã®ãã·ã³ãæãããã«æ¬çªç°å¢ã§DOCKER_HOST
ãå®çŸ©ã§ããŸããã docker-compose
ïŒã
ãããããããããã¯ãã¡ã€ã«ã§ã¯ãªããã©ã«ãã§ãããåäœããã«ã¯2ãæã«cp .env-dist .env
ãå¿
èŠã§ããããã§ãªãå Žåãç¡å¹ãªäœæãã¡ã€ã«ã§å€±æããŸãã å®éãç§ã¯ãã®IMHOã®ãã¡ããšããã¯ãŒã¯ãããŒãå
±æãããã£ãã ãã§ãã
ããã¯ãŸã ç§ã«ã¯ããããªãç¹ã§ãã ããŒãã³ãŒããããåäžã®ãããžã§ã¯ãåãèŠæ±ããçç±ã¯ãªãã¯ãã§ãã äžè²«ããååãæåŸ ããå€éšããŒã«ãããå Žåããã®ããŒã«ãdocker-composeãåŒã³åºãåã«ãããžã§ã¯ãåãèšå®ããªãã®ã¯ãªãã§ããïŒ
@dnephinçç±ããããŸãã
ã¯ããåé¿çããããŸãã 質åã¯ãããããã䟿å©ã§äºæž¬å¯èœã«ããããšã§ãã
ããŒãã³ãŒãããããããžã§ã¯ãåã圹ç«ã€1ã€ã®äŸã次ã«ç€ºããŸããtraefikã®dockeræ§æã¯ãããã©ã«ãã§æ¬¡ã®åœ¢åŒã§ã³ã³ãããŒã®ãã¹ãã«ãŒã«ãäœæããŸãïŒ <service>.<project>.<domain>
ã ãã®ãã©ãŒãããã¯ç°¡åã«å€æŽã§ããŸããã Docker-composeãµãŒãã¹ã«åãfqdnã䜿çšããããšã¯ãéçºè
ã«ãšã£ãŠéåžžã«æçã§ãã äžè²«æ§ãä¿èšŒããå¯äžã®æ¹æ³ã¯ãaïŒã¯ããŒã³ã«ç¹å®ã®ãã£ã¬ã¯ããªåã䜿çšããããã«åŒ·å¶ããbïŒtraefikã®ã«ãŒã«ãæåã§æå®ããããšã§ããããããŒãæ§æã»ããã¢ããã䜿çšã§ããã°çŽ æŽããããšæããŸãã äž¡æ¹ãšãåžãã
ãã1ã€ã¯ãdocker-composeã§äœæãããã€ã¡ãŒãžãåç
§ããããšã§ãã ãããžã§ã¯ãåãä¿èšŒã§ããªãå Žåããããã®ç»ååãä¿èšŒããããšã¯ã§ãããèªä¿¡ãæã£ãŠåç
§ããããšãã§ããŸããã 確ãã«ãå®çŸ©ããšã«image_name
ãããŒãã³ãŒãã£ã³ã°ããããšã¯ã§ããŸããã_ã³ã³ãã³ã·ã§ã³ã䜿çšããã_ã®ã§ãççŽã«èšã£ãŠåé·ã«æããŸãããç°ãªããã¡ã€ã«åã䜿çšããããšãéžæããéçºè
ãããŒã«ã§éåžžã«é©ãã¹ã倱æãããããšãæžå¿µããŠããŸãã
ã¿ããªãããããã®è°è«...ããã®ç¶æ³ã¯ã©ãã§ããã .docker-compose
ãã¡ã€ã«ã«ããã©ã«ãã®ãããžã§ã¯ãåãèšå®ã§ããŸããïŒ
ãããšãããã®ã¹ã¬ããã§ããã«è°è«ãå¿
èŠã§ããïŒ
ãããžã§ã¯ãåãdocker-compose.yml
ãã¡ã€ã«ã«ä¿åããããšã¯ãPyCharmãªã©ã®ä»ã®ããŒã«ã§äœ¿çšããå Žåã«éåžžã«æå³ããããŸãã
åãYAMLãã¡ã€ã«ã«ä¿åããŠãããšäŸ¿å©ã§ãããå¿ èŠã«å¿ããŠãªãŒããŒã©ã€ãããããšãã§ããŸãã
ãã®åé¡ã®æ žå¿ã¯ãããã©ã«ãã®ãããžã§ã¯ãåãçŸåšã®ãã£ã¬ã¯ããªã®ããŒã¹åãšããŠåçŽã«ïŒ_naively_ïŒãšèšãã¹ãã§ããïŒïŒåãããŠãããšããäºå®ããæ¥ãŠãããšæããŸãã ããã«ããããã¡ã€ã«ã·ã¹ãã ã®åå空éïŒéå±€ïŒããã©ãããªåå空éã«å¹æçã«å§çž®ãããŸããããã¯ãååã®ç«¶åã®ããã«åé¡ããããŸãã ããšãã°ãããã«ããã ~/fooproject/master
ããã³~/barproject/master
ãµãŒãã¹ãå®è¡ããŠãããŠãŒã¶ãŒã«åé¡ãçºçããŸãã
ãããžã§ã¯ãåã¯éèŠã§ã¯ãªããšæããŸãã ããã§ãããããdocker-composeãå
ç¢ã«ããæ¹æ³ã¯ããã«ãã¹ïŒã€ãŸãhome_flaviovs_fooproject_master
ïŒã«åºã¥ããŠãããžã§ã¯ãåãçæããããšã§ããïŒ
ããããç§ã¯æ°žç¶çãªã¢ã€ãã¢ã奜ãã§ãã ãããžã§ã¯ãåãGitã«ã³ãããã§ããããã«ããããšã¯ããã®ãããªäžè¬çãªãŠãŒã¹ã±ãŒã¹ã§ãã ããããèªãã§.env.default
ã®åã«ãã¡ã€ã«ã.env
ïŒBTWã ãã§ãªããšããŠé·å¹ŽïŒ210ã®äžè©±ãããã ããïŒããã®ããã®ã·ã³ãã«ãªãœãªã¥ãŒã·ã§ã³ã§ããïŒ
docker-composeãã€ããªãç¬èªã®é¢æ°ã§ã©ããããŠãã©ãããã§ã颿°ãåŒã³åºããããã«ããããšã§ãããã解決ããŸããã ããã«ããã.envãã¡ã€ã«ãèªã¿èŸŒãŸããé©åãªdocker-composeãã¡ã€ã«ãã©ãã§ã䜿çšãããŸãã
ãã¡ããããããæ¡åŒµããŠããããžã§ã¯ãããšã«æ©èœãæãããããšãã§ããŸãã ããã«ã¯æ¬ ç¹ããããããããªããšæããŸãããç§ã¯ããããèŠã€ããŠããŸããã
DEFAULT_DOCKER_COMPOSE=~/my-project
function dcompose() {
pushd $DEFAULT_DOCKER_COMPOSE &> /dev/null;
/usr/local/bin/docker-compose $@;
popd &> /dev/null;
}
## maintain auto complete
function _dc {
pushd $DEFAULT_DOCKER_COMPOSE &> /dev/null;
_docker_compose;
popd &> /dev/null;
}
complete -F _dc dcompose
ç»åã®è¡çªã«åé¡ããããŸããéåžžã«è«ççã§åçŽãªè§£æ±ºçã«èŠãããããdocker-compose.ymlã§project_nameãèšå®ã§ããªãã®ã¯æ¬åœã«å¥åŠã«èŠããŸãã å®éããããããããžã§ã¯ããã©ã«ãããååãä»ããã®ã¯æªãèãã§ããã å€ãã®å Žåããããžã§ã¯ããã©ã«ããŒã¯/ home / project1 / repositoryã/ home / project2 / repositoryãªã©ã®ããã«ãªããŸãããã®å Žåãdockerã¯repository_appã®ãããªåãã€ã¡ãŒãžåãçæããŸããã
@vedmant docker-compose.yml
ã§ç»ååãèšå®ã§ããŸãã image
ãšbuild
䜿çšããã ãã§ãã
ã ãã...åãååã®ãã©ã«ãäžã®ãããžã§ã¯ãã§åºåãããŠããã®ã¯ã©ãã§ããïŒ
docker-compose -f /foo/bar up -d
docker-compose -f /foo/foo/foo/bar down
ããããããã¯ãã§ã«ææ¡ãããŠããŸãã ãããã version: 4
é倧ãªå€æŽãå ããŠã docker-compose.yml
ãããããžã§ã¯ãåãèšå®ã§ããããã«ããæ°ããããŒã¯ãŒãã远å ããŠã¿ãŸãããïŒ
ç§ã®.docker-compose / project-nameãæ©èœããŸããã§ãã..ã
-ãããžã§ã¯ãåã¯æ©èœããŸãã
docker-compose.ymlã«ããããžã§ã¯ãåãèšå®ããããšæããŸãã
ç§ã®ãŠãŒã¹ã±ãŒã¹ã¯ãWebã¢ããªãšpostgressããŒã¿ããŒã¹ãµãŒãã¹ãå«ãdocker-compose.yml
ãã¡ã€ã«ããããŸãã
ãŸããã¢ãããã¯ã¿ã¹ã¯çšã«åå¥ã®docker-compose.yml
ãã¡ã€ã«ãå¿
èŠã§ããåºæ¬çã«ã¯ãdocker-composeã§ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãããã¢ãããã¯ã¿ã¹ã¯ã«ã€ããŠèª¬æããŸãã ãããã®ã¢ãããã¯ã¿ã¹ã¯ã¯ãã¡ã€ã³ãããžã§ã¯ãã§äœ¿çšãããŠãããã®ãšåããµãŒãã¹/ãããã¯ãŒã¯/ããªã¥ãŒã ãæŽ»çšããå¿
èŠããããŸãã
docker-composeã䜿çšããŠãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãããã¢ãããã¯ã¿ã¹ã¯ã®äŸã¯æ¬¡ã®ãšããã§ãã ããŒã¿ãpostgress
ããŒã¿ããŒã¹ã«ç§»è¡ããŸãã ãã®ã¿ã¹ã¯ãå®è¡ããããã«ãçŸåšã®ãã®ãšäžç·ã«è¿œå ã®ãµãŒãã¹ãšããªã¥ãŒã ããããã¯ãŒã¯ãªã©ãèµ·åããå¿
èŠãããå Žåããããããdocker-composeã䜿çšããŠããã調æŽããã®ã«åœ¹ç«ã¡ãŸãã
ãããã£ãŠããããå®çŸããããã«ãã¿ã¹ã¯ã衚ãåå¥ã®docker-compose.adhoctask.yml
ãã¡ã€ã«ãäœæããŠãå¿
èŠãªå Žåã«ã®ã¿ãã®ã¿ã¹ã¯ããªã³ããã³ãã§å®è¡ã§ããããã«ããããšãã§ããŸãã å
ã®docker-composeãã¡ã€ã«ãšåããã£ã¬ã¯ããªã«ãããããããã©ã«ãã§åããããžã§ã¯ãåãååŸããåããããã¯ãŒã¯ãããªã¥ãŒã ãªã©ã«ã¢ã¯ã»ã¹ã§ããŸããïŒ ãšãã®ãåäœããŸãã
ãã ãããã®ã¢ãããã¯ã¿ã¹ã¯ã®ymlãã¡ã€ã«ãã¡ã€ã³ã®docker-compose.yml
ãšåããããã¬ãã«ãã£ã¬ã¯ããªïŒãŸãã¯åããªããžããªïŒã«é
眮ããããªãå Žåã«åé¡ãçºçããŸãã ããšãã°ãã¢ãããã¯ã¿ã¹ã¯docker-compose.adhoc.yml
ããµããã©ã«ããŒã«é
眮ãã DOCKERFILE
ãšãã¿ã¹ã¯ãå¿
èŠãšããã¢ã»ããããããèªäœã®æžå¿µäºé
ãšããŠé©åã«åé¢/ã°ã«ãŒãåããããšããŸãã ãµããã©ã«ããŒã«ç§»åãããšããã«ããããžã§ã¯ãåãäžèŽããªããªããŸãã ããã¯ãã¡ã€ã³ãããžã§ã¯ãã§å®çŸ©ãããŠããã®ãšåãããªã¥ãŒã /ãããã¯ãŒã¯ãªã©ã«ã¢ã¯ã»ã¹ã§ããªããªã£ãããšãæå³ããŸãã
docker-compose.yml
ãšdocker-compose.adhoc.yml
projectname
ãæå®ã§ããã°ãå¿
èŠã«å¿ããŠæ§é åã§ãïŒå¥ã
ã®ãªããžããªã«é
眮ããããšãã§ããŸãïŒãå®è¡ããå¿
èŠã¯ãããŸãããåžžã«è¿œå ã®ã³ãã³ãã©ã€ã³åŒæ°ãæå®ããããç°å¢å€æ°ãåãæ¿ããŸãã
ããã¯ç§ã«ãšã£ãŠæ¬åœã®åé¡ã§ããååã®ç«¶åãçºçããããã§ãã
æ§é å ã«ããã€ãã®ãããžã§ã¯ãããããŸã
/company
/ab # project prefix
/backend # actual project
/webapp
/cd
/backend
/webapp
ããã§ã1ã€ã®ãããžã§ã¯ãã§docker-composeãéå§ãããšããããã¯ãŒã¯backend_default
ãäœæãããæç€ºçã«ååãä»ããããŠããªãã³ã³ãããŒã®ãã¬ãã£ãã¯ã¹ãbackend_
ãŸããæ£ãããã©ã«ããŒã«æ»ããæåã«docker-compose down
ãå®è¡ããŠç«¶åãé²ããŸããããããªããšãåããããã¯ãŒã¯ã§æ°ããã³ã³ãããŒãèµ·åãããããããªãã«ãããšãorhanããªãå Žåã«orhanã«ã€ããŠæå¥ãèšããŸãã
ç§ã«ãšã£ãŠãåé¡ã§ãã ç§ã¯è€æ°ã®ãããžã§ã¯ããæã£ãŠãããåäžã®ãã·ã³äžã®åçãã¢ã¹ã¿ã³ãã«docker-composeã䜿çšããŠããŸãã
/project-1
/dev # docker-compose.yml inside
/master # docker-compose.yml inside
/feature
/new-feature # docker-compose.yml inside
/project-2
/dev # docker-compose.yml inside
/master # docker-compose.yml inside
ãã®ãããããã¹ã¿ãŒããšãéçºè
ãã¯ãããžã§ã¯ãéã§ç«¶åããŠããŸãã .docker-compose
ãã¡ã€ã«ã§ããã解決ã§ããŸãã
@simplesmilerèªåèªèº«ãç¹°ãè¿ããªã¹ã¯ãåããŠã .env
ã¯ãã§ã«ããã解決ããŠããŸãã
@ shin- .env
ã¯ãããŒãžã§ã³ç®¡çãããŠããªãã·ãŒã¯ã¬ããã«ãã䜿çšãããŸãã
@simplesmilerãæãã§ããã®ã¯ã .env
ãããŒãžã§ã³ç®¡çã®å€ã«ä¿ã¡ãªããããããžã§ã¯ãåãããŒãžã§ã³ç®¡çã«ã³ãããããæ¹æ³ã§ãã
ç§ã®ç¥ãéãããããç°¡åã«è¡ãæ¹æ³ã¯ãŸã ãããŸããã
@thedeenoããã¯åœŒãã®æçš¿ãèšã£ãŠããããšã§ã¯ãããŸããã äžç·ã«åããŠããŸããïŒ ããã§ãªãå Žåã¯ãä»ã®èª°ãã®ãŠãŒã¹ã±ãŒã¹ãæç€ºçã«æžãããŠãããã®ãè¶ ããŠãããšæšæž¬ããã¹ãã§ã¯ãããŸããã
ç§ãã¡ã¯äžç·ã«åããŠããŸããã ããã圌ãã®åé¡ã®ç§ã®è§£éã§ãã å®å šã«å ¬å¹³ãªç¹ã§ãããç§ã¯ééã£ãŠãããããããŸããããæšæž¬ããŠãããããããŸããã
ã³ãŒããŒã飲ã¿ãªããäžç·ã«ä»äºãã§ãããããã®ã«ãšæããŸãã ç§ãããã§æ¥ãã§ãããšã¯æããªãã§ãã ããã
ãã¶ãç§ã¯ãã®ã¹ã¬ãããééã£ãŠèŠããŠããã ãã§ãïŒ .env
ç¡èŠãããŸãŸããããžã§ã¯ãåãããŒãžã§ã³ç®¡çã«ã³ãããããæ¹æ³ã¯ãããŸããïŒ
.envãç¡èŠãããŸãŸããããžã§ã¯ãåãããŒãžã§ã³ç®¡çã«ã³ãããããæ¹æ³ã¯ãããŸããïŒ ãããšããããã¯ãŸã äžè¶³ããŠããæ©èœã§ããïŒ
çŸåšã¯ãããŸããã æ°ãæåã«è¿°ã¹ãããã«^ 1ãããŒãžã§ã³ç®¡çã«å«ããããšãã§ããã»ã«ã³ããªenvãã¡ã€ã«ãšããŠdocker-compose.env
ã䜿çšããäºå®ã§ãã åªå
é äœã®ãªã¹ããããããäžåã£ãŠããŸãããããã«å°éããããšæã£ãŠããŸãã
1 / https://github.com/docker/compose/issues/745#issuecomment -345054893
ããã¯è¯ãç¥ããã ïŒ PRãåãå ¥ããŸããïŒ
ç§ã¯ãã£ãšåã«åžæããããããŸããããããäžåºŠè©ŠããŠã¿ãŸãããã
ããã«ããå€ãã®äººã¯ããªããã®èšå®ã®ããã«2çªç®ã®ãã¡ã€ã«ãç¶æããå¿ èŠãããã®ãââãŸã çè§£ããŠããªããšæããŸãã
ç§ãçè§£ããŠããããã«ãããã§ããã€ãã®å Žåãããã¯åœŒãã®ãããžã§ã¯ãã®ã»ããã¢ãããå£ããŸãã ãããããã®ã¹ã¬ããã®å€§å€æ°ã«ãšã£ãŠãããã¯åé¡ã§ã¯ãããŸããã ã§ã¯ããããã®å°æ°ã®äººã ãããã®æ©èœãæ¬ ããŠããä»ã®ãã¹ãŠã®äººã ã«ãã®å¶éã課ãã®ã¯ã©ãããŠã§ããïŒ ååãæ§æããŠæ±ºå®ãç§ãã¡ã«ä»»ããæ¹æ³ã«ã€ããŠãããã€ãã®ãªãã·ã§ã³ããªãã®ã¯ãªãã§ããïŒ
è«ççã«ãæå³ããããŸããã docker-compose.yml
ã«ãã®èšå®ããªãããšã¯æããã§ãããããããã¥ã¢ã«ã§ãã®ãªãã·ã§ã³ãæ¢ãããšãã«ããã®ãªãã·ã§ã³ãæ¬ èœããŠãããšã¯ä¿¡ããããŸããã§ããã ã»ããã¢ããã®ã»ãŒãã¹ãŠã®ä»ã®åŽé¢ãããã§æ§æã§ããŸãã ç§ã«ãšã£ãŠãããã¯æ§æããžãã¯ã®æç¢ºãªäžæã§ãã
docker-compose.yml
ïŒã»ãŒïŒãã¹ãŠã®èšå®ã¯ããããžã§ã¯ãåã«ãã£ãŠãã¹ã³ãŒãããããŠãããšèšãããšæããŸãã
ïŒ4841ã§ææ¡ãããŠããããã«ã䜿çšãã.envãã¡ã€ã«ïŒã€ãŸã--env-file
ïŒãæå®ãããªãã·ã§ã³ã¯éåžžã«äŸ¿å©ã§ãã
@roipoussierehttps ïŒ //github.com/docker/compose/issues/4841#issuecomment-414543951ãåç §ããŠãã ãã
@ schmunk42ã«æè¬ããŸãã
ããããããã¯ç§ã次ã®ãããªéå±€ãäœæããªããã°ãªããªãããšãæå³ããŸãïŒ
.
âââ project_a
â  âââ .env
âââ project_b
â âââ .env
次ã®ãããªç°¡åãªãã®ã®ä»£ããã«ïŒ
.
âââ a.env
âââ b.env
ã¯ãã httpsïŒ //github.com/docker/compose/issues/745#issuecomment -345054893ãåç §ããŠããã§é衚瀺ã«ãªãããšããããããæ°ãããŠã£ã³ããŠã§éãå¿ èŠãããå ŽåããããŸãïŒnerd_faceïŒ
2çªç®ã«--env-file
ææ¡ã§ãã ãã®ããã ãã«ãã±ãããäœã£ãã ãã®ãªãã·ã§ã³ãå¿
èŠãªå Žåã¯ãè¡ã£ãŠ
ã ããç§ã¯ãã®ãã°/æ©èœã«ã€ããŠããã€ãã®ã³ã¡ã³ããèªãã ã ãã§ãããããŠè°è«ãç¶ããŠããŠãããéãããŠãããšããäºå®ã¯ãããæåã«éãããŠãã4幎ãçµã¡ããŸã 解決çããªããšããçµè«ã«ç§ãå°ããŸããïŒ éšåçãªæ±ºå®ãããŠããå ã«é²ãããšã¯ã§ããŸããïŒ
確ãã«ããã®åé¡å
šäœãšé¢é£ãããã¹ãŠã®åé¡ãèªãã ããã§ã¯ãããŸãããããã®ãããã¯ã«ã¯è峿·±ãåé¡ããããäžèŠãããšãããããè€éã«ãªã£ãŠããŸãã ããšãã°ã .env
ã¯äžè¬çã«ç§å¯ã®å€ã«äœ¿çšãããããšã¯èª°ããç¥ã£ãŠããã®ã§ãéåžžã¯ããŒãžã§ã³ç®¡çãããããç¡èŠããŸãã
ãã ããStripeã䜿çšããŠãããšããŸããããããã«ããããã¹ãããŒãšã©ã€ãããŒïŒå¥åïŒã䜿çšã§ããããã«ãªããŸãã 䜿çšãã2ã»ããã®ããŒã éçºã§ã¯ãã¹ãããŒã䜿çšããã®ãéåžžã«äžè¬çã§ãããæ¬çªç°å¢ã§ã¯ã©ã€ãããŒã䜿çšããããšã«ãªããŸãã
ã€ãŸããç°å¢ããšã«ç°ãªãããŒãããããã¡ã€ã«å
ã®å€ãå®è¡ãšå®è¡ã®éã«åãæ¿ããå¿
èŠããªãããã .env
ãåç¬ã§äœ¿çšããŠã·ãŒã¯ã¬ããå€ãåŠçããããšã¯ã§ããŸããã devãŸãã¯prodã®ã¢ããªïŒã¯ã¬ã€ãžãŒã§éåžžã«ãšã©ãŒãçºçããããïŒã
æçµçã«è¡ãå¯èœæ§ãé«ãã®ã¯ã .env
.env.prod
ãã¡ã€ã«ãšenv_file
ã§
ãã ããæ¬çªç°å¢ã§ã¯ãæ¬çªç°å¢ã®äœæãã¡ã€ã«ã§.env
ãš.env.prod
äž¡æ¹ãåç
§ããŸãã
ãããããããã©ãã«åãã£ãŠããã®ãããããŸããïŒ çŸåšãDocker Composeã§ã¯ããªãã·ã§ã³ã®env_file
ãã¡ã€ã«ã䜿çšã§ããŸããã ãã¡ã€ã«ãååšããªãå ŽåãDockerComposeãå®è¡ããããšãããšããã«DockerComposeãççºããŸãã
ããªãã¯ãèªåçã«å¿
èŠãªã®ã§ã .env
ããªããããã䜿çšããäºå®ãããå Žåã¯ãæåŸã«ååšãããã¡ã€ã«ãenv_file
ãããã¯ã¹ãã©ã€ãã®ããããã«éå®ããããã®ã§ã¯ãããŸããã å€ãã®Webãã¬ãŒã ã¯ãŒã¯ã«ã¯ãç°å¢åºæã®ç¹å®ã®èšå®ããããŸãããéçºãšæ¬çªã®äž¡æ¹ã§å€æŽãããŸãïŒã€ãŸããFlaskã§ã¯SERVER_NAME
ïŒã
ã€ãŸããããŒãžã§ã³ç®¡çã«ã³ããããã.env_example
ãã¡ã€ã«ã®ãããªãã®ã«å¶éãããŠããããšã³ããŠãŒã¶ãŒããã®ãã¡ã€ã«ã®ååã.env
ã«å€æŽãããšããã®ãã¡ã€ã«å
ã«æ¬¡ã®ãã¡ã€ã«ãå«ãŸããããšã«ãªããŸããç§ãã¡ã®æ§åCOMPOSE_PROJECT_NAME
ã
ããã§åé¡ãçºçããŸãã ãããžã§ã¯ãåãèšå®ããå¥ã®æ¹æ³ãå®éã«å¿ èŠã§ããïŒ ç§ã¯ããããããšã確信ããŠããŸããããã«ã¹ã¿ã ãããžã§ã¯ãåãèšå®ããããšã¯ãã©ã®ãããžã§ã¯ãã§ãããŸãã¯å°ãªããšããã©ã«ãå以å€ã®ååãèšå®ããããšã¯è¯ãèãã§ãããšç¢ºä¿¡ããŠããŸããååã®ç«¶åãçºçããããããã§ãã
ãã®åé¡ã¯ããã€ãã®ããŒããããã«ãããŸããïŒ
ãã®ãŠãŒã¹ã±ãŒã¹ã¯ããããžã§ã¯ãã«è€æ°ã®docker-composeãã¡ã€ã«ïŒããšãã°ãdevãtestãããããbaseãããããtest localãªã©ïŒãããå Žåã«COMPOSE_PROJECT_NAMEã倿Žããããšã§ããã¹ãã³ããå¿ èŠããããããããŸãããäºãã«åé¢ããã2ã€ã®éåžžã«ç°ãªãç°å¢ã
ãã®å Žåãã¡ã€ã¯ãã¡ã€ã«ã«COMPOSE_PROJECT_NAMEãäœæããããšã§ããã®docker-composeã®å¶éãåé¿ã§ããŸãã
ãããcomposeyamlèªäœããæ§æã§ããããã«ããããšæããŸãã
ããã¯ãŸã éããŠããŸããïŒ äœãŠããšã ...
賌èªããŸããã ãŸããcomposeyamlãã¡ã€ã«ã«ãããžã§ã¯ãåãèšå®ã§ããããã«ãããã§ãã
ããã¯æ°žé ã«ããããŸãð€Šââ
ãã®æ©èœããããšéåžžã«åœ¹ç«ã¡ãŸã
ãã®æ©èœã¯ãç§ãåãçµãã§ãããããžã§ã¯ãã§ã¯å€§æè¿ã§ãã
ããŠããã®é·ãã¹ã¬ããããããããžã§ã¯ãåã¯docker-compose.ymlãã¡ã€ã«ã«å«ãŸããªããšçµè«ä»ããããšãã§ããŸããããã¯ãã¡ã€ã³ã®éçºè ãããã«å察ããŠããããã®ãããªãã«ãªã¯ãšã¹ããããŒãžããªãããã§ãã
ããã§ã¯ãå ã®ææ¡ã«æ»ã£ãŠããã®åé¡ã®åé ã«ãããããžã§ã¯ãåãæ°žç¶åããŠãã ããã ãã¡ã€ã«.docker-composeãŸãã¯ãã£ã¬ã¯ããª.docker-composeã®ããããã䜿çšããããšã¯ãç§ã«ã¯åé¡ãªãããã«æããŸãã ããããæçµçã«ãããå®è£ ããäžã§ããããã®é²æ©ãåŸãããšãã§ããã°çŽ æŽãããã§ãããã
ãã®éžæè¢ã®ãªã¹ãã«ENV倿°ã远å ããŸãã
ãã¹ãŠã®äžäžèŽã®å®è³ªçãªåå ã¯ããã®ã¹ã¬ãã/åé¡ã¯ãå€ãã®äººã«ãšã£ãŠãENV倿°å ã«ãããšæ©èœããªããšããããšã§ãã 圌ãã¯ããããªããžããªã«ã³ãããã§ããããšãæãã§ããŸãïŒãã¡ãããæšæºã®æšå¥šäºé ã¯ãããã³ãããããªãããšã§ãïŒã
yamlã®ã³ã³ãã³ãã§ã¯ãªãENVã«ããããšã¯ãç°ãªããããžã§ã¯ãéã§yamlãã¡ã€ã«ãå ±æãããšããå²åŠãšççŸããŸãã å®éãå ¬åŒã«ææžåãããŠããŸãïŒ https ïŒ//docs.docker.com/compose/extends/ïŒããšãã°ãããŠãŒã¹ã±ãŒã¹ã®äŸããåç §ïŒã åäžã®ããŒã¹yamlãã¡ã€ã«ã䜿çšããdevãtestãprodã®ãã¡ã€ã«ããªãŒããŒã©ã€ãããç¥ãä»ã«äœãç¥ã£ãŠããå Žåãåããããžã§ã¯ãåã§å®è¡ããããENV / cliã§ãããžã§ã¯ãåãèšå®ãããããŠãæå³ããããŸããã Nãæå¹ãªéã¯ãN * Nã®çµã¿åãããäœæããã ãã§ãã
ç§ã¯ãããã®è°è«ã®ããã€ããæšªæãããããžã§ã¯ãåãYMLãã¡ã€ã«ã§æ§æå¯èœã«ããããšãæãã§ãã人ã ããã®ã³ã¡ã³ãã®ãã³ãèŠãŸããã ãããããããè¡ãããã¹ãã§ã¯ãªãçç±ã説æããåäžã®ã³ã¡ã³ãã§ã¯ãããŸããã ãããã®è°è«ã¯å€ããããããŸãã
䜿ãããããœãªã¥ãŒã·ã§ã³ãæ¢ããŠããŠãå®è¡ãããã³ãã³ãã©ã€ã³ã«æ³šæãæãå¿
èŠã®ãªããããžã§ã¯ãåãèšå®ããç°¡åãªæ¹æ³ããªãããšã«æ°ä»ãã人ãšããŠïŒããã¯ãããªãã䜿çšããããŒã«ã®ã³ã¢ã¢ã€ãã¢ãšç«¶åããŸãïŒ up
ãæž¡ãããµãŒããŒã®å®å
šãªã¯ã©ã¹ã¿ãŒãéæ³ã®ããã«éå§ããŸãïŒ-ãããæªè§£æ±ºã®è³ªåã§ããããšã«ã·ã§ãã¯ãåããŸããã ãªãåé¡ãããã®ãââãå®è£
ããã®ãé£ããã®ãã«ã€ããŠæç¢ºãªèª¬æãããã°ãèå³ããããŸãã
ãšã¬ã¬ã³ããªè§£æ±ºçã¯ã container_name
ããããã£ã§ãã¬ãŒã¹ãã«ããŒã䜿çšããããšã§ãïŒããã³ããªã¥ãŒã ããããã¯ãŒã¯ãªã©ã®ä»ã®åçãªååä»ãïŒ
services:
my_service:
container_name: {project_name}_{service_name}_{instance_number} # default value
ãã®ãããªæ§æã§ã¯ã
services:
my_service:
container_name: fixedprojectname_{service_name}_{instance_number}
ç·šéïŒããã¯å®ç§ãªè§£æ±ºçã§ã¯ãããŸãããåããã©ã«ããŒåå ã§2ã€ã®ç°ãªããããžã§ã¯ãã䜿çšãã人ã«ãšã£ãŠã¯ç«¶åããããã§ãã
@jderusse
ãšã¬ã¬ã³ããªè§£æ±ºçã¯ã
container_name
ããããã£ã§ãã¬ãŒã¹ãã«ããŒã䜿çšããããšã§ãïŒããã³ããªã¥ãŒã ããããã¯ãŒã¯ãªã©ã®ä»ã®åçãªååä»ãïŒservices: my_service: container_name: {project_name}_{service_name}_{instance_number} # default value
ãã®ãããªæ§æã§ã¯ã
services: my_service: container_name: fixedprojectname_{service_name}_{instance_number}
ç·šéïŒããã¯å®ç§ãªè§£æ±ºçã§ã¯ãããŸãããåããã©ã«ããŒåå ã§2ã€ã®ç°ãªããããžã§ã¯ãã䜿çšãã人ã«ãšã£ãŠã¯ç«¶åããããã§ãã
ç§ããããè¡ã£ãŠãããããã§ç«¶åã®åé¡ãä¿®æ£ããããšæããŸãããã COMPOSE_PROJECT_NAME
倿°ã.env
ãã¡ã€ã«ã®äžæã®å€ã«èšå®ããå¿
èŠããããŸãã
ãã®æç¹ã§ãã¡ã³ããããœãªã¥ãŒã·ã§ã³ãæåŠããŠããçç±ãæ¬åœã«çè§£ããããšæããŸãã ãœãªã¥ãŒã·ã§ã³ã®ãã«ãªã¯ãšã¹ãã¯ãã§ã«ãããŸãã
äœãæªãã®ããããã£ããããããä¿®æ£ããããšãã§ããŸãã ãã®æç¹ã§ããæåŠã以å€ã®ãã£ãŒãããã¯ã¯è¡šç€ºãããŸããã
ãããã®2ã€ã®ã³ã¡ã³ãããããŸãïŒ
https://github.com/docker/compose/issues/745#issuecomment -345054893
https://github.com/docker/compose/issues/745#issuecomment -346487757
ããããç§ã¯ãããã®ã³ã¡ã³ããèªãã§ãèªããªããã°ãªããŸããããªããããžã§ã¯ãåãyamlãã¡ã€ã«ã«è¿œå ããªãã®ãå®å šã«ã¯çè§£ããŠããŸããã docker-compose.yamlãã¡ã€ã«ã®äžè¬æ§ãäœäžãããšèãã人ã¯ãyamlãã¡ã€ã«ã«ååãå ¥ããªãã§ãã ããããã ããä»ã®äººã«ãããããªãã·ã§ã³ãäžããŠãã ããã
OKãç§ã¯ä»ã®ã³ã¡ã³ããžã®åç §ãèªãããã«æåãå°œãããŠããŸãã ç§ãæ£ããããšãèªãã§æ£ããã³ã³ãã³ããååŸããŠããããšã確èªããã®ã«åœ¹ç«ã€ãªãã¡ã¬ã³ã¹ã«å ããŠããªãã¡ã¬ã³ã¹ã®ã³ã³ãã³ããåç §ããå°ãªããšãçãå®£äŒæãæ¬åœã«æè¬ããŸãã
ç§ãèŠãŠãããã®ãæžå¿µäºé ã§ããããšãèŠçŽããããšæããŸãã ãããæç¢ºã«ããããã®å©ããããã ããã°å¹žãã§ãã
ïŒ1ïŒYMLãã¡ã€ã«ã«ãããžã§ã¯ãåã远å ãããšãè€æ°ã®ãããžã§ã¯ãåã§1ã€ã®YMLãã¡ã€ã«ãå®è¡ã§ããªããªãããå°ãªããšãè€éã«ãªãããããããžã§ã¯ãã®åå©çšæ§ãäœäžããå¯èœæ§ããããŸãã
ïŒ2ïŒãïŒãã®åœ¢åŒã§ïŒãããžã§ã¯ãã远å ããããšãæ£åœåããã«ã¯ãçµæãšããŠãããžã§ã¯ãã®å質ã倧å¹
ã«äœäžããã
ïŒ3ïŒããããžã§ã¯ãåãäœæãã¡ã€ã«ã«ããå Žåã2ã€ã®ãããžã§ã¯ãã§åãååã䜿çšãããšãç«¶åãçºçããäž¡æ¹ã®ãããžã§ã¯ããç Žæããå¯èœæ§ããããŸããã
ç§ã¯ãããã«ã€ããŠèããŸãããã察åŠããå¿ èŠã®ããæžå¿µã«ã€ããŠåæã§ãããŸã§ã³ã¡ã³ããä¿çããŸãã ããã¯åççã§ããïŒ
ïŒ4ïŒäžäœäºææ§ã®ããæ¹æ³ã§ã®å®è£ ïŒå€ã®åªå é äœ/é åºïŒ
ïŒ1ïŒYMLãã¡ã€ã«ã«ãããžã§ã¯ãåã远å ãããšãè€æ°ã®ãããžã§ã¯ãåã§1ã€ã®YMLãã¡ã€ã«ãå®è¡ã§ããªããªãããå°ãªããšãè€éã«ãªãããããããžã§ã¯ãã®åå©çšæ§ãäœäžããå¯èœæ§ããããŸãã
ç¹°ãè¿ãã«ãªããŸãããæ§æãããŒã¹ãšãã¡ã€ã«ã«åå²ããŠç¶æ¿ããå ¬åŒã®æ¹æ³ããããŸã-httpsïŒ//docs.docker.com/compose/extends/ã åºæ¬æ§æã§ãããžã§ã¯ãåãèšå®ã§ããŸããã§ããã
ç§ã«ãšã£ãŠãç§ãæ¢ããŠããäž»ãªãŠãŒã¹ã±ãŒã¹ã¯ããããžã§ã¯ãã®è€æ°ã®ã€ã³ã¹ã¿ã³ã¹ãããŒã«ã«ã§å®è¡ããæ©èœã§ãïŒéçºããã¹ãç°å¢ãªã©ïŒã
ãããã解決çã¯ããããžã§ã¯ãåãæç€ºçã«èšå®ãããããã¹ãã©ããŒãµã«ãèšå®ã§ããããã«ããããšã§ãã
yamlãã¡ã€ã«ã§ãããžã§ã¯ãåãmy-project
ããã«æç€ºçã«èšå®ãããšããããžã§ã¯ãã®åäžã€ã³ã¹ã¿ã³ã¹ã®å Žåãããã¹ãŠã®Dockerãã¡ã€ã«ãdocker
ãã©ã«ããŒã«è¿œå ãããããªå Žåã«ç°¡ç¥åã§ããŸããè€æ°ã®ãããžã§ã¯ãã«ãŸããã£ãŠã
.
âââ project_a
â âââ docker
â â âââ docker-compose.yml (project_name: my-project)
âââ project_b
â âââ docker
â â âââ docker-compose.yml (project_name: some-other-project)
ããããããã¯åããããžã§ã¯ãã®è€æ°ã®ã€ã³ã¹ã¿ã³ã¹ã§ã¯åœ¹ã«ç«ããªãã®ã§ããã¹ãã©ããŒãµã«ã§äœããããã®ã¯ã©ãã§ãã
project_name: ../(*)
ã ãããåãäŸã§
.
âââ project_a
â âââ docker
â â âââ docker-compose.yml (project_name=project_a)
âââ project_b
â âââ docker
â â âââ docker-compose.yml (project_name=project_b)
âââ project_b_copy
â âââ docker
â â âââ docker-compose.yml (project_name=project_b_copy)
åæ§ã«project_name: ../(../*)
.
âââ dev
â âââ project_a
â â âââ docker
â â â âââ docker-compose.yml (project_name=dev_project_a)
âââ test
â âââ project_a
â â âââ docker
â â â âââ docker-compose.yml (project_name=test_project_a)
ãã©ããŒãµã«ãæå®ããæ¹æ³ã¯ãããããç§ã®èŠªæãããå°ãæ·±ãèããå¿ èŠããããŸãããå°ãªããšããããè¡ãããšã§ããã¹ãŠã®ãŠãŒã¹ã±ãŒã¹ãã«ããŒããæè»æ§ããããšæããŸãã
åè«ååã ãïŒã€ãŸããdocker-compose.ymlã§åºå®åãæ§æãããšããããšã¯ãå¿
èŠãªååã§ãã¡ã€ã«ãäœæããŠããã project_name: name-of-the-file-named-like-the-name-i-want
èšå®ãããšããããšã§ãã
çŸåšãåããã£ã¬ã¯ããªã«docker-compose
ãã¡ã€ã«ãdc-work.yml
ã dc-server.yml
ãªã©ã®ããã«ããã¹ãŠãç°ãªãç¡é¢ä¿ã®ãµãŒãã¹ãããŒãããŸãã
docker-compose up dc-A.yml
ãå®è¡ããŠããã docker-compose up dc-B.yml
å®è¡ãããšãDockerã¯ãå€ç«ãããµãŒãã¹ãå®è¡ãããŠããããšãéç¥ããŸãïŒãã¡ãããå®è¡ãããŠããªãã®ã¯ããããžã§ã¯ãåãã²ã©ãããã§ãïŒã
ããã解決ããæ¹æ³ã¯æ¬åœã«ãããŸãããïŒ ådc-A|B|C|etc.yml
ãã¡ã€ã«ãç¬èªã®ãã£ã¬ã¯ããªã«ç§»åããŠãããããããã«ç§»åããŠãã¹ãŠã®ãµãŒãã¹ãããŒãããã®ã¯ãæ¬åœã«æéã®ç¡é§ã®ããã«æããŸããããããšãäœããè¶³ããŸãããïŒ
ãã®åé¡ã解決ãããŠããªãã®ã¯ãªãã§ããïŒ æç¢ºã§ãããããã解決çã¯ã @ cr7pt0gr4ph7ã«ãã£ãŠããã«æç€ºããhttps ïŒ//github.com/docker/compose/issues/745#issuecomment-182296139ã ããããã®è³æç¥šãç²åŸããŸããã è°è«ã®äžã§ããã¹ãŠã®æžå¿µãåãäžããããŸããã ãããŠãæãéèŠãªããšã¯ãããã¯å€ãã®äººã ã®å€ãã®åé¡ã解決ããããšã§ãã äœãåŸãããŸããïŒ
ãŸããDockeré¢é£ã®ãã®ããã¹ãŠå«ã.dockerãã©ã«ããŒãæã€åºå®ãããžã§ã¯ããã£ã¬ã¯ããªæ§é ã䜿çšããŠããããããã®åé¡ãçºçããŸãããã®ãããå€ãã®.dockerãããžã§ã¯ãåã衚瀺ãããŸã-ãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã«åãçµãã§ããŸããããã£ãŠãè€æ°ã®ã¢ãããããã®ã¯æ£åžžã§ã...ãããããã®å°ããªããšã¯éªéã«ãªãç¶ããŸã->ãŸããPHPStormãªã©ã«ã¯-p / -project-diråŒæ°ãæž¡ããªãã·ã§ã³ããªããç§ã¯ã§ããŸããæ¬åœã«ããã«ã¯.envã䜿çšããŸãããªããªããç§ãä¿¡ããŠãæ£ããå€ãèšå®ããã®ãå¿ããŠããŸãããã§ã...
éçºè ã®æ¹ã¯ãã©ã®ããã«è§£æ±ºããããããç¥ãããã ããã
ãã¶ãããããžã§ã¯ãåãèšå®ããããã«docker-composeãã¡ã€ã«ã«ããããã£ã远å ããŸããïŒ
@AyushyaChitransh
éçºè ã®æ¹ã¯ãã©ã®ããã«è§£æ±ºããããããç¥ãããã ããã
ããã¯æé«ã®èŠçŽã§ãïŒ
https://github.com/docker/compose/issues/745#issuecomment -182296139
ããããã®è°è«ããããŸããã ãã以äžè°è«ããå¿ èŠã¯ãããŸããã ãããžã§ã¯ãã®ã¡ã³ããã¯ãã¹ã¬ããïŒè€æ°åœ¢ïŒãèªãã§å¿ èŠãªããšãããã ãã§ãã
ç§ã«ãšã£ãŠã¯ãŸã ããã§ãïŒ https ïŒ
ç§ã«ãšã£ãŠã¯ãŸã ããã§ãïŒ ïŒ745ïŒã³ã¡ã³ãïŒ
ã¯ããæ¢åã®ããããäžååãªè§£æ±ºçããããŸãã ãããã®ã³ã¡ã³ãã¯å察祚ãæããããåé¡ã¯å€ãã®äººã«ãã£ãŠæç¢ºã«è¿°ã¹ãããŠããŸãã ãªã³ã¯ãããã³ã¡ã³ãã¯ããããã®ã¹ã¬ããã§æèµ·ãããæ£åœãªæžå¿µã®ã»ãšãã©ã«å¯ŸåŠããŠããŸããã
Tbhãããã¯äžçš®ã®è«ç¹ã§ãã ç§ãã¡ã®å€ãã¯ã docker-compose
ã¿ã€ãã®æ©èœã®ããã«Kubernetesã«ç§»è¡ããŸããã å°ãåé·ã§ãã ããããããã¯æ©èœããŠãããã¯ã©ãŠããã³ããŒã«ãã£ãŠååã«ãµããŒããããŠããŸãã
@AyushyaChitransh
ããã§èª¬æããããã«ãã¡ã«ããºã ã䜿çšããŠãããžã§ã¯ãåãèšå®ããŸãïŒ https ïŒ
ããã«ç°è°ããããšã¯æããªãã§ãã ããã
ããã«ã¯ãåè¿°ã®ããã«ã container_name
ã䜿çšããå Žåã®ç§»æ€æ§ã«é¢ãããã®ããããŸããããããdocker-compose.yml
äžéšã§ãã£ãŠã¯ãªããŸããã åãæ§æãæ¢åã®èšå®ã§åå©çšããããšã¯ã§ããŸããã
ã¯ãŒã¯ãããŒããã©ã«ããŒãã¹ã«äŸåããŠããŠãã©ããããããproject-name
ãæ§æã«æ¿å
¥ãããå Žåã ããŒãžãè€æ°ã®äœæãã¡ã€ã«ããã³ãã¬ãŒããªã©ãéããŠã...-åãåé¡ãçºçããŸã-æ¢åã®ã¹ã¿ãã¯ãäžæžãããŸãã
ç³ãèš³ãããŸããããããã¯wontfixãšããŠ
@ schmunk42
ã¯ãŒã¯ãããŒãfolder-pathã«äŸåããã©ããããããproject-nameãæ§æã«æ¿å ¥ãããå Žåãããšãã°ã ããŒãžãè€æ°ã®äœæãã¡ã€ã«ããã³ãã¬ãŒããªã©ãéããŠã...-åãåé¡ãçºçããŸã-æ¢åã®ã¹ã¿ãã¯ãäžæžãããŸãã
ãŸãããããžã§ã¯ãåã¯ããããå¿
èŠãšãããŠãŒã¶ãŒã«ãã£ãŠã®ã¿äœæãã¡ã€ã«ã«èšå®ãããŸããããã¯ãäœæãã¡ã€ã«ãæ¢åã®ã¹ã¿ãã¯ã§æ©èœããããšãæãã§ããããã§ãã ãã®èšå®ã«é¢ããããã¥ã¡ã³ãã«èŠåã远å ã§ããŸãã
次ã«ãç¹å®ã®ãããžã§ã¯ãåã«äŸåããŠããå Žåã¯ã次ã®ããšãèæ
®ããŠãã ããã
ãããwontfixãšããŠéããããšã¯ãäžèšãååã§ã¯ãªãçç±ã説æãããã解決çãžã®éãæäŸãããããªãéããããŸã圹ã«ç«ã¡ãŸããã
ç§ã®ã¯ãŒã¯ãããŒïŒãŸãã¯ããŒã å šäœã®ã¯ãŒã¯ãããŒïŒããã³ãŒãããã§ãã¯ã¢ãŠããããã©ã«ããŒã®ååã«äŸåããããšãæãã§ããŸããã
.envãã¡ã€ã«ãœãªã¥ãŒã·ã§ã³ã«é¢ããç§ã®äž»ãªåé¡ã¯ããã®ãã¡ã€ã«ãã³ãã³ãrunã®äœæ¥ãã£ã¬ã¯ããªã«ããå¿
èŠãããããšã§ã-äžæ¹ãdocker-composeã¯composeãã¡ã€ã«ã芪ãã£ã¬ã¯ããªã«è§£æ±ºããŸãã ãããã£ãŠããã¹ãŠã®éçºè
ãïŒAïŒåãååã®ãã©ã«ããŒã«ã³ãŒãããã§ãã¯ã¢ãŠããããïŒã³ãŒããªããžããªã®ã«ãŒãã«ããdocker-compose.ymlãã¡ã€ã«ãæ³å®ïŒãïŒBïŒã§docker-composeã³ãã³ãã®ã¿ãå®è¡ããããšãäžå¯æ¬ ã«ãªããŸãããã以å€ã®å Žåããªããžããªã®ã«ãŒããã©ã«ããŒã¯ç«¶åããã¹ã¿ãã¯ãäœæããããïŒCïŒã¹ã¿ãã¯åãç°ãªãããã¹ãŠã®ããã¥ã¡ã³ããšã¹ã¯ãªããã§replace stack name here
ãšèšãå¿
èŠããããŸãã
ïŒCïŒãæšå¥šããããããŒã¿ãã«ããœãªã¥ãŒã·ã§ã³ãšããŠdockerãææ¡ãããã®ã§ããå Žåãdocker-composeCLIã¯dockerCLIã³ãã³ããåããæ©èœãåããŠããå¿ èŠããããŸããããã§ãããã®æ©èœã®äœ¿çšäŸã¯ãŸã ãããŸãã
ã¯ãŒã¯ãããŒãfolder-pathã«äŸåããã©ããããããproject-nameãæ§æã«æ¿å ¥ãããå Žåãããšãã°ã ããŒãžãè€æ°ã®äœæãã¡ã€ã«ããã³ãã¬ãŒããªã©ãéããŠã...-åãåé¡ãçºçããŸã-æ¢åã®ã¹ã¿ãã¯ãäžæžãããŸãã
ãããžã§ã¯ãåãdocker-composeãã¡ã€ã«ã«è¿œå ãããå Žåãããã¯ç¢ºãã«çç±ããããŸãïŒdocker-composeãã¡ã€ã«ã®ä»ã®ãã¹ãŠã®è¡ãšåæ§ïŒã æ²ããããšã«ãä»ã¯ãã§ãã¯ã¢ãŠããããã©ã«ããŒã®ååã倿Žããã ãã§ãïŒgitã§è¿œè·¡ããã倿Žãå ããŠããªãïŒãã·ã¹ãã ãå£ããŠããŸãã
2020幎ã ãšã¯ä¿¡ããããŸãããããã®å·šå€§ãªãŠãŒã¹ã±ãŒã¹ã¯ãŸã ä¿®æ£ãããŠããŸããã ããã¯é倧ãªå€æŽã§ã¯ãªããå®å šã«ãªãã·ã§ã³ã®æ©èœã§ãããå®å šã«çã«ããªã£ãŠããŸãã Kubernetesãdockerã®äºå®äžã®ãããã€ããŒã«ã«ãªã£ãããšãèãããšãdocker-composeã¯éçº/ããŒã«ã«ãããã€ã¡ã³ãã§ã®äœ¿çšãã»ãšãã©ã§ããããªããžããªã®ã«ãŒãã«docker-composeãã¡ã€ã«ãé 眮ããŠãªããžããªå ã®ã³ãŒããããŒã«ã«ã§å®è¡ããããšã¯éåžžã«äººæ°ããããŸã䜿çšäºäŸã
@ dc-pmã¯æ¬¡ã®ããã«æžããŠããŸãïŒãKubernetesãDockerã®äºå®äžã®ãããã€ããŒã«ã«ãªããŸããã
docker-composeãã¡ã€ã«ãäœæããªããªããŸããã çç£ãèŠãããªããã®ã«ã¯ååãªã¡ãªããããããŸããã Kubernetesã«ãçããããŸãã ããããããã¯ã¯ã©ãŠããã³ããŒã«ãã£ãŠåºããµããŒããããŠããŸãã
æ£çŽãªãšãããç§ã®éçºç°å¢ã§ã³ã³ãããŒãæ±ãããšã§ãããæ¥ã éåžžã«é¢åã§ãã ããã°ã©ã ãå®è¡ããã ãã§ã...
@ dc-pmã¯æžããïŒ
2020幎ã ãšã¯ä¿¡ããããŸãããããã®å·šå€§ãªãŠãŒã¹ã±ãŒã¹ã¯ãŸã ä¿®æ£ãããŠããŸããã
ä¿®æ£ãããŠããªãã ãã§ãªããéçºè ãç©æ¥µçã«ä¿®æ£ãæåŠããŠããã®ã§ãã
åé¡ã¯ããã®ãœãããŠã§ã¢ãéçºãã10代ã®è¥è ãããã®ãŠãŒã¹ã±ãŒã¹ã®æå³ãçè§£ããããã®æ·±ãçµéšãæã£ãŠããªããããŸãã¯å¯ŸåŠãèŠæ±ããçµéšè±å¯ãªãŠãŒã¶ãŒã®èšå€§ãªæ°ã«è³ãåŸããŠããªãããšã§ãã ãã®æç¹ã§ã圌ããè€æ°ã®ã¹ã¿ãã¯ãããç°å¢ã§ããããã¯ããããããŒã ã§ããåããããšããããšã¯æããŸããã ããã§ãªããã°ãççŽã«èšã£ãŠã_ããã¯å®å šã«æçœãªæ©èœåŒ·åã«ãªãã§ãããïŒ_
ããã€ãã®ãã¬ã³ããªãŒãªãªãã€ã³ããŒ...
ãªãŒãã³ãœãŒã¹éçºè
ã¯ããªãã®ãåŸæ¥å¡/倧åŠãã§ã¯ãªããã»ãšãã©ã®å Žåã圌ãã¯ã»ãšãã©ç¡æã§åããŠããŸãã
ãããæããã«ããªãã«ãšã£ãŠåé¡ã§ããå Žåã¯ã解決çã調æ»ãââãïŒãããŠPRãããã·ã¥ããïŒããã«å°ãæéãããããŸãã
éé£ã¯è§£æ±ºçã§ã¯ãããŸããã
https://github.com/docker/code-of-conduct/blob/master/code-of-conduct-EN.md
éçºè ãããã«å察ããŠãããšãã«å€æŽãããã·ã¥ããããšã¯ããªãé£ããã§ã...
åã§ã¯ãåå3æ19æ2020幎3æ14æ¥ãã¢ã³ãã¯ãŒãGravelot [email protected]
æžããŸããïŒ
ããã€ãã®ãã¬ã³ããªãŒãªãªãã€ã³ããŒ...
ã»ãšãã©ã®å ŽåããªãŒãã³ãœãŒã¹éçºè ã¯ããªãã®ãåŸæ¥å¡/倧åŠãã§ã¯ãããŸãã
圌ãã¯ã»ãšãã©ç¡æã§åããŠããŸãã
ãããæããã«åé¡ã§ããå Žåã¯ã解決çã調æ»ãââãããã«æéããããŠãã ãã
PRãããã·ã¥ããŸããéé£ã¯è§£æ±ºçã§ã¯ãããŸããã
https://github.com/docker/code-of-conduct/blob/master/code-of-conduct-EN.md
â
ããªããã³ã¡ã³ãããã®ã§ããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/docker/compose/issues/745#issuecomment-598991880 ããŸãã¯
éäŒ
https://github.com/notifications/unsubscribe-auth/ABAXP2DRD7H4YI7KQ7B2URLRHLLQ5ANCNFSM4AZMCNWA
ã
@agravelotããã€ãã®PRããã£ããšæããŸãããçæ³çã§ã¯ãªããããããŸããã ãããããã¹ãŠã®ãã£ã¹ã«ãã·ã§ã³ãéããŠãææè ã¯ãã®æ©èœãæãŸãªããšããæåŸ ãéåžžã«æç¢ºã«èšå®ããŠããŸãã ã³ãŒãã£ã³ã°ã®åé¡ã§ã¯ãããŸããã
@agraveloté ããŠãã¿ãŸããã ãããŠãç§ã¯æ¬åœã«ããã«è²¢ç®ããå€ãã®çŽ æŽããããŠæèœã®ãã人ã ã軜èŠããªãããšãæå³ããŸããã ããããåªåã®æ¬ åŠãéé£ããããšã圹ã«ç«ã¡ãŸããã
ç§ã¯ãéåžžã«é·ãæéã«ãããæç¢ºãªæ¯æã«ãããããããæ°ãåããªãã»ã©ã®æ©äŒã«èãããªãã£ãã¢ã€ãã¢ã®æ¯æãåã«åŒ·èª¿ããŸãã ç§ãã¡ã®è¡åèŠç¯ã§å®çŸ©ãããŠãããã®ïŒãããŠäžè¬çã«ã¯OSSïŒã®å šäœçãªãã€ã³ãã¯ã人ã ãã³ãŒããæäŸãããã¹ãŠã®ã¢ã€ãã¢ãå°éã§ããããã«ããããšã§ãã
ãã§ã«è€æ°ã®ãã«ãªã¯ãšã¹ããäœæãããŠããŸããããããç¶æ³ã«åœ¹ç«ã€å Žåã¯ãå¥ã®ãã«ãªã¯ãšã¹ããäœæã§ããŠãšãŠãããããã§ãã
ãã建èšçãªæ¹æ³ã¯äœã§ããããïŒ
ãã§ã«è€æ°ã®ãã«ãªã¯ãšã¹ããäœæãããŠããŸããããããç¶æ³ã«åœ¹ç«ã€å Žåã¯ãå¥ã®ãã«ãªã¯ãšã¹ããäœæã§ããŠãšãŠãããããã§ãã
ã¯ããéçºè ã¯ã¬ãã¥ãŒãç¶ããããããããä¿®æ£ããªããïŒããããè°è«ïŒãšããŠéããå¿ èŠããããŸã...å ¬åŒã®ãã£ãŒãããã¯ãªãã§ãããäœå¹ŽãéãããŸãŸã«ããŠãããšãïŒæãåºãæå³ã§ïŒè²¢ç®è ã®æéãç¡é§ã«ããŠããã ãã§ãïŒã ãããç¡ç€Œã§ããIMOã
ãããã¿ããªããŠãŒã¶ãŒãšããŠç§ã¯èªåã®ãŠãŒã¹ã±ãŒã¹ãå ±æãããã£ãã ãã§ãã ã€ãŸãã2ã€ã®docker-compose.ymlãã¡ã€ã«ããããŸãã1ã€ã¯éçºç°å¢çšããã1ã€ã¯æ¬çªç°å¢çšã§ãã ãããã¯åããã©ã«ãã«ãããŸãã ã©ã¡ãã«ããããŒã¿ããŒã¹ããšåŒã°ããåãååã®ãµãŒãã¹ããããŸãã ãããã®ãµãŒãã¹ã®äž¡æ¹ãåæã«ãããã€ããããšæããŸããã§ãããšããçç±ã ãã§ãããã¯ç§ãã¡ã話ããŠããã³ã³ããåã§ãããå¿ èŠãªã ãæ¡åŒµã§ããŸãã ãã ãããcontainer_nameãã®å€ã¯ç°ãªããŸãã
ã ããç§ã¯å®è¡ããŸãïŒ
macbook@fuck-fuck autocat-server % docker-compose -f ./compose-dev.yml up -d database
Creating network "autocat-server_autocat-dev" with the default driver
Creating database-dev ... done
macbook@fuck-fuck autocat-server % docker-compose -f ./compose-prod.yml up -d database
Creating network "autocat-server_autocat-prod" with the default driver
Recreating database-dev ... done
ãprodããããžã§ã¯ãã«ãããµãŒãã¹ãæç¢ºã«åç §ããŠãããšãã«ããrecreatingdatabase-devããšè¡šç€ºãããŠããããšã«æ³šæããŠãã ããã å®éã«æ¢åã®ã³ã³ãããäžæžãããŸãã ããŒã¿ããŒã¹ã¯çµäºããã³ã³ããã¯åŸè ã«çœ®ãæããããŸãã
ç§ã¯ãåå¥ã®ãdocker-compose.ymlããã¡ã€ã«ãåå¥ã®ãããžã§ã¯ããæå³ããããšãåæãšããŠãããè¡ã£ãŠããŸãããããã¯å®éã«ã¯åé¡ã§ã¯ãªãããã§ãã ãµãŒãã¹ããããã€ããããããžã§ã¯ãã¯ããdocker-compose.ymlãã®å Žæã«ãã£ãŠæ±ºãŸããŸãã ããããå¥ã ã®ãããžã§ã¯ãã®äžéšã«ããã«ã¯ãç°å¢å€æ°ã§ãããžã§ã¯ãåãå¥ã ã«æå®ããå¿ èŠããããŸãã ããã¯æçµçã«ããã§åäœããŸãïŒ
macbook@fuck-fuck autocat-server % COMPOSE_PROJECT_NAME=autocat-prod docker-compose -f ./compose-prod.yml up -d database
Creating network "autocat-prod_autocat-prod" with the default driver
Creating database-prod ... done
macbook@fuck-fuck autocat-server % COMPOSE_PROJECT_NAME=autocat-dev docker-compose -f ./compose-dev.yml up -d database
Creating network "autocat-dev_autocat-dev" with the default driver
Creating database-dev ... done
åäžã³ãã³ãã®å±éã«ã€ããŠã¯ããã ãã§ããã絶察çãªåè«ã§ãã ç§ã®æèŠã§ã¯ã.ymlã¯ãã®ã³ã³ããã¹ãã§ãããžã§ã¯ãåãæå®ããã®ã«æé©ãªå Žæã§ãã
ãŸãã¯ããdatabase-devããšãdatabase-prodããšããç°ãªãååãä»ããããšã§ããµãŒãã¹ã1ã€ã®ãããžã§ã¯ãã«é 眮ããããšãã§ããŸããã ãã®ã¢ãããŒãã®å¯äžã®åé¡ã¯ã以åã«ã€ã³ã¹ã¿ã³ã¹åããããµãŒãã¹ãä»ã®docker-compose.ymlã«èšèŒãããŠããªããããå€ç«ãããšããèŠåãããããšã§ãã
macbook@fuck-fuck autocat-server % docker-compose -f ./compose-prod.yml up -d database-prod
Creating network "autocat-server_autocat-prod" with the default driver
Creating database-prod ... done
macbook@fuck-fuck autocat-server % docker-compose -f ./compose-dev.yml up -d database
WARNING: Found orphan containers (database-prod) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
Creating database-dev ... done
ããã¯æå³ããããŸããããªãããã¯ãã®ããã§ãªããã°ãªããªãã®ã§ããïŒ ãªããããå®éã«ãã®ããã§ãªããã°ãªããªãã®ã§ããïŒ
ç·šé1ïŒ@ dc-pm
EDIT2ïŒäž¡æ¹ã®äœæãã¡ã€ã«ãå¥ã
ã®ãã£ã¬ã¯ããªã«å
¥ããŠåºæ¥äžãã
ãã£ããïŒ
ã¡ã³ãããããã«èª°ãïŒ
éçºè
ã¯6幎éåŸ
ã¡ãŸãïŒ
ããã«ã¡ã¯ïŒ ç§ã¯compose-specã«åé¡ãäœæããcomposeãã¡ã€ã«ã«è¿œå ã§ãããã®ã管çãããããžã§ã¯ãåãcomposeã¹ããŒãã«è¿œå ããŸããã
project-nameããããã£ãcompose仿§ã«è¿œå ãããããdocker-composeã§å®è£
ãéå§ã§ããŸãã
æãåèã«ãªãã³ã¡ã³ã
å®éããããžã§ã¯ãåã¯ããªãéèŠã ãšæããŸãã CIãã€ãã©ã€ã³å ã®ã€ã¡ãŒãžã§äœã§ãã§ããããã«ãããå Žåã¯ããããžã§ã¯ãåãç¥ã£ãŠãããããå¥ã®ãã®ãšããŠåã¿ã°ä»ãã§ããããã«ããå¿ èŠããããŸãã
ç°å¢å€æ°ãããããžã§ã¯ãåããªãŒããŒã©ã€ãã§ãããããããããäžæã§äºæž¬å¯èœã«ä¿ã€ããšã容æã«ãªããŸãã äœãèµ·ãã£ãŠããç°å¢å€æ°ããã®ãªãŒããŒã©ã€ãããµããŒãããå¿ èŠããããšæããŸãã
ãããžã§ã¯ãåããã¡ã€ã«ããæ§æã§ããããã«ãããšããã¢ã€ãã¢ã奜ãã§ãã ïŒïŒ45ïŒã§ãåæ§ã®è°è«ããã£ããšæããŸãã
.fig/project-name
ãããžã§ã¯ãåããããšãéåžžã«å°ããªãã¡ã€ã«ãããããçºçããããã§ããfig.yml
èªäœã«å ¥ããæ¹ãç°¡åã ãšæããŸãïŒïŒ45ã§ææ¡ãããŠããããã«ãDockerã®1ã€ãææ¡ãäœæããŸãïŒãå¥ã®ãã£ã¬ã¯ããªãšãã¡ã€ã«ã«é 眮ããããšã®å©ç¹ã¯äœã§ããïŒ