āĻā§āĻ°ā§āĻ¸ āĻļā§āĻ°ā§āĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻ°āĻž āĻĒāĻĄāĻāĻžāĻ¸ā§āĻā§āĻ° āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻā§āĻ°āĻŋāĻĒāĻļāĻ¨ā§āĻ° āĻ
āĻ¨ā§āĻŦāĻžāĻĻ
āĻĄāĻāĻžāĻ° āĻāĻŽā§āĻĒā§āĻ āĻĄā§āĻ¸ā§āĻāĻāĻĒ āĻ¤ā§āĻ°āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻļā§āĻāĻ°ā§āĻ¯āĻāĻ¨āĻ āĻā§āĻ˛
āĻāĻĒāĻ¨āĻžāĻ° āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻ¸ā§āĻā§āĻ¯āĻžāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻŦā§āĻļāĨ¤ āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ
āĻāĻĒāĻ¨āĻžāĻ° āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻĒāĻžāĻĻāĻžāĻ¨, āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ° āĻāĻŦāĻ āĻ¸āĻšāĻ āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸ āĻ
āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°ā§
āĻ¨āĻĨāĻŋ āĻĒāĻ¤ā§āĻ°
āĻāĻ° āĻāĻŦāĻŋāĻ°ā§āĻāĻžāĻŦā§āĻ° āĻ¸āĻžāĻĨā§
āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°
āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻ āĻĄāĻāĻžāĻ°-āĻāĻŽā§āĻĒā§āĻ āĻĢāĻžāĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻŦāĻ āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻĒāĻ°āĻŋāĻŦā§āĻļ? āĻ
āĻĨāĻŦāĻž āĻāĻ¨ā§āĻ¯ āĻāĻāĻ āĻĢāĻžāĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨
āĻŽāĻā§āĻāĻžāĻ¯āĻŧāĻ¨? āĻ āĻŋāĻ āĻāĻā§, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§, āĻšā§āĻ¯āĻžāĻ, āĻ¤āĻŦā§ āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻā§āĻ˛āĻŋāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨:
- āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻāĻ¨ā§āĻāĻžāĻ°āĻĒā§āĻ˛ā§āĻļāĻ¨: āĻāĻŋāĻā§ āĻāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻŽāĻžāĻ¨ āĻ¯āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ - āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻāĻāĻžāĻ°āĻ°āĻžāĻāĻĄ: āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž (āĻŦāĻž āĻ¯ā§āĻā§āĻ¨ā§
āĻāĻ°ā§āĻāĻāĻŋ āĻĢāĻ˛ā§-āĻāĻĒ) āĻĄāĻāĻžāĻ°-āĻāĻŽā§āĻĒā§āĻ āĻĢāĻžāĻāĻ˛ āĻ¯āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻāĻŋāĻā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻŦā§
āĻĒā§āĻ°āĻĨāĻŽāĻāĻŋ, āĻāĻŦāĻ āĻĄāĻāĻžāĻ° āĻāĻŽā§āĻĒā§āĻ āĻāĻāĻ¯āĻŧ āĻĢāĻžāĻāĻ˛ āĻŽāĻžāĻ°ā§āĻ āĻāĻ°āĻžāĻ° āĻ¯āĻ¤ā§āĻ¨ āĻ¨ā§āĻŦā§āĨ¤
āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻāĻŦāĻ āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻĢāĻžāĻāĻ˛ āĻŽāĻ§ā§āĻ¯ā§ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯
āĻŦāĻŋāĻāĻžāĻļā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻĒāĻ¨āĻŋ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻā§āĻĄ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĻŦā§āĻ¨ā§ˇ
āĻ°āĻŋāĻ¯āĻŧā§āĻ˛ āĻāĻžāĻāĻŽ āĻŽā§āĻĄāĨ¤ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤, āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ āĻ¸āĻš āĻāĻ˛āĻŋāĻāĻŽāĻāĻŋ āĻŽāĻžāĻāĻ¨ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻāĻāĻāĻŋ āĻ§āĻžāĻ°āĻ āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻ° āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽ āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻā§āĻĒāĻžāĻĻāĻ¨ āĻĒāĻ°āĻŋāĻŦā§āĻļā§āĻ° āĻāĻ¨ā§āĻ¯
āĻāĻ āĻāĻĒāĻžāĻ¯āĻŧ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧāĨ¤
āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻāĻāĻŋ āĻŽāĻžāĻ˛ā§āĻāĻŋ-āĻ¨ā§āĻĄ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻ˛āĻŋāĻāĻŽ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ
āĻšā§āĻ¸ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° (āĻŦāĻž āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž) āĻāĻ˛āĻā§, āĻ¤āĻžāĻ āĻāĻĒāĻ¨āĻŋ āĻ¤āĻž āĻāĻ°āĻā§āĻ¨ āĻ¨āĻž
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋāĻ˛ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻāĻžāĻĄāĻŧāĻžāĻ āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ āĻŽāĻžāĻāĻ¨ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ°āĻ¯āĻŧā§āĻā§
āĻā§āĻĄ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻā§āĻļāĻ¨, āĻ¸āĻāĻā§āĻ¤, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ
āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§, āĻāĻŽāĻ°āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻĄā§āĻ° āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻāĻāĻŋ āĻāĻŦāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĨ¤
āĻāĻāĻŋ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻā§āĻ¯āĻžāĻ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻāĻ°āĻž āĻĒā§āĻ°āĻĨāĻžāĻāĻ¤ (āĻāĻĒāĻ¨āĻŋ āĻļāĻŦā§āĻĻāĻžāĻ°ā§āĻĨāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻŦāĻž āĻāĻĒāĻ¨āĻžāĻ° āĻĒāĻāĻ¨ā§āĻĻā§āĻ° āĻ
āĻ¨ā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ)āĨ¤
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻāĻāĻžāĻ°āĻ°āĻžāĻāĻĄ
āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻž āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§ āĻāĻŋāĻ¨ā§āĻ¨ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻāĻŦāĻ āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨, āĻāĻāĻž āĻ¸ā§āĻĒāĻˇā§āĻ āĻ¯ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻŦā§āĨ¤
āĻĄāĻāĻžāĻ° āĻāĻŽā§āĻĒā§āĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻŽā§āĻĒā§āĻ āĻĢāĻžāĻāĻ˛ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§
āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒāĻžāĻ¨āĨ¤ āĻāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§ āĻ¤āĻž āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖā§ āĻĻā§āĻāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§:
$ 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
āĻāĻ āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸ āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ¯āĻŧ āĻā§āĻŦ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻ āĻ¨āĻ¯āĻŧ, āĻ¯āĻāĻ¨ āĻāĻŽāĻžāĻ¨ā§āĻĄ
āĻāĻāĻžāĻ§āĻŋāĻāĻŦāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻ¸ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤, āĻĄāĻāĻžāĻ° āĻāĻŽā§āĻĒā§āĻ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻ¨āĻžāĻŽāĻ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻˇ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°ā§
docker-compose.override.yml āĻŽāĻžāĻ¨ āĻāĻāĻžāĻ°āĻ°āĻžāĻāĻĄ āĻāĻ°āĻ¤ā§ Docker-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}
...
āĻāĻ° āĻ¯āĻĻāĻŋ āĻāĻ°ā§āĻ¨ āĻĄāĻāĻžāĻ°-āĻāĻŽā§āĻĒā§āĻ āĻŦāĻŋāĻ˛ā§āĻĄ (āĻŦāĻž āĻĒā§āĻļ) āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻāĻžāĻĄāĻŧāĻž
$MY_SERVICE_VERSION, āĻŽāĻžāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻŦā§ āĻ¸āĻ°ā§āĻŦāĻļā§āĻˇāĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻ
āĻŦāĻŋāĻ˛ā§āĻĄ āĻāĻ°āĻžāĻ° āĻāĻā§ āĻāĻ¨āĻāĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§āĻ¨ā§āĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻŽāĻžāĻ¨, āĻāĻāĻŋ āĻŦāĻŋāĻ˛ā§āĻĄāĻŋāĻ āĻŦāĻž āĻĒā§āĻļ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻŦā§
āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻāĻ°āĻ¤ā§ private.registry.mine.
āĻāĻŽāĻžāĻ° āĻ¨ā§āĻ¤āĻŋ
āĻāĻŽāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻ°āĻāĻžāĻ°ā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§. āĻāĻŽāĻŋ āĻāĻāĻŋ āĻ
āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻŋ
āĻ¸āĻšāĻ āĻ¨āĻŋāĻ¯āĻŧāĻŽ:
- āĻā§āĻĒāĻžāĻĻāĻ¨, āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ (āĻŦāĻž āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻŦā§āĻļā§āĻ°) āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻĄāĻāĻžāĻ°-āĻāĻŽā§āĻĒā§āĻ āĻĢāĻžāĻāĻ˛āĨ¤ - āĻāĻŽāĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻŦā§āĻļāĻā§ āĻāĻāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛, āĻ¸āĻ°ā§āĻŦā§āĻā§āĻāĨ¤
āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻĄāĻŧāĻžāĻ¤ā§. - āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻ° āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻĻāĻ°āĻāĻžāĻ°āĨ¤
- āĻŽā§āĻ˛ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛ā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ Docker-compose.yml.
- āĻāĻ¨āĻāĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§āĻ¨ā§āĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻāĻŽā§āĻ āĻā§āĻ¯āĻžāĻ āĻŦāĻž āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ
āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¯āĻž āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻĨā§āĻā§ āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ (āĻŽāĻā§āĻāĻžāĻ¯āĻŧāĻ¨, āĻāĻ¨ā§āĻāĻŋāĻā§āĻ°ā§āĻļāĻ¨,
āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨)āĨ¤ - āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŽāĻžāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ
āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻžāĻĄāĻŧāĻž āĻā§āĻĒāĻžāĻĻāĻ¨ā§ āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻāĻžāĻ˛āĻžāĻ¨ āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻāĻŋ āĻā§āĻāĻāĻŋ āĻāĻŽāĻŋāĻ¯āĻŧā§ āĻĻā§āĻ¯āĻŧ
āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤ - āĻāĻāĻāĻŋ āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§, āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ āĻĄāĻāĻžāĻ° āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ - āĻāĻŽā§āĻĒā§āĻ-āĻĢāĻžāĻāĻ˛ docker-compose.yml - with-registry-auth my-stack-name.
- āĻāĻžāĻā§āĻ° āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ āĻĄāĻāĻžāĻ°-āĻ°āĻāĻ¨āĻž āĻāĻĒ-āĻĄāĻŋ.
āĻāĻ° āĻāĻāĻāĻŋ āĻ¸āĻšāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¤āĻžāĻāĻžāĻ¨.
# 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
...
āĻāĻŽāĻŋ āĻŦā§āĻ¯āĻžāĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻĄāĻāĻžāĻ°-āĻāĻŽā§āĻĒā§āĻ (āĻĄāĻāĻžāĻ°-āĻāĻŽā§āĻĒā§āĻ āĻāĻĒ)āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯
āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ āĻŽāĻžāĻāĻ¨ā§āĻ āĻāĻ°āĻž āĻ¸āĻš āĻĄā§āĻā§āĻ˛āĻĒāĻŽā§āĻ¨ā§āĻ āĻŽā§āĻĄ /project/src.
āĻāĻŽāĻŋ āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻāĻāĻ āĻĢāĻžāĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨! āĻāĻŦāĻ āĻāĻŽāĻŋ āĻ āĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻāĻ āĻĢāĻžāĻāĻ˛ Docker-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