dev container
1. install docker
install docker
2. install vscode
install vscode
3. install vscode extension

install dev container extension
4. create dev container
ํ์ฌ ๋ก์ปฌ์ python์ ์ค์น๊ฐ ์๋์๊ณ vs code python๊ด๋ จ ํ๋ฌ๊ทธ์ธ์ ์ค์น๊ฐ ์๋์๋ค.

no python extension

python ํ๋ก์ ํธ๋ฅผ ์ด๊ณ ์คํ์ ๋๋ฌ๋ณด์.

์๋ฌ ๋๋ค.
๊ทธ๋ฆฌ๊ณ python์ ์ค์นํ๋ผ๊ณ ํ๋ค.

์ฐ๋ฆฌ๋ ๋ก์ปฌ ํ๊ฒฝ์ ๊ฑด๋๋ฆฌ์ง์๊ณ ๋ชจ๋ ๊ฑธ ์ปจํ ์ด๋์ ๋ด์์ ์ฌ์ฉํ๊ณ ์ถ๋ค.
๊ทธ๋์ dev container๋ฅผ ์ฌ์ฉํ๋ค.
setup dev container
cmd + shift + p
add dev container


ํ์ํ ๋ด์ฉ์ ์ ํํ์ ๋ python

3.10 bullseye

์ถ๊ฐ ๊ธฐ๋ฅ (์ผ๋จ ํจ์ค)


๋ค์ vscode ์ด๊ธฐ
๋ก๊ทธ๋ฅผ ํด๋ฆญํ๋ฉด ๋ก๊ทธ๋ฅผ ๋ณผ์์๋ค.
์ง๊ธ๊น์ง ํ๊ฑธ ์ ๋ฆฌํ๋ฉด ๋ณ๊ฑฐ ์๋ค. ์ ๋ฆฌํ๋ฉด
.devcontainer ํด๋๋ฅผ ๋ง๋ค๊ณ
๊ทธ์์ devcontainer.json์ ๋ง๋ค๊ณ
ํ์ํ ๋ด์ฉ์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
dev container ์คํ
๋ค์ ๋ก๋ฉ์ ํ๋ฉด docker image๋ฅผ ๋ค์ด๋ก๋ ๋ฐ๋๋ฐ ์๊ฐ์ด ์ข ๊ฑธ๋ฆฐ๋ค.
์ผ๋จ ๊ธฐ๋ณธ ์ค์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
๋ค์ ๋ก๋ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋ณด์ธ๋ค.

plugin์ ํ์ธํด๋ณด๋ฉด ๋ค์์ฒ๋ผ 2๊ฐ์ ์ฐฝ์ด ๋ณด์ด๋ฉฐ ๊ฐ๊ฐ ์ค์น๋ ํ๋ฌ๊ทธ์ธ์ด ํ์๋๋ค.

์ฌ๊ธฐ์ ์ ๊น ์ ์ปจํ ์ด๋์ ๋ง์ ํ๋ฌ๊ทธ์ธ์ด ์ค์น๋์๋๊ฐ?
ms์์ ๊ธฐ๋ณธ ์ ๊ณตํ python container๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ด๋ค.
์๋ง ๋ค์๊ธ์ ์์ธํ ์ค๋ช ์์ //todo
python code ์คํ
๋ค ๋ฌ๋ค ์ด์ ํ์ผ์ ์คํํด ๋ณด์.

์คํ ๋ฒํผ์ ๋๋ฌ๋ณด์.

์ผ๋จ ์ฌ์ฉ์ํจ์ผ๋ก ํ์.
์คํํ์. ์๋ฌ..

์คํ์ ๋์์ผ๋ ํ์ํ ๋ชจ๋์ด ์ค์น๊ฐ ์๋์๋๋ฏ ์ถ๋ค.
์ค์นํ์.

๋ค์ ์คํํ์.

๋์ํ๋ค.
repoen project
ํ๋ก์ ํธ๋ฅผ vscode๋ก ์ฐ๋ค.
cmd + shift + p > Dev Containers: Reopen in Container
๋น๋ํ๋ฉด์ ์คํํ๋ค.
์ฌํ๊ณผ์
์ฌ๊ธฐ์ ๋ค์ํ ์ค์ ์ ๋ณผ์์๋ค.
https://containers.dev/implementors/spec/
์ฌ๊ธฐ๋ ๋์์ด ๋๋ค.
devcontainer.json ํ์ผ์ ์์
name์ ์์ ํ ์ ์๋ค.
docker image๋ ๋ฃ์์ ์๋ค.
์์์๋ ์๋์ผ๋ก package๋ฅผ ์ค์นํด์ผํ๋๋ฐ ์ ์ปค๋งจ๋๋ฅผ ๋ฃ์ผ๋ฉด ๋น๋ํ๋ฉด์ ์๋์ผ๋ก ์ค์นํด์ค๋ค.
jsonํ์ผ์ ๋ณ๊ฒฝํ๋ฉด ๋ค์ ํ๋ฉด์ด ๋์จ๋ค.

๋ค์ ๋น๋ํ์.
ํน์ ์ฐฝ์ด ์ฌ๋ผ์ง๋ฉด ์๋์ชฝ์ ์ข ๋ชจ์์ ๋๋ฌ๋ณด๋ฉด ๋ณด์ธ๋ค.
์๋๋ฉด ๋ค์ ์ด๋ฉด ๋๋ค.(์ปจํ ์ด๋์์ ๋ค์ ์ด๊ธฐ)

์๋์ผ๋ก ์ค์นํ๋ค.
๋ง์ ์ต์ ์ด ์์ผ๋ฏ๋ก ๋ค์์ ํ์ธํ๋ค.
https://containers.dev/implementors/json_reference/
forwardPorts ๋ฅผ ํด๋ณด์.
ํฌํธ๊ฐ ์คํ๋๋ค.

extension
๊ทธ๋ฐ๋ฐ ์๋ ์ต์คํ
์
์ ์ ์ค์น๊ฐ ๋๊ฑธ๊ฐ์? 
๋ด๊ฐ ์ค์นํ๋ผ๊ณ ํ์ง ์์๊ณ ์ค์น๋์ด์๋๊ฑธ๋ก ๋ณด์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์น๋๋ ๊ฒ ๊ฐ๋ค.
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๋ ์ฌ์ฉํ ์ ์๋ค.
todo
๋ฐ๋น ์ ์ค๋์ ์ฌ๊ธฐ๊น์ง..๊ทธ๋ฐ๋ฐ ์บ์๋ ์ด๋ฏ๊ฒ?
cache
remote ์๋ฒ์ ์๋ docker
cli
Last updated
Was this helpful?