Entrypoint
ํ๋ก๋์ ์ด๋ฏธ์ง์ ๊ธฐ๋ณธ ์ง์ ์ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ปจํ ์ด๋๊ฐ ์์๋ ๋ ์๋์ผ๋ก ์ํ๋๋ ๋ช ๊ฐ์ง ๋์์ด ์์ต๋๋ค. ์ด๋ค ๊ฒฝ์ฐ์๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์ด๋ฏธ์ง์ ์ ๋ฌํ์ฌ ํด๋น ๋์ ์ค ์ผ๋ถ๋ฅผ ํธ๋ฆฌ๊ฑฐํ ์ ์์ต๋๋ค.
์์์ ์ฌ์ฉ์๊ฐ ์ปจํ ์ด๋๋ฅผ ์คํํ๋๋ก ํ์ฉ
Airflow ์ด๋ฏธ์ง๋ Open-Shift์ ํธํ๋๋ฏ๋ก ์์์ ์ฌ์ฉ์ ID์ ๊ทธ๋ฃน ID 0
( root
)๋ก ์์ํ ์ ์์ต๋๋ค. Airflow์ ๋ค๋ฅธ ์ฌ์ฉ์๋ก ์ด๋ฏธ์ง๋ฅผ ์คํํ๋ ค๋ฉด ์ฌ์ฉ์์ GID๋ฅผ .์ผ๋ก ์ค์ ํด์ผ ํฉ๋๋ค 0
. ๋ค๋ฅธ ๊ทธ๋ฃน์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ฉด ์ง์
์ ์ด ์ค๋ฅ์ ํจ๊ป ์ข
๋ฃ๋ฉ๋๋ค.
OpenShift๋ ์ปจํ
์ด๋๋ฅผ ์์ํ ๋ UID๋ฅผ ๋ฌด์์๋ก ํ ๋นํ์ง๋ง, ์ด๋ฏธ์ง๋ฅผ ์๋์ผ๋ก ์คํํ๋ ๊ฒฝ์ฐ์๋ ์ด ์ ์ฐํ UID๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค. ์ด๋ ์๋ฅผ ๋ค์ด Linux์์ ํธ์คํธ ์์คํ
์ ํด๋๋ฅผ ๋ง์ดํธํ๋ ค๋ ๊ฒฝ์ฐ ์ ์ฉํ ์ ์์ผ๋ฉฐ dag
, logs
์ด ๊ฒฝ์ฐ UID๋ ํธ์คํธ ์ฌ์ฉ
์์ ๋์ผํ ID๋ก ์ค์ ํด์ผ ํฉ๋๋ค.
์ด๋ฏธ์ง๋ฅผ ํ์ฅํ๊ฑฐ๋ ์ฌ์ฉ์ ์ ์ํ ๋ USER๋ฅผ ๋ณ๊ฒฝํ ์๋ ์๊ณ , ๋ค์ ํ์ ์ค ํ๋๋ก ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ์ฌ ์ฌ์ฉ์๋ฅผ ๋ช ๋ น ์ ๋์ ์ผ๋ก ์ ๋ฌํ ์๋ ์์ต๋๋ค( ์์ธํ ๋ด์ฉ์ Docker Run ์ฐธ์กฐ).
docker run --user
[ user | user:group | uid | uid:gid | user:gid | uid:group ]
์ฃผ์
Docker Compose ํ๊ฒฝ์ ๊ฒฝ์ฐ docker-compose.yaml์ user:
ํญ๋ชฉ์ ํตํด ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ Docker Compose ์ฐธ์กฐ๋ฅผ ํ์ธํ์ธ์. Docker-Compose๋ฅผ ์ฌ์ฉํ๋ Quickstart Guide์์๋ ์ด๊ธฐํ ๋จ๊ณ์์ AIRFLOW_UID
๋ณ์๋ฅผ ํตํด UID๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.
์ฌ์ฉ์๋ ์ด๋ค UID๋ผ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ airflow (UID=50000)์ ๋ค๋ฅธ UID๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ์ปจํ ์ด๋์ ๋ค์ด๊ฐ ๋ ์ฌ์ฉ์๊ฐ ์๋์ผ๋ก ์์ฑ๋ฉ๋๋ค.
๋ค์ํ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ก์ ํธ๋ฅผ ์์ฉํ๊ธฐ ์ํด, Airflow๋ ํด๋น ์ฌ์ฉ์๋ฅผ (/etc/passwd)์ ์๋์ผ๋ก ์์ฑํ๊ณ ํ ๋๋ ํ ๋ฆฌ๋ฅผ /home/airflow๋ก ์ค์ ํฉ๋๋ค. ๋ง์ ์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํจํค์ง๋ค์ ์ฌ์ฉ์์ ํ ๋๋ ํ ๋ฆฌ๊ฐ ์กด์ฌํด์ผ ์บ์ ์ ๋ณด๋ฅผ ๊ธฐ๋กํ ์ ์์ผ๋ฏ๋ก, ์ด๋ฌํ ๋์ ์ฌ์ฉ์ ์์ฑ์ด ํ์ํฉ๋๋ค.
์์ ์ฌ์ฉ์๋ ํน์ ๋๋ ํ ๋ฆฌ์ ์ฐ๊ธฐ ๊ถํ์ ๊ฐ์ ธ์ผ ํ๋ฉฐ, ๋ณด์์์ ์ด์ ๋ก “other”์ ์ฐ๊ธฐ ๊ถํ์ ๋ถ์ฌํ๋ ๊ฒ์ ๊ถ์ฅ๋์ง ์์ต๋๋ค. OpenShift ์ง์นจ์์๋ ๋ชจ๋ ํ์ํ ํด๋์ 0 (root) ๊ทธ๋ฃน ID (GID)๋ฅผ ๋ถ์ฌํ๋ ๊ฐ๋ ์ ๋์ ํ์ต๋๋ค. Airflow ํ๋ก๋์ ์ด๋ฏธ์ง์์ ์ฐ๊ธฐ ๊ถํ์ด ํ์ํ ๋ชจ๋ ๋๋ ํ ๋ฆฌ๋ GID๊ฐ 0์ผ๋ก ์ค์ ๋์ด ์์ผ๋ฉฐ, ๊ทธ๋ฃน์ ์ฐ๊ธฐ ๊ถํ์ด ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด ๊ฐ๋ ์ ๋ฐ๋ฅด๋ฉฐ, ์ฐ๊ธฐ ๊ถํ์ด ํ์ํ ๋ชจ๋ ๋๋ ํ ๋ฆฌ๋ ์ด๋ฅผ ๋ฐ๋ฆ ๋๋ค.
airflow ์ฌ์ฉ์์ ๊ธฐ๋ณธ GID๋ 0์ผ๋ก ์ค์ ๋์ด ์์ด, ์ฌ์ฉ์๊ฐ ์์ฑํ๋ ๋ชจ๋ ๋๋ ํ ๋ฆฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก GID๊ฐ 0์ผ๋ก ์ค์ ๋ฉ๋๋ค. entrypoint๋ umask๋ฅผ 0002๋ก ์ค์ ํฉ๋๋ค - ์ด๋ ์ฌ์ฉ์๊ฐ ์์ฑํ๋ ๋ชจ๋ ๋๋ ํ ๋ฆฌ๊ฐ ๊ทธ๋ฃน 0์ ๋ํ "๊ทธ๋ฃน ์ฐ๊ธฐ" ๊ถํ์ ๊ฐ์ง๊ฒ ํ๋ฉฐ, root ๊ทธ๋ฃน์ ๋ค๋ฅธ ์ฌ์ฉ์๋ค๋ ์ด๋ฅผ ์ธ ์ ์๊ฒ ํฉ๋๋ค. ๋ํ, ์์์ ์ฌ์ฉ์๊ฐ ํด๋๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ (์: ๋ง์ดํธ๋ ๋ณผ๋ฅจ์์), ํด๋น ํด๋๋ "๊ทธ๋ฃน ์ฐ๊ธฐ" ๊ถํ๊ณผ GID=0์ ๊ฐ์ง๊ฒ ๋์ด, ๋์ค์ ๋ค๋ฅธ ์์์ ์ฌ์ฉ์๊ฐ ํด๋น ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง์ดํธํ๋๋ผ๋ ์คํ์ด ๊ณ์๋๋๋ก ํฉ๋๋ค.
๊ทธ๋ฌ๋ umask ์ค์ ์ ์ปจํ
์ด๋ ์คํ ์๊ฐ ๋์์๋ง ์ ์ฉ๋๋ฉฐ, ์ด๋ฏธ์ง ๋น๋ ์์๋ ์ ์ฉ๋์ง ์์ต๋๋ค. ์ด๋ฏธ์ง๋ฅผ ํ์ฅํ๊ณ ์์ฒด ํจํค์ง๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด docker ๋ช
๋ น์ด ์์ umask 0002
๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค - ์ด๋ฅผ ํตํด ์ค์น ์ค ์์ฑ๋ ๋๋ ํ ๋ฆฌ๊ฐ ๊ทธ๋ฃน์ ๋ํ ์ฐ๊ธฐ ๊ถํ์ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ด ํ ์ ์์ต๋๋ค:
RUN umask 0002; \
do_something; \
do_otherthing;
์ ๋ฆฌ
1. Airflow์ ๊ธฐ๋ณธ UID๋ 50000์ด๋ค.
2. Airflow๋ /etc/passwd์ ์ฌ์ฉ์์ ๊ถํ์ ๋ฑ๋กํ๋ค.
3. GID๋ ํ๋ก๋์ ์์ ์ฌ์ฉํ๊ธฐ ์ํ ์ฐ๊ธฐ ๊ถํ์ ๊ด๋ฆฌํ๋ค. ๋ง์ดํธ ๋์ด๋ ์ ์ง
'๐ข๏ธ Database' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Data Orchestration (0) | 2024.08.03 |
---|---|
๋ฐ์ดํฐ ํ์ง์ ๋น๋ฐ (3) (0) | 2024.07.30 |
๋ฐ์ดํฐ ํ์ง์ ๋น๋ฐ (2) (0) | 2024.07.21 |
๋ฐ์ดํฐ ํ์ง์ ๋น๋ฐ (1) (0) | 2024.07.17 |
[UNION ALL] Colum Row ๋ณํฉ (0) | 2024.02.16 |