рдкреЙрдбрдХрд╛рд╕реНрдЯ рдкреНрд░рддрд┐рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рд╢реБрднрд╛рд░рдВрдн рдХреА рдкреНрд░рддреНрдпрд╛рд╢рд╛ рдореЗрдВ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

Docker Compose рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрджреНрднреБрдд рдЙрдкрдХрд░рдг рд╣реИ
рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдЯреИрдХ рдХреЗ рд▓рд┐рдП рд╡рд╛рддрд╛рд╡рд░рдгред рдпрд╣ рдЖрдкрдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╕рд░рд▓ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП .
рдХреЗ рдЖрдЧрдорди рдХреЗ рд╕рд╛рде рдЗрди YAML рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╕реАрдзреЗ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЭреБрдВрдб .
рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЙрд╕реА docker-compose рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рд╡рд┐рдХрд╛рд╕ рдФрд░ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ? рдпрд╛ рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рд╕реНрдЯреЗрдЬрд┐рдВрдЧ? рдЦреИрд░, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рд╛рдБ, рд▓реЗрдХрд┐рди рдРрд╕реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- рдЪрд░ рдкреНрд░рдХреНрд╖реЗрдк: рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдмрджрд▓рддреЗ рдореВрд▓реНрдпред - рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдУрд╡рд░рд░рд╛рдЗрдб: рдПрдХ рд╕реЗрдХрдВрдб (рдпрд╛ рдХрд┐рд╕реА рднреА) рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛
рдПрдХ рдФрд░ рдЕрдиреБрд╡рд░реНрддреА) docker-compose рдлрд╝рд╛рдЗрд▓ рдЬреЛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдХреБрдЫ рдмрджрд▓ рджреЗрдЧреА
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдФрд░ рдбреЙрдХрд░ рдХрдВрдкреЛрдЬрд╝ рджреЛрдиреЛрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдЧрд╛ред
рд╡рд┐рдХрд╛рд╕ рдФрд░ рдЙрддреНрдкрд╛рджрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░
рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди, рдЖрдк рд╕рдВрднрд╡рддрдГ рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЛрдбред рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╕реНрд░реЛрдд рдХреЛрдб рд╡реЙрд▓реНрдпреВрдо рдЖрдорддреМрд░ рдкрд░ рдорд╛рдЙрдВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдХрдВрдЯреЗрдирд░ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рд░рдирдЯрд╛рдЗрдо рд╢рд╛рдорд┐рд▓ рд╣реИред рд▓реЗрдХрд┐рди рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП
рдпрд╣ рд╡рд┐рдзрд┐ рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ.
рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдИ рдиреЛрдбреНрд╕ рд╡рд╛рд▓рд╛ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╡реЙрд▓реНрдпреВрдо рд╕реНрдерд╛рдиреАрдп рд╣реЛрддрд╛ рд╣реИ
рдЖрдкрдХреЗ рдХрдВрдЯреЗрдирд░ (рдпрд╛ рд╕реЗрд╡рд╛) рдЬрд┐рд╕ рдиреЛрдб рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдЙрд╕рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдЖрдк рдЬрдЯрд┐рд▓ рдСрдкрд░реЗрд╢рди рдХреЗ рдмрд┐рдирд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рдХреЛрдб рддреБрд▓реНрдпрдХрд╛рд▓рди, рд╕рдВрдХреЗрдд, рдЖрджрд┐.
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдЖрдорддреМрд░ рдкрд░ рдЖрдкрдХреЗ рдХреЛрдб рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдЫрд╡рд┐ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдЗрд╕реЗ рдЙрдЪрд┐рдд рдЯреИрдЧ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рдкреНрд░рдерд╛рдЧрдд рд╣реИ (рдЖрдк рдПрдХ рдЕрд░реНрдердкреВрд░реНрдг рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рд╕рдВрд╕реНрдХрд░рдг рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдЕрдкрдиреЗ рд╡рд┐рд╡реЗрдХрд╛рдиреБрд╕рд╛рд░ рдЪреБрдиреЗрдВ)ред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛
рдЕрдВрддрд░реЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рддрдерд╛ рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрд┐ рдЖрдкрдХреА рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИрдВ
рд╡рд┐рдХрд╛рд╕ рдФрд░ рдЙрддреНрдкрд╛рджрди рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
Docker compose рд╡рд┐рднрд┐рдиреНрди compose рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ
рдЕрдВрддрд┐рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
$ cat docker-compose.yml
version: "3.2"
services:
whale:
image: docker/whalesay
command: ["cowsay", "hello!"]
$ docker-compose up
Creating network "composeconfigs_default" with the default driver
Starting composeconfigs_whale_1
Attaching to composeconfigs_whale_1
whale_1 | ________
whale_1 | < hello! >
whale_1 | --------
whale_1 |
whale_1 |
whale_1 |
whale_1 | ## .
whale_1 | ## ## ## ==
whale_1 | ## ## ## ## ===
whale_1 | /""""""""""""""""___/ ===
whale_1 | ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
whale_1 | ______ o __/
whale_1 | __/
whale_1 | __________/
composeconfigs_whale_1 exited with code 0рдЬреИрд╕рд╛ рдХрд┐ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдбреЙрдХрд░ рдХрдВрдкреЛрдЬрд╝ рдХрдИ рдХрдВрдкреЛрдЬрд╝ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ-
рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ, рдпрд╣ рдЖрдкрдХреЛ рджреВрд╕рд░реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
$ cat docker-compose.second.yml
version: "3.2"
services:
whale:
command: ["cowsay", "bye!"]
$ docker-compose -f docker-compose.yml -f docker-compose.second.yml up
Creating composeconfigs_whale_1
Attaching to composeconfigs_whale_1
whale_1 | ______
whale_1 | < bye! >
whale_1 | ------
whale_1 |
whale_1 |
whale_1 |
whale_1 | ## .
whale_1 | ## ## ## ==
whale_1 | ## ## ## ## ===
whale_1 | /""""""""""""""""___/ ===
whale_1 | ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
whale_1 | ______ o __/
whale_1 | __/
whale_1 | __________/
composeconfigs_whale_1 exited with code 0рдпрд╣ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ, рдЬрдм рдХрдорд╛рдВрдб
рдЗрд╕реЗ рдХрдИ рдмрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА.
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдбреЙрдХрд░ рдХрдВрдкреЛрдЬрд╝ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдлрд╝рд╛рдЗрд▓ рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ
рдбреЙрдХрд░-рдХрдВрдкреЛрдЬрд╝.рдУрд╡рд░рд░рд╛рдЗрдб.yml рдорд╛рдиреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рдбреЛрдХрд░-compose.ymlред рдЕрдЧрд░
рджреВрд╕рд░реА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ, рдЖрдкрдХреЛ рд╡рд╣реА рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓реЗрдЧрд╛, рдХреЗрд╡рд▓ рдореВрд▓ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ:
$ mv docker-compose.second.yml docker-compose.override.yml
$ docker-compose up
Starting composeconfigs_whale_1
Attaching to composeconfigs_whale_1
whale_1 | ______
whale_1 | < bye! >
whale_1 | ------
whale_1 |
whale_1 |
whale_1 |
whale_1 | ## .
whale_1 | ## ## ## ==
whale_1 | ## ## ## ## ===
whale_1 | /""""""""""""""""___/ ===
whale_1 | ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
whale_1 | ______ o __/
whale_1 | __/
whale_1 | __________/
composeconfigs_whale_1 exited with code 0рдареАрдХ рд╣реИ, рдЗрд╕рд╕реЗ рдпрд╛рдж рд░рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдЪрд░реЛрдВ рдХрд╛ рдкреНрд░рдХреНрд╖реЗрдк
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕рдорд░реНрдерди рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиред рдпрд╛рдиреА, рдЖрдк рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
services:
my-service:
build:
context: .
image: private.registry.mine/my-stack/my-service:${MY_SERVICE_VERSION:-latest}
...рдФрд░ рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ docker-compose рдмрд┐рд▓реНрдб (рдпрд╛ рдкреБрд╢) рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рдмрд┐рдирд╛
$MY_SERVICE_VERSION, рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рддрд╛рдЬрд╝рд╛ , рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ
рдмрд┐рд▓реНрдб рд╕реЗ рдкрд╣рд▓реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХрд╛ рдорд╛рди, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рд▓реНрдб рдпрд╛ рдкреБрд╢ рдХреЗ рджреМрд░рд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ private.registry.mine.
рдореЗрд░реЗ рд╕рд┐рджреНрдзрд╛рдВрдд
рдЬреЛ рддрд░реАрдХреЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИрдВ, рд╡реЗ рдЖрдкрдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдЗрдирдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реВрдБ
рд╕рд░рд▓ рдирд┐рдпрдо:
- рдЙрддреНрдкрд╛рджрди, рд╡рд┐рдХрд╛рд╕ (рдпрд╛ рдЕрдиреНрдп рд╡рд╛рддрд╛рд╡рд░рдг) рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рд╕рднреА рд╕реНрдЯреИрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ
docker-compose рдлрд╝рд╛рдЗрд▓реЗрдВ. - рдореЗрд░реЗ рд╕рднреА рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ
рджреЛрд╣рд░рд╛рд╡ рд╕реЗ рдмрдЪреЗрдВ. - рдореБрдЭреЗ рд╣рд░ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЖрджреЗрд╢ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
- рдореБрдЦреНрдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдбреЛрдХрд░-compose.yml.
- рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЫрд╡рд┐ рдЯреИрдЧ рдпрд╛ рдЕрдиреНрдп рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╡реЗ рдЪрд░ рдЬреЛ рдПрдХ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗ рджреВрд╕рд░реЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ (рд╕реНрдЯреЗрдЬрд┐рдВрдЧ, рдПрдХреАрдХрд░рдг,
рдЙрддреНрдкрд╛рджрди)ред - рдЙрддреНрдкрд╛рджрди рдЪрд░ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╕реНрдЯреИрдХ рдЪрд▓рд╛рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬреЛрдЦрд┐рдо рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ
рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВ. - рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдбреЙрдХрд░ рд╕реНрдЯреИрдХ рдбрд┐рдкреНрд▓реЙрдп - рдХрдВрдкреЛрдЬ-рдлрд╛рдЗрд▓ рдбреЙрдХрд░-рдХрдВрдкреЛрдЬ.yml - рд░рдЬрд┐рд╕реНрдЯреНрд░реА-рдСрде рдорд╛рдп-рд╕реНрдЯреИрдХ-рдирд╛рдо рдХреЗ рд╕рд╛рде.
- рдХрд╛рд░реНрдп рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдбреЙрдХрд░-рдХрдореНрдкреЛрдЬ рдЕрдк-рдбреА.
рдЖрдЗрдпреЗ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред
# docker-compose.yml
...
services:
my-service:
build:
context: .
image: private.registry.mine/my-stack/my-service:${MY_SERVICE_VERSION:-latest}
environment:
API_ENDPOINT: ${API_ENDPOINT:-https://production.my-api.com}
...╨Ш
# docker-compose.override.yml
...
services:
my-service:
ports: # This is needed for development!
- 80:80
environment:
API_ENDPOINT: https://devel.my-api.com
volumes:
- ./:/project/src
...рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ docker-compose (docker-compose рдЕрдк), рд╕реНрдЯреИрдХ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рд╡рд┐рдХрд╛рд╕ рдореЛрдб рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдорд╛рдЙрдВрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ /рдкреНрд░реЛрдЬреЗрдХреНрдЯ/src.
рдореИрдВ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ! рдФрд░ рдореИрдВ рдмрд┐рд▓реНрдХреБрд▓ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ
рд╡рд╣реА рдлрд╝рд╛рдЗрд▓ рдбреЛрдХрд░-compose.yml рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдХреЗ рд▓рд┐рдПред рдЗрд╕реЗ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдЙрддреНрдкрд╛рджрди, рдореБрдЭреЗ рдмрд╕ рдПрдХ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЯреИрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдЫрд╡рд┐ рдмрдирд╛рдиреЗ рдФрд░ рднреЗрдЬрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ
рд╕реАрдЖрдИ рдЪрд░рдг рдкрд░:
export MY_SERVICE_VERSION=1.2.3
docker-compose -f docker-compose.yml build
docker-compose -f docker-compose.yml pushрдЙрддреНрдкрд╛рджрди рдкрд░, рдЗрд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
export MY_SERVICE_VERSION=1.2.3
docker stack deploy my-stack --compose-file docker-compose.yml --with-registry-authрдФрд░ рдпрджрд┐ рдЖрдк рдордВрдЪ рдкрд░ рднреА рдпрд╣реА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдмрд╕ рдпрд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ
рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░:
export MY_SERVICE_VERSION=1.2.3
export API_ENDPOINT=http://staging.my-api.com
docker stack deploy my-stack --compose-file docker-compose.yml --with-registry-authрд╣рдордиреЗ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреЙрдХрд░-рдХрдВрдкреЛрдЬрд╝ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреЛ рдмрд┐рдирд╛
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдбреБрдкреНрд▓реАрдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдкрдХреЗ рдХрд┐рд╕реА рднреА рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ!
рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдиреЗрдВ
рд╕реНрд░реЛрдд: www.habr.com
