Repo2docker-action: ๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ: CodeSpaces ์ง€์นจ

์— ๋งŒ๋“  2020๋…„ 07์›” 23์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: jupyterhub/repo2docker-action

CodeSpaces ๋Š” ํ˜„์žฌ ๋ฒ ํƒ€ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ณง ์ถœ์‹œ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค(์ •ํ™•ํ•œ ์‹œ๊ธฐ๋Š” ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค). Repo2Docker์™€ ์ด ์ž‘์—…์€ ํ•ด๋‹น ํ™˜๊ฒฝ์—์„œ Jupyter ๋…ธํŠธ๋ถ์„ ์‰ฝ๊ฒŒ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ฝ”๋“œ์ŠคํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Jupyter ๋…ธํŠธ๋ถ๊ณผ ๊ฐ™์€ ์ž„์˜์˜ ์•ฑ์„ ๋‹ค๋ฅธ ํฌํŠธ์—์„œ ์‹œ์ž‘ํ•˜๊ณ  ํ•ด๋‹น ํฌํŠธ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. https://www.youtube.com/watch?v=Hpt1Xs96C74&feature=youtu.be

์ถ”์‹ : CodeSpaces ๊ตฌ์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/jupyterhub/repo2docker-action/blob/master/.devcontainer/devcontainer.json

์ฐธ์กฐ: @betatim @choldgraf

๋ชจ๋“  6 ๋Œ“๊ธ€

์ด๊ฒƒ์„ ๋ ˆ์ด๋”์— ์˜ฌ๋ ค ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ ๊ณต๊ฐ„์€ ๋ฐ”์ธ๋”์™€ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฆ…๋‹ˆ๊นŒ? vscode ๋˜๋Š” ๋‹ค๋ฅธ ์ธํ„ฐํŽ˜์ด์Šค๋งŒ ํ—ˆ์šฉํ•ฉ๋‹ˆ๊นŒ?

์ข‹์€ ์งˆ๋ฌธ Codespaces๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž„์˜์˜ Dockerized ์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ VSCode ์™ธ์— ๋ชจ๋“  ํฌํŠธ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‚ด๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ Jupyter Lab์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค ๐ŸŽ‰

๋‚˜๋Š” Binder๊ฐ€ ํ˜„์žฌ CodeSpaces์˜ ๋ฌด๋ฃŒ ๋ฒ„์ „๋ณด๋‹ค ๋” ๊ด€๋Œ€ํ•œ ์ปดํ“จํŒ…์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ์ƒ๊ฐ - ๋‚˜๋Š” repo2docker๊ฐ€ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ ์ƒํƒœ๊ณ„์— ํ”Œ๋Ÿฌ๊ทธ์ธํ•  ์ˆ˜ ์žˆ๋Š”์ง€, ๋ฐ”์ธ๋” ์™ธ๋ถ€์˜ ์›Œํฌํ”Œ๋กœ์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ์ŠคํŽ˜์ด์Šค!

์ฆ‰, codespaces๋Š” "vendor products" ๋ฒ”์ฃผ์— ๋” ๋งŽ์ด ์†ํ•˜๊ณ  ์ผ๋ฐ˜์ ์œผ๋กœ ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํ˜ธํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์—ฌ์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: codespaces / gitpod / colab / cocalc / codeocean / ๋“ฑ). ์ฆ‰, codespaces๊ฐ€ repo2docker์™€ ๊ฐ™์€ ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ๊น”๋”ํ•˜๋ฏ€๋กœ ๊ฐ•์กฐ ํ‘œ์‹œํ•˜๊ณ  ์ธ์‹ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ํ–‰์„ ์–ด๋–ป๊ฒŒ ๊ฑธ์–ด์•ผ ํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค! ๐Ÿค”๐Ÿค”๐Ÿค”

ํฅ๋ฏธ๋กœ์šด ์ ์ž…๋‹ˆ๋‹ค! ๋˜ํ•œ repo2docker๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ ํƒํ•œ ํด๋ผ์šฐ๋“œ์—์„œ ๋…ธํŠธ๋ถ VM์„ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” GPU์™€ ๊ฐ™์€ ์ปดํ“จํŒ…์ด๋‚˜ mybinder.org๊ฐ€ ์ ์ ˆํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋Š” ๊ธฐํƒ€ ๊ณผ์ค‘ํ•œ ์›Œํฌ๋กœ๋“œ์— ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ์ธํ”„๋ผ๊ฐ€ ๋ฌด๋ฃŒ๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ํด๋ผ์šฐ๋“œ ๊ณต๊ธ‰์ž(AWS, GCP, Azure)์™€ ํ†ตํ•ฉํ•˜๋Š” ์ด ๊ณต๊ธ‰์—…์ฒด ์˜์—ญ์—์„œ๋„ ์Šค์ผ€์ดํŠธ๋ฅผ ํƒ€๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฆ‰, ์‹ค์šฉ์ ์ธ ๋ฌธ์ œ๋กœ ์‚ฌ๋žŒ๋“ค์€ ์˜ˆ๋ฅผ ๋“ค์–ด @hugobown ์ด ํšŒ์˜์—์„œ Dask ๊ต์œก์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋™์•ˆ ์‚ฌ์šฉํ•  ๊ด€์‹ฌ ์„ ํฅ๋ฏธ๋กญ๊ฒŒ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋” ๋งŽ์€ ์ƒ๊ฐ๊ณผ ์˜๊ฒฌ์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ๋‹ด๋ก  ์Šค๋ ˆ๋“œ๋ฅผ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ค "XXX์™€ ์—ฐ๊ฒฐ๋œ repo2docker"์˜ ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ๊ฐ•์กฐํ•  ๋งŒํ•œ ๋ฉ‹์ง„ ์‚ฌ๋ก€๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ฉ์˜ ์žฌ : ๋นจ๋ฆฌ (์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ์œ ์‚ฌํ•œ ์•„์ด๋””์–ด์˜ ์ฃผ์œ„์— ์ž…์งˆ ํ•œ ์ •๋ง ๋ฉ‹์ง„ ๊ฑฐ๋ผ๊ณ  ๋‹น์‹ ์ด repo2docker๋กœ ๋งŒ๋“ค ์ˆ˜์žˆ๋Š” ํ™˜๊ฒฝ์— ์˜ํ•ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค ํด๋ผ์šฐ๋“œ,์— ๊ณ ์ • ํ‘œ์‹œ๊ธฐ ์šฉ๊ธฐ๋ฅผ ํšŒ์ „ํ•˜๋Š” ์šฉ๋„ the littlest jupyterhub ๋‹น์‹  ๋•Œ๋ฌธ์— repo2docker ํŒŒ์ผ๋กœ ์ •์˜๋œ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น ๋ฅธ ํ—ˆ๋ธŒ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ)

์ค‘๊ธฐ์ ์œผ๋กœ๋Š” ํŠน์ • ๊ณต๊ธ‰์—…์ฒด์˜ ์ƒํƒœ๊ณ„์—์„œ repo2docker๋ฅผ ๊ฐ•์กฐ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ด ๋” ํŽธํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋งŽ์€ ์ƒํƒœ๊ณ„(์ผ๋ถ€ ๊ณต๊ธ‰์—…์ฒด, ์ผ๋ถ€ ๊ณต๊ธ‰์—…์ฒด ์•„๋‹˜)์—์„œ๋„ repo2docker ์‚ฌ์šฉ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด

์ด ๋ฌธ์ œ์—์„œ ์•„์ด๋””์–ด ๋“ฑ์„ ์ˆ˜์ง‘ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋œ ๋•๋ถ„์— ์ด ๋ฌธ์ œ๋ฅผ ์ข…๋ฃŒํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰