728x90
๋ฐ์ํ
10์ฅ ๋์ปค ์ปดํฌ์ฆ๋ฅผ ์ด์ฉํ ์ฌ๋ฌ ํ๊ฒฝ ๊ตฌ์ฑ
- ๋ฐฐํฌ๊ฐ ์คํจํ๋ ์ฃผ๋ ์์ธ์ ํ๊ฒฝ ์ฐจ์ด๋ค.
- ๋์ปค๋ ํจํค์ง์ ๋ชจ๋ ์์กด ๋ชจ๋์ด ํจ๊ป ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์ ํด๋น ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
- ํ์ง๋ง, ํ๊ฒฝ์๋ฐ๋ผ ๋์์ ๋ค๋ฅด๊ฒ ํด์ผ ํ ํ์๊ฐ ์๋ค.
- ๋์ปค ์ปดํฌ์ฆ์ ๊ณ ๊ธ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
10.1 ๋์ปค ์ปดํฌ์ฆ๋ก ์ฌ๋ฌ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌํ๊ธฐ
- ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฒ์ ์ ๋ค๋ฅด๊ฒ ๊ตฌ๋ํด์ผํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ฐ.
- ์ฌ๋ฌ ํ๊ฒฝ์ ๊ตฌ์ฑํด ์ฌ์ฉํ๋ ค๋ฉด, ํ๊ฒฝ๋ง๋ค ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ค๋ฅด๊ฒ ๋์ํ๊ฒ ํด์ผ ํ๋ค.
- ๋์ปค ์ปดํฌ์ฆ ํ์ผ์์ ํด๋น ๊ตฌ์ฑ์ ๋ช ์ํด์ผ ํ๋ค.
- ๋์ปค ์ปดํฌ์ฆ ํ์ผ์ ๋ ์ด๋ธ ๋ช ๋ช ๊ท์น์ ํตํด ๋์ปค ๋ฆฌ์์ค๋ฅผ ์ปจํ ์ด๋์ ์๋น์ค๋ก ๊ตฌ๋ถํ๋ฉฐ ๊ด๋ฆฌํ๋ค.
๋์ปค ์ปดํฌ์ฆ ๋ฆฌ์์ค ์ด๋ฆ ๊ท์น
- ๋์ปค ์ปดํฌ์ฆ ํ์ผ์ด ์์นํ ๋๋ ํ ๋ฆฌ์ ์ด๋ฆ์ ๊ธฐ๋ณธ์ผ๋ก ํ๋ก์ ํธ ๋ผ๊ณ ํ๋ค.
- ํ๋ก์ ํธ๋ ๋์ปค ๋ฆฌ์์ค๊ฐ ์ด๋ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์ผ๋ถ์ธ์ง ์๋์ง๋ฅผ ํ๋ณํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
- ๋์ปค ์ปดํฌ์ฆ์์ ๊ด๋ฆฌํ๋ ๋ชจ๋ ๊ฐ์ฒด๋ฅผ ๋ฆฌ์์ค ๋ผ๊ณ ํ๋ค.
- ์ฌ๋ฌ ๊ฐ์ ๋์ปค ์ปดํฌ์ฆ ํ๋ก์ ํธ๋ฅผ ๋์์ ์คํํ๋ ๊ฒฝ์ฐ, ํ๋ก์ ํธ ์ด๋ฆ์ ์ ๋์ฌ๋ก ๋ถ์ฌ์ ๊ตฌ๋ถํ๋ค.
- ๋์ผํ ์๋น์ค์ ๋ณต์ ์ธ์คํด์ค๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด ์ ๋ฏธ์ฌ๋ก ์ฆ๊ฐํ๋ ์ซ์๋ฅผ ์ฌ์ฉํ๋ค.
# docker compose ๊ฐ ์ฌ์ฉํ๋ ํ๋ก์ ํธ ์ด๋ฆ ๋ณ๊ฒฝ
$ docker compose -f ./todo-list/docker-compose.yml -p todo-test up -d
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e0645d889591 diamol/ch06-todo-list "dotnet ToDoList.dll" 2 seconds ago Up 1 second 0.0.0.0:32776->80/tcp, [::]:32776->80/tcp todo-test-todo-web-1
290efebd5094 diamol/ch06-todo-list "dotnet ToDoList.dll" 7 minutes ago Up 7 minutes 0.0.0.0:32775->80/tcp, [::]:32775->80/tcp todo-list-todo-web-1
$ docker container port todo-test_todo_web_1 80
- ๋ณต์ ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ธ์คํด์ค ๊ฐ๊ฐ์ ์ค์ ์ ์ฐพ์์ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋ฒ๊ฑฐ๋กญ๋ค.
- ๋งค๋ฒ ์ปดํฌ์ฆ ํ์ผ์ ๋ณต์ฌํ์ฌ ์์ ํ๋ ๊ฒ์ ๋นํจ์จ์ ์ด๊ณ ๊ด๋ฆฌ๊ฐ ์ด๋ ต๋ค.
- ๋์ปค ์ปดํฌ์ฆ๋ ์ค์ ์ ์ค๋ฒ๋ผ์ด๋ํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
10.2 ๋์ปค ์ปดํฌ์ฆ์ ์ค๋ฒ๋ผ์ด๋ ํ์ผ
- ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฌ ์ค์ ์ผ๋ก ์คํํ ํ์๊ฐ ์์ ๊ฒฝ์ฐ, ๋๋ถ๋ถ์ ์ปดํฌ์ฆ ํ์ผ์ ์ฌ๋ฌ๊ฐ ์ ์ํ์ฌ ์ฌ์ฉํ๋ค.
- ๊ทธ๋ฌ๋, ์ด ๋ฐฉ๋ฒ์ ์ ์ง๋ณด์ ์ธก๋ฉด์์ ๋ฐ๋์งํ์ง ์๋ค.
- ์ค๋ฒ๋ผ์ด๋ ํ์ผ์ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
- ๋์ปค ์ปดํฌ์ฆ๋ ์ฌ๋ฌ ํ์ผ์ ํฉ์ณ ์ปดํฌ์ฆ ํ์ผ์ ๊ตฌ์ฑํ๊ณ , ๋์ค์ ์ง์ ๋ ํ์ผ์ ๋ด์ฉ์ด ์ด์ ํ์ผ์ ๋ด์ฉ์ ๋ฎ์ด์ด๋ค.
# docker-compose.yml ๊ธฐ๋ณธ ํ์ผ
$ vi docker-compose.yml
services:
todo-web:
imageL: diamol/ch06-todo-list
ports:
- 80
environment:
- Database:Provider=Sqlite
networks:
- app-net
# docker-compose-v2.yml ์ค๋ฒ๋ผ์ด๋ ํ์ผ
$ vi docker-compose-v2.yml
services:
todo-web:
image: diamol/ch06-todo-list:v2
$ docker compose -f docker-compose.yml -f docker-compose-v2.yml config
name: todo-list
services:
todo-web:
environment:
Database:Provider: Sqlite
image: diamol/ch06-todo-list:v2
networks:
app-net: null
ports:
- mode: ingress
target: 80
protocol: tcp
networks:
app-net:
name: todo-list_app-net
- ๋ docker-compose ํ์ ๋ชจ๋ ์ ํจํ ๋์ปค ์ปดํฌ์ฆ ํ์ผ ํ์์ ์ ์งํด์ผ ํ๋ค.
- ๊ธฐ๋ณธ์ด ๋๋ ์ปดํฌ์ฆ ํ์ผ์ ๊ตฌ์กฐ๋ฅผ ์ ์งํด์ผ ๋์ปค ์ปดํฌ์ฆ๊ฐ ๋ ์ ์๋ฅผ ์ฐ๊ฒฐํ ์ ์๋ค.
- config ๋ช ๋ น์ด๋ฅผ ํตํจ ๋ณํฉ๋ ํ์ผ์ ๋ด์ฉ์ด ์ ํจํ์ง ๊ฒ์ฌํ ์ ์๋ค.
- ๋์ปค ์ปดํฌ์ฆ๊ฐ ์ค๋ฒ๋ผ์ด๋ ํ์ผ์ ๋ณํฉํ๋ ์์๋ ์ธ์์ ์์๋ฅผ ๋ฐ๋ฅธ๋ค.
$ docker compose -f docker-compose.yml -f docker-compose-dev.yml -p number-dev up -d
[+] Running 3/3
โ Network numbers-dev Created 0.1s
โ Container number-dev-numbers-web-1 Started 0.3s
โ Container number-dev-numbers-api-1 Started 0.2s
$ docker compose -f docker-compose.yml -f docker-compose-test.yml -p number-test up -d
[+] Running 3/3
โ Network numbers-test Created 0.1s
โ Container number-test-numbers-api-1 Started 0.2s
โ Container number-test-numbers-web-1 Started 0.2s
$ docker compose -f docker-compose.yml -f docker-compose-uat.yml -p number-uat up -d
[+] Running 3/3
โ Network numbers-uat Created 0.1s
โ Container number-uat-numbers-api-1 Started 0.2s
โ Container number-uat-numbers-web-1 Started
$ docker compose -f docker-compose.yml -f docker-compose-test.yml -p number-test down
[+] Running 3/3
โ Container number-test-numbers-api-1 Removed 0.1s
โ Container number-test-numbers-web-1 Removed 10.2s
โ Network numbers-test Removed
- ํ๊ฒฝ๋ณ๋ก ์คํ๋ ์ปจํ ์ด๋๋ ๋๋ฉ์ธ ๋ค์์ ์ฌ์ฉํด ์๋ก๋ฅผ ์๋ณํ์ง๋ง, ๊ฐ์ ๋์ปค ๋คํธ์ํฌ์ ์ ์ํ ์ปจํ ์ด๋๋ผ๋ฆฌ๋ง ํต์ ์ด ๊ฐ๋ฅํ๋ค.
- ์ค๋ฒ๋ผ์ด๋ ํ์ผ์ ์ฌ์ฉํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ฌ์ ์ ์ด์ ์ด ์กด์ฌํ๋ค.
- ๊ทธ๋ฌ๋, ์ค๋ฒ๋ผ์ด๋ ๊ด๋ฆฌ์ ๋๋ ์ค๋ฒํค๋๋ ๋ฐ์ํ๋ค.
- ๋ฐ๋ผ์, ์ค๋ฒ๋ผ์ด๋ ํ์ผ๊ด๋ จ ๋ฐฐํฌ ๊ด๋ จ ์๋ํ ๊ตฌ์ฑํ์ฌ ์ค๋ฒํค๋๋ฅผ ์ต์ํ ํ๋๊ฒ์ด ์ข๋ค.
10.3 ํ๊ฒฝ ๋ณ์์ ๋น๋ฐ๊ฐ์ ์ด์ฉํด ์ค์ ์ฃผ์ ํ๊ธฐ
- ๋์ปค ์ปดํฌ์ฆ๋ ๊ฐ ์ปจํ ์ด๋์ ํ์ํ ํ๊ฒฝ ๋ณ์์ ๋น๋ฐ๊ฐ์ ์ค์ ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฐํ๊ฒ ์ด์ํ ์ ์๋ค.
# docker-compose.yml
services:
todo-web:
image: diamol/ch06-todo-list
secrets:
- source: todo-db-connection
target: /app/config/secrets.json
- source: ์๋ณธ ์์น, ์ปจํ ์ด๋ ๋ฐํ์์ด ๋น๋ฐ๊ฐ์ ์ฝ์ด์ค๋ ๊ณณ.
- target: ์ปจํ ์ด๋ ๋ด๋ถ์ ๋น๋ฐ๊ฐ์ด ์์นํ ๊ฒฝ๋ก.
# docker-compmose-dev.yml
# ๊ฐ๋ฐ ํ๊ฒฝ๋ง์ ์ํ ์ถ๊ฐ ์ค์ ๊ณผ ๋น๋ฐ๊ฐ์ด ์ ์๋ ์ค๋ฒ๋ผ์ด๋ ํ์ผ
services:
todo-web:
ports:
- 8089:80
environment:
- Database:Provider=Sqlite
env_file:
- ./config/logging.debug.env
secrets:
todo-db-connection:
file: ./config/empty.json
- environment
- ์ปจํ ์ด๋ ์์์๋ง ์ฌ์ฉ๋๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์ถ๊ฐํ๋ค.
- env_file
- ํ ์คํธ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ๊ฐ์ผ๋ก ๋ฐ๋๋ค.
- ์ด ํ์ผ์ ์ ์๋ ํ๊ฒฝ ๋ณ์๊ฐ ์ปจํ ์ด๋์ ์ ์ฉ๋๋ค.
- ํ ์คํธ ํ์ผ์ ๋ณ์ ์ด๋ฆ๊ณผ ๊ฐ์ ๋ฑํธ๋ก ๊ตฌ๋ถํด ํ ์ค์ ํ๋์ฉ ์ ์ํ๋ค.
- secrets
- ์ปดํฌ์ฆ ํ์ผ์ ์ต์์ ํ๋กํผํฐ
- todo-db-connection์ ์ค์ ๊ฐ ํน์ ๊ฒฝ๋ก๊ฐ ์ ์๋๋ค.
$ docker compose -f ./todo-list-configured/docekr-compose.yml -f ./todo-list-configured/docker-compose-dev.yml -p todo-dev up -d
Creating network "todo-dev_default" with the default driver
Creating todo-dev_todo-web_1 ... done
- ๋์ปค ์ปดํฌ์ฆ๋ ์ ํ๋ฆฌ์ผ์ด์ ํ ๊ฐ๋ง๋ค ๋์ปค ๋คํธ์ํฌ๋ฅผ ํ๋์ฉ ์ฌ์ฉํ๋ฏ๋ก ์ปดํฌ์ฆ ํ์ผ์ ์ ์๋ ๋คํธ์ํฌ๊ฐ ์์ด๋ ๊ธฐ๋ณธ ๋คํธ์ํฌ์ ์ปจํ ์ด๋๋ฅผ ์ฐ๊ฒฐํ๋ค.
Docker ๊ธฐ๋ณธ ๋คํธ์ํฌ (bridge)
- ๋์ปค ์ปดํฌ์ฆ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฌ ์๋น์ค ๊ฐ์ ๋คํธ์ํน์ ์ฝ๊ฒ ์ค์ ํ๊ณ ๊ด๋ฆฌํ ์ ์๋ ๋๊ตฌ์ด๋ค.
- Docker ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ์ปจํ ์ด๋๋ฅผ ์ฐ๊ฒฐํ๋ bridge ๋ผ๋ ๊ฐ์ ๋คํธ์ํฌ๋ฅผ ์์ฑํ๋ค.
- bridge ๋ ๋์ปค ๋ฐ๋ชฌ์ด ๊ด๋ฆฌํ๋ ๊ฐ์ ๋คํธ์ํฌ๋ก, ๋์ผํ ๋ธ๋ฆฌ์ง ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋ ์ปจํ ์ด๋๋ค์ ์๋ก IP ์ฃผ์๋ฅผ ํตํด ํต์ ํ๋ค.
- ๋ํ, bridge ๋คํธ์ํฌ๋ ์ธ๋ถ ๋คํธ์ํฌ์ ๊ฒฉ๋ฆฌ๋์ด ์์ด ๋ณด์์ ๊ฐํํ ์ ์๋ค.
- ์ปดํฌ์ฆ ํ์ผ์์ ๋คํธ์ํฌ๋ฅผ ๋ช ์์ ์ผ๋ก ์ ์ํ์ง ์์ผ๋ฉด, Docker ๋ ๊ธฐ๋ณธ ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋๋ฅผ ์ฐ๊ฒฐํ๋ค.
ํธ์คํธ ์ปดํจํฐ์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ปจํ ์ด๋์ ์ ๋ฌํ๊ธฐ
todo-web:
ports:
- "$(TODO_WEB_PORT):80"
environment:
- Database:Provider=Postgres
env_file:
- ./config/logging.information.env
networks:
- app-net
$ vi .env
TODO_WEB_PORT=8877
TODO_DB_PORT=5432
COMPOSE_PATH_SEPARATOR=;
COMPOSE_FILE=docker-compose.yml;docker-compose-test.yml
COMPOSE_PROJECT_NAME=todo_ch10
- .env ํ์ผ์ ์ฌ์ฉํ๋ฉด docker-compose.yml ํ์ผ์ ์์ ํ์ง ์๊ณ , ์ค์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๊ธฐ ๋๋ฌธ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด์์ฑ์ด ํฅ์ ๋๋ค.
- env_file ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ธ๋ถ ํ์ผ์์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฝ์ด ์ฌ ์ ์๋ค.
- ์ปดํฌ์ฆ ํ์ผ์์ $ ๊ธฐํธ๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฐจ๋ชจํ ์ ์๋ค.
- ์ปดํฌ์ฆ ํ์ผ๊ณผ ๋์ผํ ๋๋ ํ ๋ฆฌ์์ .env ํ์ผ์ ์์ฑ ๋ฐ ์ ์ํ์ฌ, ์ปดํฌ์ฆ๋ ํด๋น ํ์ผ์ ์๋์ผ๋ก ์ฝ์ด์จ๋ค.
10.4 ํ์ฅ ํ๋๋ก ์ค๋ณต ์ ๊ฑฐํ๊ธฐ
- ๋์ปค ์ปดํฌ์ฆ๋ฅผ ์ฌ์ฉํ๋ค๋ณด๋ฉด ์๋น์ค ๊ฐ ๋ง์ ์ค์ ๊ฐ์ ๊ณต์ ํ๋ ์ปดํฌ์ฆ ํ์ผ์ ๋ฉ์น๊ฐ ์ ์ ์ปค์ง๋ ๊ฒ์ด ๋ฌธ์ ๋ค.
- ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ์ฅ ํ๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
- ํ์ฅ ํ๋๋ ์ปดํฌ์ฆ ํ์ผ์ ๊ด๋ฆฌํ๋ ๋ฒ ์คํธ ํ๋ ํฐ์ค ์ค ํ๊ฐ์ง ๋ฐฉ๋ฒ์ด๋ค.
- ํ์ฅ ํ๋๋ฅผ ์ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ค๋ณต๋๋ ์ค์ ์ ์๋น๋ถ๋ถ ์ฌ์ฌ์ฉํ ์ ์๋ค.
- ํ์ง๋ง, ํ์ฅ ํ๋์๋ ์ฌ๋ฌ ์ปดํฌ์ฆ ํ์ผ์ ํ๊บผ๋ฒ์ ์ ์ฉํ ์ ์๋ค.
- ๋ฐ๋ผ์, ์ฝ์ด ์ปดํฌ์ฆ ํ์ผ์ ์ ์๋ ํ์ฅ ํ๋๋ฅผ ์ค๋ฒ๋ผ์ด๋ ํ์ผ์์ ์ฌ์ฉํ ์๋ ์๋ค.
version: "3.7"
x-labels: &logging
logging:
options:
max-size: '100m'
max-file: '10'
x-labels: &labels
app-name: image-gallery
services:
accesslog:
<<: *logging
labels:
<<: *labels
iotd:
ports:
- 8080:80
<<: *logging
labels:
<<: *labels
public: api
image-gallery:
ports:
- 80:80
<<: *logging
labels:
<<: *labels
public: web
prometheus:
image: diamol/ch09-prometheus
ports:
- "9090:9090"
environment:
- ๋์ปค ์ปดํฌ์ฆ์ ํ์ฅ ํ๋๋ ์ฐํผ์๋ ๋ฌธ๋ฒ์ ์ฌ์ฉํ๋ค.
- <<:* ์์น์ ํด๋น YAML ํ์ผ์ ํ์ฅ ํ๋๊ฐ์ด ๋ณํฉ๋๋ค.
$ docker-compose -f ./image-gallery/docker-compose.yml -f ./image-gallery/docker-compose-prod.yml config
WARN[0000] /home/gwanii/docker_textbook/080258-main/ch10/exercises/image-gallery/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
WARN[0000] The "HOST_IP" variable is not set. Defaulting to a blank string.
WARN[0000] /home/gwanii/docker_textbook/080258-main/ch10/exercises/image-gallery/docker-compose-prod.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
name: image-gallery
services:
accesslog:
image: diamol/ch09-access-log
labels:
app-name: image-gallery
logging:
options:
max-file: "10"
max-size: 100m
networks:
app-net: null
grafana:
depends_on:
prometheus:
condition: service_started
required: true
image: diamol/ch09-grafana
labels:
app-name: image-gallery
logging:
options:
max-file: "10"
max-size: 100m
networks:
app-net: null
ports:
- mode: ingress
target: 3000
published: "3000"
protocol: tcp
image-gallery:
image: diamol/ch09-image-gallery
labels:
app-name: image-gallery
public: web
logging:
options:
max-file: "10"
max-size: 100m
networks:
app-net: null
ports:
- mode: ingress
target: 80
published: "80"
protocol: tcp
iotd:
image: diamol/ch09-image-of-the-day
labels:
app-name: image-gallery
public: api
logging:
options:
max-file: "10"
max-size: 100m
networks:
app-net: null
ports:
- mode: ingress
target: 80
published: "8080"
protocol: tcp
prometheus:
environment:
DOCKER_HOST: ""
image: diamol/ch09-prometheus
labels:
app-name: image-gallery
logging:
options:
max-file: "10"
max-size: 100m
networks:
app-net: null
ports:
- mode: ingress
target: 9090
published: "9090"
protocol: tcp
networks:
app-net:
name: image-gallery-prod
x-labels:
app-name: image-gallery
x-logging:
logging:
options:
max-file: "10"
max-size: 100m
์ฐธ๊ณ - ์ฑ ์์๋ฅผ ๋ฐ๋ผํ ๊ฒฝ์ฐ ๋ฐ์ํ๋ ์๋ฌ.
- ์ฑ ์ ๋์์๋ ์์ ๋ฅผ ๋ฐ๋ผํ ๊ฒฝ์ฐ ์๋์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฒ์ด๋ค.
WARN[0000] /home/gwanii/docker_textbook/080258-main/ch10/exercises/image-gallery/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
yaml: unmarshal errors:
line 9: mapping key "x-labels" already defined at line 3
- Docker Compose V2 ๋ฒ์ ๋ถํฐ๋ x-fileds ๊ฐ ์ค๋ณต์ผ๋ก ์ ์ธ๋๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ค.
- ์ ํํ๋ ์ฌ์ฉํ ์๋ ์์ง๋ง, ๊ถ์ฅ๋์ง ์๋๋ค๊ณ ํ๋ค.
- ๊ทธ ์ด์ ๋ ์ ์ง๋ณด์ ์ฐจ์์์ ํ์ฅ ํ๋๋ฅผ ๋ช ํํ ๋ถ๋ฆฌํ๋ ๋ฐฉ์ ์ฌ์ฉ์ ๊ถ์ฅํ๋ค.
x-logging: &logging
logging:
options:
max-size: '100m'
max-file: '10'
x-labels: &labels
app-name: image-gallery
- ์ด์ ๊ฐ์ด ์์ฑํ๋ ๊ฒ์ด Docker Compose V2 ๋ฐฉ์์์ ๊ถ์ฅ๋๋ ๋ฐฉ์์ด๋ผ๊ณ ํ๋ค.
10.5 ๋์ปค๋ฅผ ์ด์ฉํ ์ค์ ์ํฌํ๋ก ์ดํดํ๊ธฐ
- ์ค์ ์ํฌํ๋ก์์ ๊ฐ์ฅ ์ค์ํ ์ ์ ๋ชจ๋ ํ๊ฒฝ์์ ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ด๋ค.
- ๋ชจ๋ ํ๊ฒฝ์์ ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ์ง๋ง, ์ปจํ ์ด๋ ํ๋ซํผ์์ ์ ๊ณต๋ ์ค์ ๊ฐ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ๋์๋๋ ๊ฒ์ด ํต์ฌ์ด๋ค.
- ๋์ปค ์ปดํฌ์ฆ๋ฅผ ์ด์ฉํด ๊ฐ ๋จ๊ณ๋ณ ์ค์ ์ํฌํ๋ก ์ค์ ๋ฐฉ๋ฒ์ ํฌ๊ฒ 3๊ฐ์ง๋ก ๋ถ๋ฅ ํ์๋ค.
์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ฑ ์์์ ์กฐํฉ
- ์ค๋ฒ๋ผ์ด๋ ํ์ผ์ ์ฌ์ฉํ์ฌ, ๊ณตํต๋ ์๋น์ค๋ ์ฌ์ฌ์ฉํ๊ณ ํ์ํ ์ค์ ์ ๊น๋ํ๊ณ ๊ฐํธํ๊ฒ ์์ฑํ ์ ์๋ค.
์ปจํ ์ด๋ ์ค์
- ์ค๋ฒ๋ผ์ด๋ ํ์ผ๊ณผ ๋์ปค ๋คํธ์ํฌ๋ก ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ถ๋ฆฌํ๋ฉด์ ๋จ์ผ ์๋ฒ์ ์ฌ๋ฌ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ์ ์๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ค์
- ์ค๋ฒ๋ผ์ด๋ ํ์ผ๊ณผ ํ๊ฒฝ ํ์ผ, ๋น๋ฐ๊ฐ์ ์ด์ฉํด ์ํฉ์ ๋ง๋ ์ ํ๋ฆฌ์ผ์ด์ ์ค์ ๊ฐ์ ์ปจํ ์ด๋์ ์ฃผ์ ํ ์ ์๋ค.
728x90
๋ฐ์ํ