dev container
Last updated
Was this helpful?
Last updated
Was this helpful?
install docker
install vscode
install dev container extension
ํ์ฌ ๋ก์ปฌ์ python์ ์ค์น๊ฐ ์๋์๊ณ vs code python๊ด๋ จ ํ๋ฌ๊ทธ์ธ์ ์ค์น๊ฐ ์๋์๋ค.
no python extension
python ํ๋ก์ ํธ๋ฅผ ์ด๊ณ ์คํ์ ๋๋ฌ๋ณด์.
์๋ฌ ๋๋ค.
๊ทธ๋ฆฌ๊ณ python์ ์ค์นํ๋ผ๊ณ ํ๋ค.
์ฐ๋ฆฌ๋ ๋ก์ปฌ ํ๊ฒฝ์ ๊ฑด๋๋ฆฌ์ง์๊ณ ๋ชจ๋ ๊ฑธ ์ปจํ ์ด๋์ ๋ด์์ ์ฌ์ฉํ๊ณ ์ถ๋ค.
๊ทธ๋์ dev container๋ฅผ ์ฌ์ฉํ๋ค.
cmd + shift + p
add dev container
ํ์ํ ๋ด์ฉ์ ์ ํํ์ ๋ python
3.10 bullseye
์ถ๊ฐ ๊ธฐ๋ฅ (์ผ๋จ ํจ์ค)
๋ค์ vscode ์ด๊ธฐ
๋ก๊ทธ๋ฅผ ํด๋ฆญํ๋ฉด ๋ก๊ทธ๋ฅผ ๋ณผ์์๋ค.
์ง๊ธ๊น์ง ํ๊ฑธ ์ ๋ฆฌํ๋ฉด ๋ณ๊ฑฐ ์๋ค. ์ ๋ฆฌํ๋ฉด
.devcontainer ํด๋๋ฅผ ๋ง๋ค๊ณ
๊ทธ์์ devcontainer.json์ ๋ง๋ค๊ณ
ํ์ํ ๋ด์ฉ์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
๋ค์ ๋ก๋ฉ์ ํ๋ฉด docker image๋ฅผ ๋ค์ด๋ก๋ ๋ฐ๋๋ฐ ์๊ฐ์ด ์ข ๊ฑธ๋ฆฐ๋ค.
์ผ๋จ ๊ธฐ๋ณธ ์ค์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
๋ค์ ๋ก๋ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋ณด์ธ๋ค.
plugin์ ํ์ธํด๋ณด๋ฉด ๋ค์์ฒ๋ผ 2๊ฐ์ ์ฐฝ์ด ๋ณด์ด๋ฉฐ ๊ฐ๊ฐ ์ค์น๋ ํ๋ฌ๊ทธ์ธ์ด ํ์๋๋ค.
์ฌ๊ธฐ์ ์ ๊น ์ ์ปจํ ์ด๋์ ๋ง์ ํ๋ฌ๊ทธ์ธ์ด ์ค์น๋์๋๊ฐ?
ms์์ ๊ธฐ๋ณธ ์ ๊ณตํ python container๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ด๋ค.
์๋ง ๋ค์๊ธ์ ์์ธํ ์ค๋ช ์์ //todo
๋ค ๋ฌ๋ค ์ด์ ํ์ผ์ ์คํํด ๋ณด์.
์คํ ๋ฒํผ์ ๋๋ฌ๋ณด์.
์ผ๋จ ์ฌ์ฉ์ํจ์ผ๋ก ํ์.
์คํํ์. ์๋ฌ..
์คํ์ ๋์์ผ๋ ํ์ํ ๋ชจ๋์ด ์ค์น๊ฐ ์๋์๋๋ฏ ์ถ๋ค.
์ค์นํ์.
๋ค์ ์คํํ์.
๋์ํ๋ค.
ํ๋ก์ ํธ๋ฅผ vscode๋ก ์ฐ๋ค.
cmd + shift + p > Dev Containers: Reopen in Container
๋น๋ํ๋ฉด์ ์คํํ๋ค.
์ฌ๊ธฐ์ ๋ค์ํ ์ค์ ์ ๋ณผ์์๋ค.
https://containers.dev/implementors/spec/
์ฌ๊ธฐ๋ ๋์์ด ๋๋ค.
name์ ์์ ํ ์ ์๋ค.
docker image๋ ๋ฃ์์ ์๋ค.
์์์๋ ์๋์ผ๋ก package๋ฅผ ์ค์นํด์ผํ๋๋ฐ ์ ์ปค๋งจ๋๋ฅผ ๋ฃ์ผ๋ฉด ๋น๋ํ๋ฉด์ ์๋์ผ๋ก ์ค์นํด์ค๋ค.
jsonํ์ผ์ ๋ณ๊ฒฝํ๋ฉด ๋ค์ ํ๋ฉด์ด ๋์จ๋ค.
๋ค์ ๋น๋ํ์.
ํน์ ์ฐฝ์ด ์ฌ๋ผ์ง๋ฉด ์๋์ชฝ์ ์ข ๋ชจ์์ ๋๋ฌ๋ณด๋ฉด ๋ณด์ธ๋ค.
์๋๋ฉด ๋ค์ ์ด๋ฉด ๋๋ค.(์ปจํ ์ด๋์์ ๋ค์ ์ด๊ธฐ)
์๋์ผ๋ก ์ค์นํ๋ค.
๋ง์ ์ต์ ์ด ์์ผ๋ฏ๋ก ๋ค์์ ํ์ธํ๋ค.
https://containers.dev/implementors/json_reference/
forwardPorts ๋ฅผ ํด๋ณด์.
ํฌํธ๊ฐ ์คํ๋๋ค.
๋ด๊ฐ ์ค์นํ๋ผ๊ณ ํ์ง ์์๊ณ ์ค์น๋์ด์๋๊ฑธ๋ก ๋ณด์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์น๋๋ ๊ฒ ๊ฐ๋ค.
docker image์ ํด๊ฒฐ์ฑ ์ด ์๋ค.
ํ์ฌ ์ฌ์ฉํ๊ณ ์๋ docker image์๋ ์์ฒด์ ์ธ devcontainer.json ์ด ์๋ค.
์ฐ๋ฆฌ๊ฐ ๋ง๋ devcontainer.json์ ์ ํ์ผ์ ์ถ๊ฐ๊ฐ ๋๋ ํ์์ด๋ค.
https://github.com/microsoft/vscode-dev-containers/blob/main/.devcontainer/devcontainer.json
์ฌ๊ธฐ์์ ๊ธฐ๋ณธํ์ผ๋ค์ ๋ณผ์๊ฐ ์๋ค. ๊ทธ๋ฆฌ๊ณ python3์ ๊ฒฝ์ฐ์๋ ๋ค์ ๊ฒฝ๋ก์ ์๋ค.
์ด๊ฒ๋ค์ ์ค์นํ๊ณ ์๋ค.
๊ทธ๋ผ ์ด์ ๋ด๊ฐ ์ํ๋ extension์ ์ถ๊ฐํ๊ณ ์ถ์ผ๋ฉด ๋ค์์ฒ๋ผ ํ์.
indent-rainbow๋ฅผ ์ค์นํ์.
์๋ณ์๋ฅผ ์๊ณ ์์ด์ผํ๋ค.
์ค์น๊ฐ ๋๋ค.
์ด์ ๋๋ง์ ๋์ปค๋ก ์ฌ์ฉํด๋ณผ๊ฐ?
Dockerfile์ ๋ง๋ค์.
์ด์ devcontainer.json์ ์์ ํ์.
๋ค์ ๋น๋ํ์.
๋์ํ ๊ฒ์ด๋ค.
docker-compose.yml๋ ์ฌ์ฉํ ์ ์๋ค.
๋ฐ๋น ์ ์ค๋์ ์ฌ๊ธฐ๊น์ง..๊ทธ๋ฐ๋ฐ ์บ์๋ ์ด๋ฏ๊ฒ?
cache
remote ์๋ฒ์ ์๋ docker
cli
๊ทธ๋ฐ๋ฐ ์๋ ์ต์คํ ์ ์ ์ ์ค์น๊ฐ ๋๊ฑธ๊ฐ์?