๋์ปค ์ปดํฌ์ฆ ๋ชฉ์
๋ชฉ์ ๊ณผ ์๋น์ค
- ๋ชฉ์ : 1๊ฐ ์ด์ ๋์ปค ์ปจํ ์ด๋ ์์ฑ ์ ์คํฌ๋ฆฝํธ ํ๋(docker-compose.yaml)๋ก ์ปจํ ์ด๋๋ค ์ค์ ์ ๊ด๋ฆฌํด์ฃผ๋ Docker์ ๊ธฐ๋ฅ
- ์๋น์ค: yaml ํ์ผ์ด ์๋ ์์น์์
sudo docker compose up๋ช ๋ น์ด ์ ๋ ฅ
๋์ปค ์ปดํฌ์ฆ ํด์
1) ๊ณ์ธต์ ๊ตฌ์กฐ
- json, xml๊ณผ ๊ฐ์ด key, value๋ก ๊ตฌ์ฑ๋๋ฉฐ ๊ณ์ธก์ ๊ตฌ์กฐ
2) 1 Level
version: yaml ํ์ผ์ ๋ฒ์ ์ ๋ณดx-airflow-common: Extention Fields > ์ปจํ ์ด๋์ ๊ณตํต ์ ์ฉ๋ ํญ๋ชฉ๋ค ์ ์services: ์ปจํ ์ด๋ ์คํํ ์๋น์ค ์ ์volumes: ์ปจํ ์ด๋ ํ ๋นํ volume ์ ์networks: ์ปจํ ์ด๋์ ์ฐ๊ฒฐํ network ์ ์- ๊ธฐ๋ณธ์ ์ผ๋ก ์์ฑ X
- IP ๋๋ ๋คํธ์ํฌ ์ ์ฉ์ ์์ฑ
2-1) x-airflow-common
- ๊ณตํต ์ง์ ํ ํญ๋ชฉ์
&๋ถ์ฌ์ ์ง์ - ์ปจํ
์ด๋ ์์ฑ ์,
airflow-common,airflow-common-env,airflow-common-depends-on์ ๋ฐ์
2-2) services
-
์ปจํ ์ด๋์ ์ฌ๋ฆด ์๋น์ค ์ง์
- ์) ์น์๋ฒ, postgres ๋ฑ
-
airflow-webserver์x-airflow-common์์ ์ค์ ํimage, environment, depends_on๋ฑ์ด ๋ค์ด๊ฐ -
์ด ๋,
depends_on์ด ๋ค์ ๋ฑ์ฅํ๋ ๊ฒฝ์ฐ ์์์ ์์ฑ๋ ๊ฑด ๋ฌด์๋๊ณ ๋ฎ์ด์์ด์ง- ์ปจํ ์ด๋ ์คํ ์์ ์ ์์ ํ์ฉ
- ์์์ ์ง์ ๋
airflow_common-depends-on์์ ์ค์ ํredis, postgres์ ์ปจ๋์ ์ ๊ฐ์ ธ์ด - ์ฆ,
depends_on์์ ์ค์ ํ ์ปจํ ์ด๋(redis, postgres, codition)์ ๋์ด ํ ๋ณธ ์ปจํ ์ด๋์ธairflow-webserver๊ฐ ๋์ด์ง!
-
postgres์ ์ปจํ ์ด๋ ์๋น์คimage: ์ฌ์ฉํ postgres ๋ฒ์ environment: postgres์์ ์ฌ์ฉํ OS ํ๊ฒฝ๋ณ์volumes: ์ปจํ ์ด๋์ ์ฐ๊ฒฐํ Local ํ์ผ ์์คํ ๊ฒฝ๋กpostgres-db-volume: ๋ก์ปฌ ํ์ผ ์์คํ ๊ฒฝ๋ก- Level 1์
volumes์์ ์ ์๋จ
- Level 1์
/var/lib/postgresql/data: ์ฐ๊ฒฐํ ์ปจํ ์ด๋ ๊ฒฝ๋ก- Why? ์ปจํ ์ด๋๋ฅผ ๋ด๋ ธ๋ค๊ฐ ์ฌ๋ฆด ๋ DB์ ์ ์ฅ๋ ํ์ผ์ ๋ก์ปฌ์ ์ฎ๊ฒจ์ผ DB๋ด ๋ฐ์ดํฐ๊ฐ ์ฌ๋ผ์ง์ง ์์!
ports: ๋ก์ปฌ๊ณผ docker์ ํฌํธ ์ฐ๊ฒฐ ๋ฐฉ๋ฒ- ์๋ฅผ ๋ค์ด, WSL์์์ ํฌํธ๋ 5432๊ฐ ์ฌ๋ฌ ๊ฐ์ธ ๊ฒฝ์ฐ, ๋ก์ปฌ์์๋ 5432, 5431 ๊ฐ๊ธฐ ์ค์ ํด์ผํจ
- ์ฆ, ๋ก์ปฌport:์ปจํ ์ด๋port


redisexpose: 6379- ๋ด๋ถ ์ปจํ ์ด๋ ๊ฐ ์ฐ๋ > ์ธ๋ถ์์ ์ฐ๋ X
ports๋ ์ธ๋ถ์ ์ปจํ ์ด๋ ์ฐ๊ฒฐ

2-3) volumes
- ์ปจํ ์ด๋์ ์ฌ์ฉ๋ ๋ณผ๋ฅจ์ ๋ฏธ๋ฆฌ ์ ์
postgres-db-volume์ด ์๋ก ๋ง๋ค ๋ณผ๋ฅจ ์ด๋ฆ- ๋ณผ๋ฅจ ์ ๋ณด ํ์ธ ๋ฐฉ๋ฒ
- ๋ณผ๋ฅจ ๋ฆฌ์คํธ ํ์ธ;
sudo docker volume ls - ๋ณผ๋ฅจ ์์ธ ๋ณด๊ธฐ:
sudo docker volume inspect {volume_id}
- ๋ณผ๋ฅจ ๋ฆฌ์คํธ ํ์ธ;
2-4) networks
- ์ปจํ ์ด๋ ๋คํธ์ํฌ ์ ๋ณด ๊ตฌ์ฑ
- ์ค์๋ณ์
subnet:gateway:
- ๋คํธ์ํฌ ์ ๋ณด ํ์ธ ๋ฐฉ๋ฒ
- ๋คํธ์ํฌ ๋ฆฌ์คํธ:
sudo docker network ls - ๋คํธ์ํฌ ์์ธ ๋ณด๊ธฐ:
sudo docker network inspect {network_id}
- ๋คํธ์ํฌ ๋ฆฌ์คํธ:
