728x90

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๋Š” ํ”„๋กœ๋•์…˜์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์“ฐ๊ธฐ ๊ถŒํ•œ์„ ๊ด€๋ฆฌํ•œ๋‹ค. ๋งˆ์šดํŠธ ๋˜์–ด๋„ ์œ ์ง€

๋ฐ˜์‘ํ˜•
๋‹คํ–ˆ๋‹ค