Skip to content

Docker ko KR

ArchiBot edited this page Aug 6, 2026 · 69 revisions

๋„์ปค

ASF๋Š” docker ์ปจํ…Œ์ด๋„ˆ ํ˜•ํƒœ๋กœ๋„ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ €ํฌ์˜ docker ํŒจํ‚ค์ง€๋Š” ํ˜„์žฌ **ghcr.io**์™€ **Docker Hub**์—์„œ ์ด์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

ASF๋ฅผ Docker ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ **๊ณ ๊ธ‰ ์„ค์ •(advanced setup)**์œผ๋กœ ๊ฐ„์ฃผ๋˜๋ฉฐ, ๋Œ€๋‹ค์ˆ˜์˜ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ํ•„์š”ํ•˜์ง€ ์•Š๊ณ , ์ผ๋ฐ˜์ ์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์„ค์ •์— ๋น„ํ•ด ๋ณ„๋‹ค๋ฅธ ์ด์ ์ด ์—†๋‹ค๋Š” ์ ์„ ์œ ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ASF๋ฅผ ์„œ๋น„์Šค๋กœ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ(์˜ˆ: OS์™€ ํ•จ๊ป˜ ์ž๋™ ์‹œ์ž‘๋˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด) Docker๋ฅผ ๊ณ ๋ คํ•˜๊ณ  ๊ณ„์‹œ๋‹ค๋ฉด, ๋Œ€์‹  ๊ด€๋ฆฌ(management) ์„น์…˜์„ ์ฝ์–ด๋ณด์‹œ๊ณ  ์ ์ ˆํ•œ systemd ์„œ๋น„์Šค๋ฅผ ์„ค์ •ํ•˜์‹œ๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด๋ณด์„ธ์š”. ์ด๋Š” Docker ์ปจํ…Œ์ด๋„ˆ์—์„œ ASF๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๊ฑฐ์˜ ํ•ญ์ƒ ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

Docker ์ปจํ…Œ์ด๋„ˆ์—์„œ ASF๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ณดํ†ต ์ง์ ‘ ๋งˆ์ฃผํ•˜๊ณ  ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋Š” ์—ฌ๋Ÿฌ ์ƒˆ๋กœ์šด ๋ฌธ์ œ์™€ ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ, ์ด๋ฏธ Docker์— ๋Œ€ํ•œ ์ง€์‹์ด ์žˆ๊ณ  ๋‚ด๋ถ€ ๋™์ž‘ ๋ฐฉ์‹์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋ณ„๋„์˜ ๋„์›€์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ์ด๋ฅผ ํ”ผํ•˜์‹œ๊ธธ ๊ฐ•๋ ฅํžˆ ๊ถŒ์žฅ๋“œ๋ฆฝ๋‹ˆ๋‹ค. Docker ๋‚ด๋ถ€ ๋™์ž‘์— ๋Œ€ํ•ด์„œ๋Š” ASF ์œ„ํ‚ค์—์„œ ์ž์„ธํžˆ ๋‹ค๋ฃจ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ์„น์…˜์€ ๋งค์šฐ ๋ณต์žกํ•œ ๊ตฌ์„ฑ์˜ ์ •๋‹นํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์œ„ํ•œ ๊ฒƒ์œผ๋กœ, ์˜ˆ๋ฅผ ๋“ค์–ด ASF๊ฐ€ systemd ์„œ๋น„์Šค์—์„œ ๊ธฐ๋ณธ ์ œ๊ณตํ•˜๋Š” ํ‘œ์ค€ ์ƒŒ๋“œ๋ฐ•์‹ฑ(์ด๋ฏธ ๋งค์šฐ ๊ณ ๊ธ‰ ๋ณด์•ˆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ์šฐ์ˆ˜ํ•œ ํ”„๋กœ์„ธ์Šค ๊ฒฉ๋ฆฌ๋ฅผ ๋ณด์žฅํ•จ)์„ ๋„˜์–ด์„œ๋Š” ๊ณ ๊ธ‰ ๋„คํŠธ์›Œํ‚น์ด๋‚˜ ๋ณด์•ˆ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์†Œ์ˆ˜์˜ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด, ์—ฌ๊ธฐ์„œ๋Š” ASF์˜ Docker ํ˜ธํ™˜์„ฑ์— ๊ด€ํ•œ ๊ฐœ๋…์„ ์ข€ ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์ด ๋ถ€๋ถ„์— ํ•œํ•ด์„œ์ด๋ฉฐ, ASF์™€ ํ•จ๊ป˜ Docker๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค๋ฉด ์‚ฌ์šฉ์ž ์Šค์Šค๋กœ ์ถฉ๋ถ„ํ•œ Docker ์ง€์‹์„ ๊ฐ–์ถ”๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.


ํƒœ๊ทธ

ASF๋Š” ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ **ํƒœ๊ทธ(tags)**๋ฅผ ํ†ตํ•ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค:

main

main ๋ธŒ๋žœ์น˜์˜ ์ตœ์‹  ์ปค๋ฐ‹์œผ๋กœ ๋นŒ๋“œ๋œ ASF์˜ ๋ฒ”์šฉ ๋นŒ๋“œ๋กœ, ์ €ํฌ CI ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ์ตœ์‹  ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์ง์ ‘ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ๋ชฉ์ ์œผ๋กœ ๊ฐœ๋ฐœ์ž ๋ฐ ๊ณ ๊ธ‰ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ์ œ๊ณต๋˜๋Š”, ๋ฒ„๊ทธ๊ฐ€ ๊ฐ€์žฅ ๋งŽ์„ ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ค€์˜ ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค. ์ด ์ด๋ฏธ์ง€๋Š” GitHub main ๋ธŒ๋žœ์น˜์— ์ปค๋ฐ‹์ด ์žˆ์„ ๋•Œ๋งˆ๋‹ค ์—…๋ฐ์ดํŠธ๋˜๋ฏ€๋กœ, ๋งค์šฐ ์žฆ์€ ๋ณ€๊ฒฝ(๊ทธ๋ฆฌ๊ณ  ์ผ๋ถ€ ๊ธฐ๋Šฅ์ด ์ •์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ์ƒํ™ฉ)์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €ํฌ ๋ฆด๋ฆฌ์Šค ์ฃผ๊ธฐ์—์„œ ์„ค๋ช…ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ, ์•ˆ์ •์„ฑ์ด๋‚˜ ํ…Œ์ŠคํŠธ ์™„๋ฃŒ๊ฐ€ ๋ฐ˜๋“œ์‹œ ๋ณด์žฅ๋˜์ง€๋Š” ์•Š๋Š” ASF ํ”„๋กœ์ ํŠธ์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ํƒœ๊ทธ๋Š” ์–ด๋– ํ•œ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ๋„ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์ปค๋ฐ‹์ด ๊ฒช๊ณ  ์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ์‹ค์ œ๋กœ ์ˆ˜์ •ํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ ์ž ํ•  ๋•Œ, ๊ทธ ์ปค๋ฐ‹์ด ํฌํ•จ๋œ pre-release์กฐ์ฐจ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ์–ด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

released

pre-release๋ฅผ ํฌํ•จํ•˜์—ฌ ํ•ญ์ƒ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค๋œ ASF ๋ฒ„์ „์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ASF์˜ ๋ฒ”์šฉ ๋นŒ๋“œ์ž…๋‹ˆ๋‹ค. main ํƒœ๊ทธ์™€ ๋‹ฌ๋ฆฌ, ์ด ์ด๋ฏธ์ง€๋Š” ์ƒˆ๋กœ์šด GitHub ํƒœ๊ทธ๊ฐ€ ํ‘ธ์‹œ๋  ๋•Œ๋งˆ๋‹ค ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค. ์•ˆ์ •์ ์ด๋ฉด์„œ๋„ ์ƒˆ๋กœ์šด, ์ตœ์ฒจ๋‹จ์— ์žˆ๊ธฐ๋ฅผ ์ข‹์•„ํ•˜๋Š” ๊ณ ๊ธ‰ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ๋Š” pull ์‹œ์ ์—์„œ ๊ฐ€์žฅ ์ตœ์‹ ์˜ A.B.C.D ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋กค๋ง ํƒœ๊ทธ์™€ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ €ํฌ **pre-release**๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•˜๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์„ธ์š”.

์•ˆ์ • ๋ฒ„์ „

ํ•ญ์ƒ ์ตœ์‹  stable ASF ๋ฒ„์ „์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ASF์˜ ๋ฒ”์šฉ ๋นŒ๋“œ์ž…๋‹ˆ๋‹ค. released ํƒœ๊ทธ์™€ ๋‹ฌ๋ฆฌ, ์ด ์ด๋ฏธ์ง€๋Š” ์ƒˆ๋กœ์šด ASF stable ๋ฒ„์ „์ด ๋‚˜์˜ฌ ๋•Œ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค. ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ released ํƒœ๊ทธ์˜ stable ๋ฒ„์ „์„ ์ฐพ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

latest

ํ•ญ์ƒ ์ตœ์‹  stable ASF ๋ฒ„์ „์„ ๊ฐ€๋ฆฌํ‚ค๋Š” OS๋ณ„ ASF ๋นŒ๋“œ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํƒœ๊ทธ๋“ค๊ณผ ๋น„๊ตํ–ˆ์„ ๋•Œ, ์ด ํƒœ๊ทธ๋งŒ์ด ์œ ์ผํ•˜๊ฒŒ ASF ์ž๋™ ์—…๋ฐ์ดํŠธ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด ํƒœ๊ทธ์˜ ๋ชฉ์ ์€ ์ž์ฒด ์—…๋ฐ์ดํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•œ OS๋ณ„ ASF ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”, ๋ฌด๋‚œํ•œ ๊ธฐ๋ณธ Docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•œ๋งŒํผ ์ž์ฃผ ์—…๋ฐ์ดํŠธ ๋  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ํฌํ•จ๋œ ASF ๋ฒ„์ „์€ ํ•„์š”ํ•˜๋‹ค๋ฉด ์Šค์Šค๋กœ ์—…๋ฐ์ดํŠธ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก  UpdatePeriod๋Š” ์•ˆ์ „ํ•˜๊ฒŒ ๋Œ ์ˆ˜ ์žˆ์ง€๋งŒ(0์œผ๋กœ ์„ค์ •), ์ด ๊ฒฝ์šฐ์—๋Š” ๋Œ€์‹  stable ๋ฆด๋ฆฌ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ์›ํ•œ๋‹ค๋ฉด ๊ธฐ๋ณธ UpdateChannel์„ ์ˆ˜์ •ํ•˜์—ฌ pre-release๋ฅผ ์ถ”์ ํ•˜๋„๋ก ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

latest ์ด๋ฏธ์ง€๋Š” ์ž๋™ ์—…๋ฐ์ดํŠธ ๊ธฐ๋Šฅ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, .NET ๋Ÿฐํƒ€์ž„๊ณผ generic ASF ๋ฒ„์ „์„ ํฌํ•จํ•˜๋Š” ๋‹ค๋ฅธ ๋ชจ๋“  ํƒœ๊ทธ์™€ ๋‹ฌ๋ฆฌ, OS๋ณ„ linux ASF ๋ฒ„์ „๊ณผ ํ•จ๊ป˜ ๊ธฐ๋ณธ(bare) OS๋งŒ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์—…๋ฐ์ดํŠธ๋œ ์ƒˆ ASF ๋ฒ„์ „์ด ์ด๋ฏธ์ง€๊ฐ€ ๋นŒ๋“œ๋  ๋•Œ ์‚ฌ์šฉ๋œ ๋Ÿฐํƒ€์ž„๋ณด๋‹ค ๋” ์ƒˆ๋กœ์šด ๋Ÿฐํƒ€์ž„์„ ์š”๊ตฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ด๋ฏธ์ง€๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ๋นŒ๋“œํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋Š” ์›๋ž˜ ์˜๋„ํ•œ ์‚ฌ์šฉ ๋ชฉ์ ์„ ๋ฌด์˜๋ฏธํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

A.B.C.D

ํƒœ๊ทธ์™€ ์ผ์น˜ํ•˜๋Š” ๊ณ ์ •๋œ ASF ๋ฒ„์ „์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ASF์˜ ๋ฒ”์šฉ ๋นŒ๋“œ์ž…๋‹ˆ๋‹ค. ์œ„์˜ ํƒœ๊ทธ๋“ค๊ณผ ๋น„๊ตํ–ˆ์„ ๋•Œ, ์ด ํƒœ๊ทธ๋Š” ์™„์ „ํžˆ ๊ณ ์ •๋˜์–ด ์žˆ์–ด ํ•œ ๋ฒˆ ๊ฒŒ์‹œ๋œ ์ด๋ฏธ์ง€๋Š” ์ดํ›„ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ตœ์ดˆ ๋ฆด๋ฆฌ์Šค ํ›„ ํ•œ๋ฒˆ๋„ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š์€ GitHub ๋ฆด๋ฆฌ์Šค์™€ ์œ ์‚ฌํ•˜๊ฒŒ ๋™์ž‘ํ•˜๊ณ , ์•ˆ์ •์ ์ด๊ณ  ๋™๊ฒฐ๋œ ํ™˜๊ฒฝ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํŠน์ • ASF ๋ฆด๋ฆฌ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋นŒ๋“œ ๊ฒฐ๊ณผ๊ฐ€ ํ•ญ์ƒ ๋™์ผํ•˜๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฒฝ์šฐ(์˜ˆ: ASF ๋ฒ„์ „์„ ์ง์ ‘ ๊ด€๋ฆฌํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ) ์ด ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


์–ด๋–ค ํƒœ๊ทธ๊ฐ€ ์ตœ์„ ์ž…๋‹ˆ๊นŒ?

์ฐพ๊ณ  ์žˆ๋Š” ๊ฒƒ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž์—๊ฒŒ latest ํƒœ๊ทธ๊ฐ€ ์ตœ์„ ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์„œ๋น„์Šค๋กœ ๋˜์–ด์žˆ๋Š” ํŠน๋ณ„ํ•œ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์— ๋‹ด๊ฒจ์žˆ์„ ๋ฟ ๋ฐ์Šคํฌํƒ‘ ASF๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ์ •ํ™•ํ•˜๊ฒŒ ๋™์ผํ•˜๊ฒŒ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ์ด๊ฒƒ์ด ๋ฐ˜๋“œ์‹œ Docker๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ์‹์€ ์•„๋‹™๋‹ˆ๋‹ค - ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ณ„์† ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์ด ๊ธฐ๋Œ€๋˜๋ฉฐ, ์ด ๊ฒฝ์šฐ์—๋Š” Docker ๊ฐ€์ด๋“œ๋ผ์ธ์„ ๋”ฐ๋ฅด๋Š” stable์ด๋‚˜ released ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ, ํŠน์ • ๊ณ ์ • ๋ฒ„์ „์˜ ASF๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹น์—ฐํžˆ A.B.C.D ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ฐพ๊ณ  ์žˆ๋Š” ๊ฒƒ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

main ๋นŒ๋“œ๋Š” ์ €ํฌ๊ฐ€ ASF ํ”„๋กœ์ ํŠธ์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•œ ์šฉ๋„์ด๋ฏ€๋กœ, ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ ์ƒํƒœ๋Š” ์–ด๋–ค๊ฒƒ๋„ ์ •์ƒ์ž‘๋™์„ ๋ณด์žฅํ•˜์ง€ ์•Š์ง€๋งŒ, ASF ๊ฐœ๋ฐœ์— ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด ์‹œ๋„ํ•ด๋ณด๋Š” ๊ฒƒ๋„ ์ข‹์Šต๋‹ˆ๋‹ค.


์•„ํ‚คํ…์ณ

ASF Docker ์ด๋ฏธ์ง€๋Š” ํ˜„์žฌ linux ํ”Œ๋žซํผ์—์„œ x64, arm, arm64 3๊ฐ€์ง€ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋Œ€์ƒ์œผ๋กœ ๋นŒ๋“œ๋ฉ๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ์ •๋ณด๋Š” ํ˜ธํ™˜์„ฑ ํ•ญ๋ชฉ์„ ์ฐธ๊ณ ํ•˜์‹ญ์‹œ์˜ค.

์ €ํฌ ํƒœ๊ทธ๋Š” ๋ฉ€ํ‹ฐ ํ”Œ๋žซํผ ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ, ์ด๋ฏธ์ง€๋ฅผ pullํ•  ๋•Œ ์‚ฌ์šฉ์ž์˜ ๊ธฐ๊ธฐ์— ์„ค์น˜๋œ Docker๊ฐ€ ํ•ด๋‹น ํ”Œ๋žซํผ์— ๋งž๋Š” ์ด๋ฏธ์ง€๋ฅผ ์ž๋™์œผ๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ํ˜น์‹œ๋ผ๋„ ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํ”Œ๋žซํผ๊ณผ ๋‹ค๋ฅธ ํŠน์ • ํ”Œ๋žซํผ์šฉ ์ด๋ฏธ์ง€๋ฅผ pullํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, docker run๊ณผ ๊ฐ™์€ ์ ์ ˆํ•œ docker ๋ช…๋ น์–ด์—์„œ --platform ์Šค์œ„์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ **์ด๋ฏธ์ง€ ๋งค๋‹ˆํŽ˜์ŠคํŠธ(image manifest)**์— ๊ด€ํ•œ docker ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.


์‚ฌ์šฉ๋ฒ•

์™„์ „ํ•œ ์ฐธ์กฐ๋Š” **๋„์ปค ๊ณต์‹ ๋ฌธ์„œ**๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๊ณ , ์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” ๊ฐ„๋‹จํ•œ ์‚ฌ์šฉ๋ฒ•๋งŒ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋” ๊นŠ์ด ๊ณต๋ถ€ํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ASF!

๋จผ์ € ๋„์ปค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ASF์˜ "Hello World!" ์ž…๋‹ˆ๋‹ค.

docker run -it --name asf --pull always --rm justarchi/archisteamfarm

docker run ์œผ๋กœ ๋‹น์‹ ์˜ ์ƒˆ๋กœ์šด ASF ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ „๊ฒฝ์—์„œ ์‹คํ–‰๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค(-it). --pull always๋Š” ์ตœ์‹  ์ด๋ฏธ์ง€๊ฐ€ ๋จผ์ € pull๋˜๋„๋ก ๋ณด์žฅํ•˜๋ฉฐ, --rm์€ ์ง€๊ธˆ์€ ๋‹จ์ˆœํžˆ ์ •์ƒ ์ž‘๋™ ์—ฌ๋ถ€๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ค‘์ง€๋˜๋ฉด ์ž๋™์œผ๋กœ ์‚ญ์ œ๋˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“ ๊ฒƒ์ด ์„ฑ๊ณต์ ์œผ๋กœ ๋๋‚˜๋ฉด, ๋ชจ๋“  ๋ ˆ์ด์–ด๋ฅผ ๋‹น๊ธฐ๊ณ  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹œ์ž‘ํ•œ ๋’ค ASF๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹œ์ž‘ํ•ด์„œ ์ •์˜๋œ ๋ด‡์ด ์—†๋‹ค๊ณ  ์•Œ๋ฆฌ๊ณ  ์žˆ์Œ์„ ์•Œ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ASF๊ฐ€ ๋„์ปค์—์„œ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. CTRL+C๋ฅผ ๋ˆ„๋ฅด๋ฉด ASF ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉฐ, ์ด์— ๋”ฐ๋ผ ์ปจํ…Œ์ด๋„ˆ๋„ ํ•จ๊ป˜ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

๋ช…๋ น์–ด๋ฅผ ์ž์„ธํžˆ ๋ดค๋‹ค๋ฉด ํƒœ๊ทธ๋ฅผ ์„ ์–ธํ•˜์ง€ ์•Š์•˜์Œ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์„ ๊ฒ๋‹ˆ๋‹ค. ํƒœ๊ทธ๋Š” ์ž๋™์œผ๋กœ ๊ธฐ๋ณธ๊ฐ’์ธ latest ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. latest๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ํƒœ๊ทธ(์˜ˆ: released)๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ์ด๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

docker run -it --name asf --pull always --rm justarchi/archisteamfarm:released

๋ณผ๋ฅจ ์‚ฌ์šฉ

ASF๋ฅผ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ํ”„๋กœ๊ทธ๋žจ ์ž์ฒด๋ฅผ ํ™˜๊ฒฝ์„ค์ •ํ•  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ถ”์ฒœํ•˜๋Š” ๊ฒƒ์€ ๋กœ์ปฌ ๊ธฐ๊ธฐ์— ASF config ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด์„œ ASF ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์— ๊ณต์œ  ๋ณผ๋ฅจ์œผ๋กœ ๋งˆ์šดํŠธ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹น์‹ ์˜ ASF ํ™˜๊ฒฝ์„ค์ • ํด๋”๊ฐ€ /home/archi/ASF/config ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋””๋ ‰ํ† ๋ฆฌ๋Š” ํ•ต์‹ฌ ASF.json๊ณผ ์‹คํ–‰ํ•˜๋ ค๋Š” ๋ด‡์ด ๋‹ด๊ฒจ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ํ• ์ผ์€ ๋‹จ์ˆœํžˆ ์ด ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์— ๊ณต์œ ๋ณผ๋ฅจ์œผ๋กœ ๋ถ™์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ASF๋Š” ์—ฌ๊ธฐ์— ํ™˜๊ฒฝ์„ค์ • ๋””๋ ‰ํ† ๋ฆฌ(/app/config)๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

docker run -it -v /home/archi/ASF/config:/app/config --name asf --pull always justarchi/archisteamfarm

๊ทธ๋Ÿฌ๋ฉด ๋์ž…๋‹ˆ๋‹ค. ์ด์ œ ASF ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋Š” ๋กœ์ปฌ ๊ธฐ๊ธฐ์— ์žˆ๋Š” ๊ณต์œ  ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ฝ๊ธฐ-์“ฐ๊ธฐ ๋ชจ๋“œ๋กœ ์‚ฌ์šฉํ•˜๊ณ , ์ด๋Š” ASF๋ฅผ ์„ค์ •ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ „๋ถ€์ž…๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ, /app/logs๋‚˜ /app/plugins์ฒ˜๋Ÿผ ASF์™€ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์€ ๋‹ค๋ฅธ ๋ณผ๋ฅจ๋„ ๋งˆ์šดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก , ์ด๋Š” ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๋ฐ”๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํ•˜๋‚˜์˜ ๋ฐฉ๋ฒ•์ผ๋ฟ์ด๊ณ , ์ž์‹ ๋งŒ์˜ Dockerfile์„ ๋งŒ๋“ค์–ด์„œ ํ™˜๊ฒฝ์„ค์ • ํŒŒ์ผ์„ ASF ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์•ˆ์˜ /app/config ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋ณต์‚ฌํ•˜๋Š” ๋“ฑ ๋‹น์‹ ์ด ํ•˜๋ ค๋Š” ๊ฒƒ์„ ๋ง‰์„์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” ๊ธฐ๋ณธ์ ์ธ ๊ฒƒ๋งŒ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

๋ณผ๋ฅจ ๊ถŒํ•œ

ASF ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ root ์‚ฌ์šฉ์ž๋กœ ์ดˆ๊ธฐํ™”๋˜์–ด ๋‚ด๋ถ€ ๊ถŒํ•œ ๊ด€๋ จ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ดํ›„ ๋ฉ”์ธ ํ”„๋กœ์„ธ์Šค์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์—์„œ๋Š” asf(UID 1000) ์‚ฌ์šฉ์ž๋กœ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋Œ€๋‹ค์ˆ˜ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์ง€๋งŒ, ๊ณต์œ  ๋ณผ๋ฅจ์—๋Š” ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ ์ƒ์„ฑ๋˜๋Š” ํŒŒ์ผ์€ ์ผ๋ฐ˜์ ์œผ๋กœ asf ์‚ฌ์šฉ์ž ์†Œ์œ ๊ฐ€ ๋˜๋Š”๋ฐ, ๊ณต์œ  ๋ณผ๋ฅจ์— ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋ฅผ ์ง€์ •ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์›ํ•˜์ง€ ์•Š๋Š” ์ƒํ™ฉ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ASF๊ฐ€ ์‹คํ–‰๋˜๋Š” ์‚ฌ์šฉ์ž๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ, ๊ถŒ์žฅ๋˜๋Š” ๋ฐฉ๋ฒ•์€ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋Œ€์ƒ UID๋ฅผ ASF_UID ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ, ๋Œ€์•ˆ์ ์ธ ๋ฐฉ๋ฒ•์€ docker๊ฐ€ ์ง์ ‘ ์ง€์›ํ•˜๋Š” --user **ํ”Œ๋ž˜๊ทธ**๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด id -u ๋ช…๋ น์–ด๋กœ ๋ณธ์ธ์˜ uid๋ฅผ ํ™•์ธํ•œ ๋’ค, ์œ„์—์„œ ์„ค๋ช…ํ•œ ๋Œ€๋กœ ์ง€์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋Œ€์ƒ ์‚ฌ์šฉ์ž์˜ uid๊ฐ€ 1001์ธ ๊ฒฝ์šฐ:

docker run -it -e ASF_UID=1001 -v /home/archi/ASF/config:/app/config --name asf --pull always justarchi/archisteamfarm

# Alternatively, if you understand the limitations below
docker run -it -u 1001 -v /home/archi/ASF/config:/app/config --name asf --pull always justarchi/archisteamfarm

ASF_UID์™€ --user ํ”Œ๋ž˜๊ทธ์˜ ์ฐจ์ด๋Š” ๋ฏธ๋ฌ˜ํ•˜์ง€๋งŒ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ASF_UID๋Š” ASF๊ฐ€ ์ง€์›ํ•˜๋Š” ์ปค์Šคํ…€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ, ์ด ๊ฒฝ์šฐ docker ์ปจํ…Œ์ด๋„ˆ๋Š” ์—ฌ์ „ํžˆ root๋กœ ์‹œ์ž‘ํ•˜๋ฉฐ, ์ดํ›„ ASF ์‹œ์ž‘ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ASF_UID ๊ถŒํ•œ์œผ๋กœ ๋ฉ”์ธ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. --user ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ASF ์‹œ์ž‘ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํฌํ•จํ•œ ์ „์ฒด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ง€์ •๋œ ์‚ฌ์šฉ์ž ๊ถŒํ•œ์œผ๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ASF ์‹œ์ž‘ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๊ถŒํ•œ ๋“ฑ์„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์ฃผ์–ด, ์‚ฌ์šฉ์ž๊ฐ€ ์œ ๋ฐœํ–ˆ์„ ์ˆ˜ ์žˆ๋Š” ์ผ๋ถ€ ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์ค๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด /app๊ณผ /asf ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์‹ค์ œ๋กœ ASF_UID ์†Œ์œ ๊ฐ€ ๋˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ๋ฐฉ์‹์—์„œ๋Š” root๋กœ ์‹คํ–‰๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์—†์œผ๋ฉฐ, ์‚ฌ์šฉ์ž๊ฐ€ ๋ฏธ๋ฆฌ ์ง์ ‘ ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

--user ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค๋ฉด, ๊ธฐ๋ณธ๊ฐ’์ธ 1000์—์„œ ์ƒˆ๋กœ ์ง€์ •ํ•œ ์ปค์Šคํ…€ ์‚ฌ์šฉ์ž๋กœ ๋ชจ๋“  ASF ํŒŒ์ผ์˜ ์†Œ์œ ๊ถŒ์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

# Execute only if you're not using ASF_UID
docker exec -u root asf_container_name chown -hR 1001 /app /asf

์ด ์ž‘์—…์€ docker run์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•œ ํ›„ ํ•œ ๋ฒˆ๋งŒ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋˜๋ฉฐ, --user docker ํ”Œ๋ž˜๊ทธ๋ฅผ ํ†ตํ•ด ์ปค์Šคํ…€ ์‚ฌ์šฉ์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ•œ ๊ฒฝ์šฐ์—๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์œ„ ๋ช…๋ น์–ด์˜ 1001 ์ธ์ˆ˜๋ฅผ ์‹ค์ œ๋กœ ASF๋ฅผ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” UID๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์„ธ์š”.

Volume with SELinux

RHEL ๊ณ„์—ด ๋ฐฐํฌํŒ ๋“ฑ์—์„œ ๊ธฐ๋ณธ๊ฐ’์ธ enforced ์ƒํƒœ๋กœ SELinux๋ฅผ ์‚ฌ์šฉ ์ค‘์ด๋ผ๋ฉด, ๋ณผ๋ฅจ์„ ๋งˆ์šดํŠธํ•  ๋•Œ :Z ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ํ•ด๋‹น ๋ณผ๋ฅจ์— ์˜ฌ๋ฐ”๋ฅธ SELinux ์ปจํ…์ŠคํŠธ๊ฐ€ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

docker run -it -v /home/archi/ASF/config:/app/config:Z --name asf --pull always justarchi/archisteamfarm

์ด๋ฅผ ํ†ตํ•ด ASF๊ฐ€ docker ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ํ•ด๋‹น ๋ณผ๋ฅจ์„ ๋Œ€์ƒ์œผ๋กœ ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


๋‹ค์ค‘ ์ธ์Šคํ„ด์Šค ๋™๊ธฐํ™”

management ์„น์…˜์— ๋ช…์‹œ๋œ ๋Œ€๋กœ, ASF๋Š” ๋‹ค์ค‘ ์ธ์Šคํ„ด์Šค ๋™๊ธฐํ™” ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ASF๋ฅผ docker ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰ํ•  ๋•Œ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ASF ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ ์ค‘์ด๊ณ  ์ด๋“ค์„ ์„œ๋กœ ๋™๊ธฐํ™”ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์„ ํƒ์ ์œผ๋กœ ์ด ๊ณผ์ •์— "์ฐธ์—ฌ"ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ docker ์ปจํ…Œ์ด๋„ˆ ๋‚ด์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฐ ASF๋Š” ๋…๋ฆฝ์ (standalone)์ด๋ฉฐ, ์ด๋Š” ๋™๊ธฐํ™”๊ฐ€ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š๋Š”๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค ๊ฐ„ ๋™๊ธฐํ™”๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด, ๋™๊ธฐํ™”ํ•˜๋ ค๋Š” ๋ชจ๋“  ASF ์ปจํ…Œ์ด๋„ˆ์˜ /tmp/ASF ๊ฒฝ๋กœ๋ฅผ docker ํ˜ธ์ŠคํŠธ์˜ ํ•˜๋‚˜์˜ ๊ณต์œ  ๊ฒฝ๋กœ์— ์ฝ๊ธฐ-์“ฐ๊ธฐ ๋ชจ๋“œ๋กœ ๋ฐ”์ธ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์œ„์—์„œ ์„ค๋ช…ํ•œ ๋ณผ๋ฅจ ๋ฐ”์ธ๋”ฉ๊ณผ ์ •ํ™•ํžˆ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋ฉฐ, ๊ฒฝ๋กœ๋งŒ ๋‹ค๋ฅผ ๋ฟ์ž…๋‹ˆ๋‹ค:

mkdir -p /tmp/ASF-g1
docker run -v /tmp/ASF-g1:/tmp/ASF -v /home/archi/ASF/config:/app/config --name asf1 --pull always justarchi/archisteamfarm
docker run -v /tmp/ASF-g1:/tmp/ASF -v /home/john/ASF/config:/app/config --name asf2 --pull always justarchi/archisteamfarm
# ์ด์ œ ๋ชจ๋“  ASF ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์„œ๋กœ ๋™๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.

ASF์˜ /tmp/ASF ๋””๋ ‰ํ† ๋ฆฌ๋„ ์‚ฌ์šฉ์ž ๊ธฐ๊ธฐ์˜ ์ž„์‹œ /tmp ๋””๋ ‰ํ† ๋ฆฌ์— ๋ฐ”์ธ๋“œํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•˜์ง€๋งŒ, ๋ฌผ๋ก  ์‚ฌ์šฉ ๋ชฉ์ ์— ๋งž๋Š” ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์„ ํƒํ•˜์…”๋„ ๋ฉ๋‹ˆ๋‹ค. ๋™๊ธฐํ™”๋˜๊ธฐ๋ฅผ ์›ํ•˜๋Š” ๊ฐ ASF ์ปจํ…Œ์ด๋„ˆ๋Š” ๋™์ผํ•œ ๋™๊ธฐํ™” ํ”„๋กœ์„ธ์Šค์— ์ฐธ์—ฌํ•˜๋Š” ๋‹ค๋ฅธ ์ปจํ…Œ์ด๋„ˆ๋“ค๊ณผ /tmp/ASF ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ณต์œ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์œ„ ์˜ˆ์‹œ์—์„œ ์ง์ž‘ํ•˜์…จ๊ฒ ์ง€๋งŒ, ์„œ๋กœ ๋‹ค๋ฅธ docker ํ˜ธ์ŠคํŠธ ๊ฒฝ๋กœ๋ฅผ ASF์˜ /tmp/ASF์— ๋ฐ”์ธ๋“œํ•จ์œผ๋กœ์จ ๋‘ ๊ฐœ ์ด์ƒ์˜ "๋™๊ธฐํ™” ๊ทธ๋ฃน"์„ ๋งŒ๋“œ๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

/tmp/ASF ๋งˆ์šดํŠธ๋Š” ์™„์ „ํžˆ ์„ ํƒ ์‚ฌํ•ญ์ด๋ฉฐ, ๋‘ ๊ฐœ ์ด์ƒ์˜ ASF ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ๋™๊ธฐํ™”ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ์‹ค์ œ๋กœ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ASF ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ•˜๋‚˜๋งŒ ์‹คํ–‰ํ•  ๊ณ„ํš์ด๋ผ๋ฉด /tmp/ASF๋ฅผ ๋งˆ์šดํŠธํ•ด๋„ ์ „ํ˜€ ์ด์ ์ด ์—†์œผ๋ฉฐ, ์˜คํžˆ๋ ค ๋งˆ์šดํŠธํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ํ”ผํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋‹จ์ผ ์ปจํ…Œ์ด๋„ˆ ์‚ฌ์šฉ ์‹œ์—๋Š” ๋งˆ์šดํŠธํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.


๋ช…๋ น์ค„ ์ธ์ž

ASF๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ๋ช…๋ น์ค„ ์ธ์ž ๋ฅผ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋กœ ๋„˜๊ฒจ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€์›ํ•˜๋Š” ์Šค์œ„์น˜๋ฅผ ์œ„ํ•ด์„œ๋Š” ํŠน๋ณ„ํ•œ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ, ๊ทธ ์™ธ์—๋Š” ASF_ARGS ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. docker run ์— -e ์Šค์œ„์น˜๋ฅผ ๋ถ™์ด๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

docker run -it -e "ASF_CRYPTKEY=MyPassword" -e "ASF_ARGS=--no-config-migrate" --name asf --pull always justarchi/archisteamfarm

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด --cryptkey ์ธ์ž ๋ฟ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ์ธ์ž๋“ค๋„ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ์‹คํ–‰๋˜๋Š” ASF ํ”„๋กœ์„ธ์Šค๋กœ ์ „๋‹ฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๊ณ ๊ธ‰ ์‚ฌ์šฉ์ž๋ผ๋ฉด ENTRYPOINT๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ CMD๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ง์ ‘ ์ปค์Šคํ…€ ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ปค์Šคํ…€ ์•”ํ˜ธํ™” ํ‚ค๋‚˜ ๋‹ค๋ฅธ ๊ณ ๊ธ‰ ์˜ต์…˜์„ ์ œ๊ณตํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด, ์ผ๋ฐ˜์ ์œผ๋กœ ํŠน๋ณ„ํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ €ํฌ docker ์ปจํ…Œ์ด๋„ˆ๋Š” ์ด๋ฏธ ๋ฌด๋‚œํ•˜๊ณ  ๊ธฐ๋Œ€๋˜๋Š” ๊ธฐ๋ณธ ์˜ต์…˜์ธ --no-restart๋กœ ์‹คํ–‰๋˜๋„๋ก ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด, ํ•ด๋‹น ํ”Œ๋ž˜๊ทธ๋ฅผ ASF_ARGS์— ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.


IPC

IPC **์ „์—ญ ์„ค์ • ์†์„ฑ**์˜ ๊ธฐ๋ณธ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด, ์ด๋Š” ์ด๋ฏธ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, Docker ์ปจํ…Œ์ด๋„ˆ์—์„œ IPC๊ฐ€ ์ž‘๋™ํ•˜๋ ค๋ฉด ๋‘ ๊ฐ€์ง€๋ฅผ ์ถ”๊ฐ€๋กœ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ์งธ, IPCPassword๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, ์ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ์™ธ๋ถ€์—์„œ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ์ปค์Šคํ…€ IPC.config์—์„œ ๊ธฐ๋ณธ KnownNetworks๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ •๋ง๋กœ ๋ฌด์—‡์„ ํ•˜๋Š”์ง€ ์ •ํ™•ํžˆ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด, ๊ทธ๋ƒฅ IPCPassword๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. ๋‘˜์งธ, docker๋Š” ๋ฃจํ”„๋ฐฑ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์™ธ๋ถ€ ํŠธ๋ž˜ํ”ฝ์„ ๋ผ์šฐํŒ…ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ, ๊ธฐ๋ณธ ์ˆ˜์‹  ๋Œ€๊ธฐ ์ฃผ์†Œ์ธ localhost๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ฆฌ์Šจํ•˜๋Š” ์„ค์ •๊ฐ’์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค. http://*:1242. ๋ฌผ๋ก  ๋กœ์ปฌ LAN์ด๋‚˜ VPN ๋„คํŠธ์›Œํฌ ๊ฐ™์€ ๋” ์ œํ•œ์ ์ธ ๋ฐ”์ธ๋”ฉ์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์™ธ๋ถ€์—์„œ ๋ผ์šฐํŒ… ๊ฐ€๋Šฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. localhost๋Š” ๊ฒŒ์ŠคํŠธ ๊ธฐ๊ธฐ์•ˆ์—์„œ๋งŒ ๋ผ์šฐํŒ…ํ•˜๋ฏ€๋กœ ์ด๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์œ„์™€ ๊ฐ™์ด ํ•˜๋ ค๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์€ **์‚ฌ์šฉ์ž ์„ค์ • IPC**๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

{
    "Kestrel": {
        "Endpoints": {
            "HTTP": {
                "Url": "http://*:1242"
            }
        }
    }
}

IPC๋ฅผ ๋ฃจํ”„๋ฐฑ์ด ์•„๋‹Œ ์ธํ„ฐํŽ˜์ด์Šค์— ์„ค์ •ํ•˜๊ณ  ๋‚˜๋ฉด, -P ๋‚˜ -p ์Šค์œ„์น˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋„์ปค์—๊ฒŒ ASF์˜ 1242/tcp ํฌํŠธ๋ฅผ ์•Œ๋ ค์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ด ๋ช…๋ น์–ด๋Š” ASF์˜ IPC ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ˜ธ์ŠคํŠธ ๊ธฐ๊ธฐ์— ์—ด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

docker run -it -p 127.0.0.1:1242:1242 -p [::1]:1242:1242 --name asf --pull always justarchi/archisteamfarm

๋ชจ๋“  ๊ฒƒ์„ ์ •ํ™•ํ•˜๊ฒŒ ์„ค์ •ํ–ˆ๋‹ค๋ฉด ์œ„์˜ docker run ๋ช…๋ น์–ด๋Š” ํ˜ธ์ŠคํŠธ ๊ธฐ๊ธฐ์˜ IPC ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๊ฒŒ์ŠคํŠธ ๊ธฐ๊ธฐ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋œ ํ‘œ์ค€ localhost:1242 ๋ผ์šฐํŠธ์—์„œ๋™์ž‘ํ•˜๋„๋ก ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋ผ์šฐํŠธ๋ฅผ ๋” ๋งŽ์ด ๋…ธ์ถœํ•˜์ง€ ์•Š์Œ์„ ์•Œ์•„ ๋‘์‹ญ์‹œ์˜ค. ์—ฐ๊ฒฐ์€ ์˜ค์ง ๋„์ปค ํ˜ธ์ŠคํŠธ์•ˆ์—์„œ๋งŒ ์ด๋ฃจ์–ด์ง€๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก , ๋ฌด์—‡์„ ํ•˜๋Š”์ง€ ์ •ํ™•ํžˆ ์•Œ๊ณ  ์ ์ ˆํ•œ ๋ณด์•ˆ ์กฐ์น˜๋ฅผ ์ทจํ•œ๋‹ค๋ฉด ๊ฒฝ๋กœ๋ฅผ ๋” ๊ฐœ๋ฐฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.


์™„์ „ํ•œ ์˜ˆ์ œ

์œ„์˜ ์ง€์‹์„ ๋ชจ๋‘ ํ•ฉ์น˜๋ฉด ์™„์ „ํ•œ ์„ค์น˜ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

docker run -p 127.0.0.1:1242:1242 -p [::1]:1242:1242 -v /home/archi/ASF/config:/app/config -v /home/archi/ASF/plugins:/app/plugins --name asf --pull always --restart unless-stopped justarchi/archisteamfarm

์ด๋Š” ๋‹จ์ผ ASF ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๋ชจ๋“  ASF config ํŒŒ์ผ์ด /home/archi/ASF/config์— ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. config ๊ฒฝ๋กœ๋Š” ์‚ฌ์šฉ์ž ๊ธฐ๊ธฐ ํ™˜๊ฒฝ์— ๋งž๋Š” ๊ฒฝ๋กœ๋กœ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ASF์— ์ปค์Šคํ…€ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ด๋Š” /home/archi/ASF/plugins์— ๋„ฃ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ IPC.config ๋ฅผ ํ™˜๊ฒฝ์„ค์ • ๋””๋ ‰ํ† ๋ฆฌ์— ๋„ฃ๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค๋ฉด ์ถ”๊ฐ€๋กœ IPC ์‚ฌ์šฉ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

{
    "Kestrel": {
        "Endpoints": {
            "HTTP": {
                "Url": "http://*:1242"
            }
        }
    }
}

๋‹ค์Œ docker compose config๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์œ„์˜ docker run ๋ช…๋ น์–ด์™€ ๋™์ผํ•œ ํšจ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

version: "3.8"
services:
  asf:
    image: justarchi/archisteamfarm
    container_name: asf
    restart: unless-stopped
    ports:
      - "127.0.0.1:1242:1242"
      - "[::1]:1242:1242"
    volumes:
      - /home/archi/ASF/config:/app/config
      - /home/archi/ASF/plugins:/app/plugins

์•ž์„œ ๋‹ค๋ฃฌ ๋‚ด์šฉ ์™ธ์—, ์œ„ ๋‘ ์˜ˆ์‹œ ๋ชจ๋‘์— --restart unless-stopped๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ธฐ๊ธฐ๊ฐ€ ์žฌ์‹œ์ž‘๋œ ํ›„ ์ด ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ž๋™์œผ๋กœ ์‹œ์ž‘๋˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•„์š”์— ๋งž๊ฒŒ ์ž์œ ๋กญ๊ฒŒ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•˜์…”๋„ ๋ฉ๋‹ˆ๋‹ค.


ํ”„๋กœ ํŒ

ASF ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ค€๋น„๋˜์–ด์žˆ๋‹ค๋ฉด docker run๋ฅผ ๋งค๋ฒˆ ์‹คํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. docker stop asf์™€ docker start asf๋กœ ASF ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‰ฝ๊ฒŒ ๋ฉˆ์ถ”๊ณ  ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. latest ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ, ์ตœ์‹  ASF๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์—ฌ์ „ํžˆ docker stop, docker rm์„ ์‹คํ–‰ํ•œ ํ›„ docker run์„ ๋‹ค์‹œ ์‹คํ–‰ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์„ธ์š”. ์ด๋Š” ๋งค ๋ฒ„์ „๋งˆ๋‹ค ์ƒˆ๋กœ์šด ASF ๋„์ปค ์ด๋ฏธ์ง€๋กœ๋ถ€ํ„ฐ ๋‹ค์‹œ ๋นŒ๋“œํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. latest ํƒœ๊ทธ์—์„œ๋Š” ASF๊ฐ€ ์ž์ฒด ์ž๋™ ์—…๋ฐ์ดํŠธ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ, ์ตœ์‹  ASF๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค (๋‹ค๋งŒ ์ตœ์‹  .NET ๋Ÿฐํƒ€์ž„ ์ข…์†์„ฑ ๋ฐ ๊ธฐ๋ฐ˜ OS๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด, ํŠนํžˆ ASF ์ฃผ์š” ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ฑด๋„ˆ๋›ฐ์–ด ๋„˜์–ด๊ฐ€๋Š” ๊ฒฝ์šฐ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฐ€๋”์”ฉ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค).

์œ„์—์„œ ์•”์‹œํ•˜์˜€๋“ฏ์ด, latest ๊ฐ€ ์•„๋‹Œ ASF ํƒœ๊ทธ๋Š” ์Šค์Šค๋กœ ์ž๋™ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋‹น์‹ ์ด ์ตœ์‹ ์˜ justarchi/archisteamfarm ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•  ์ฃผ์ฒด์ž…๋‹ˆ๋‹ค. ๋ณดํ†ต ์•ฑ์ด ์‹คํ–‰์ค‘์—๋Š” ์ฝ”๋“œ๋ฅผ ๊ฑด๋“œ๋ ค์„œ๋Š” ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ์žฅ์ ์„ ๊ฐ–์ง€๋งŒ, ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์— ์žˆ๋Š” ASF๋Š” ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ํŽธ๋ฆฌํ•จ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ข‹์€ ์‚ฌ๋ก€์™€ ์ •ํ™•ํ•œ ๋„์ปค ์‚ฌ์šฉ๋ก€๋ฅผ ์ž˜ ์‚ดํ•€๋‹ค๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์ถ”์ฒœํ•˜๋Š” ๊ฒƒ์€ latest ํƒœ๊ทธ๊ฐ€ ์•„๋‹Œ released ํƒœ๊ทธ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๊ฒŒ ๊ท€์ฐฎ๊ณ  ASF๊ฐ€ ๋™์ž‘๋„ ์ž˜ํ•˜๊ณ  ์ž๋™ ์—…๋ฐ์ดํŠธ๋„ ํ•˜๊ธธ ์›ํ•˜๋ฉด latest ํƒœ๊ทธ๊ฐ€ ๊ทธ ๋‹ต์ž…๋‹ˆ๋‹ค.

๋ณดํ†ต ASF ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋Š” Headless: true ์ผ๋ฐ˜ ์„ค์ •์ƒํƒœ๋กœ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ASF์—๊ฒŒ ์„ธ๋ถ€์ ์ธ ๋‚ด์šฉ์ด ๋น ์ ธ์žˆ์–ด๋„ ๋‹น์‹ ์ด ์ค„ ์ˆ˜ ์—†์œผ๋ฉฐ ๋ฌป์ง€ ๋ง ๊ฒƒ์„ ์•Œ๋ฆฝ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ดˆ๊ธฐ ์„ค์น˜๋‹จ๊ณ„์—์„œ๋Š” ์ด ์˜ต์…˜์„ false๋กœ ํ•ด์„œ ์‰ฝ๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์žฅ๊ธฐ์ ์œผ๋กœ๋Š” ASF ์ฝ˜์†”์— ๋งค์—ฌ์žˆ์ง€ ์•Š์œผ๋ฏ€๋กœ ASF์—๊ฒŒ ์ด๋ฅผ ์•Œ๋ฆฌ๊ณ  ํ•„์š”๊ฐ€ ์žˆ์œผ๋ฉด input ๋ช…๋ น์–ด ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋งž์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•ด์„œ ASF๋Š” ์ผ์–ด๋‚˜์ง€ ์•Š์„ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ๋ฌดํ•œํžˆ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š์„ ์ˆ˜ ์žˆ๊ณ  ์ด์— ์†Œ์š”๋˜๋Š” ์ž์›๋‚ญ๋น„๋ฅผ ๋ง‰์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด๋Š” ASF๊ฐ€ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ๋น„๋Œ€ํ™”ํ˜•(non-interactive) ๋ชจ๋“œ๋กœ ์‹คํ–‰๋˜๋„๋ก ํ•ด์ฃผ๋ฉฐ, ์ด๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด ์‹œ๊ทธ๋„ ์ „๋‹ฌ๊ณผ ๊ด€๋ จํ•ด ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ASF๋Š” docker stop asf ์š”์ฒญ ์‹œ ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

en-US de-DE es-ES lol-US
pt-BR ru-RU zh-CN zh-TW

๐Ÿ‘จโ€๐Ÿซ ๊ธฐ๋ณธ

๐Ÿ‘จโ€๐ŸŽ“๏ธ ๋ฉ”์ธ

๐Ÿง™ ๊ณ ๊ธ‰

๐Ÿ‘ท ๊ฐœ๋ฐœ์ž

Clone this wiki locally