macOS에서 작성된 글입니다.


 

vscode에서 Remote Development 확장 설치

WSL, Dev Containers, Remote - SSH, Remote - Tunnels가 포함된 세트다.

 

이제 두가지 경우가 있다.

컨테이너가 이미 올라가 있는 경우

쉬프트 + 커맨드 + p 에서 >개발컨테이너: 실행 중인 컨테이너에 연결 선택

컨테이너 선택

>파일: 폴더열기

디렉토리 선택

그러면 터미널도 새로 열면 워크디렉토리에서 시작하고, vscode 탐색기도 디렉토리가 잘 설정되어있다.

 

컨테이너가 올라가 있지 않는 경우

보통은 docker compose up/start 하겠지만 Dev Containers 확장의 기능을 이용하는 방법이 있다. 다만 이렇게하면 vscode를 종료하면 컨테이너도 같이 stop 된다.

 

./compose.yml

services:
  dev:
    image: test_debian:latest
    pull_policy: never
    tty: true

 

./.devcontainer/devcontainer.json

{
  "dockerComposeFile": "../compose.yml",
  "service": "dev",
  "workspaceFolder": "/home/server"
}

위와같이 두개의 파일을 두고, vscode에서 

컨테이너에서 폴더 열기

compose.yml파일이 있는곳 이동 (이미지의 Dockerfile 은 필요없음)

안보이지만 .devcontainer 폴더가 있다. (숨김폴더라 그럼)

열기를 누르면 .devcontainer/devcontainer.json 의 설정을 기반으로 컨테이너를 올리고, 자동으로 접속까지 된다. 지금은 compose  파일을 설정해놨기 때문에 컨테이너를 띄울 때 compose파일을 따른다.

 

만약 compose파일 없이 devcontainer.json 단독으로 똑같이 컨테이너를 올리고싶다면 아래와 같이 설정하면 된다.

{
  "name": "dev",
  "image": "test_debian:latest",
  "workspaceFolder": "/home"
}

 

devcontainer의 의의는 vscode의 확장 설치도 자동화 할 수 있다는 점이다.

잘 설정해놓고 사용하면 

{
  "name": "dev",
  "image": "test_debian:latest",
  "workspaceFolder": "/home",
  "customizations": {
    "vscode": {
      "extensions": [
        "ms-vscode.cpptools",
        "llvm-vs-code-extensions.vscode-clangd"
      ],
      "settings": {
        "C_Cpp.intelliSenseEngine": "disabled"
      }
    }
  },
  "shutdownAction": "none"
}

위와 같이 확장 설치에 대한 설정을 해놓으면 컨테이너가 띄워졌을 때 자동으로 vscode 확장을 컨테이너에 설치해준다.

 

그리고 shutdownAction설정으로 vscode를 닫아도 컨테이너가 닫히지 않게도 설정할 수 있다.

+ Recent posts