본문 바로가기
programing/infra

[ devcontainer ] devcontainer.json 이해하기

by 궈능비 2023. 2. 12.
728x90
반응형

 

devcontainer를 사용하면 컴퓨터 환경을 더럽히지 않을 수 있습니다.

 

가끔 느린게 흠이긴 하지만 꽤 유용하게 사용하고 있기 때문에 devcontainer의 설정파일인 devcontainer.json의 구성을 알아두는 게 좋을 것 같아 정리해두려고 합니다.


devcontainer.json의 자세한 설명은 아래에서도 확인해볼 수 있습니다.

https://containers.dev/implementors/json_reference/

 

Dev Container metadata reference

The devcontainer.json file contains any needed metadata and settings required to configurate a development container for a given well-defined tool and runtime stack. It can be used by tools and services that support the dev container spec to create a devel

containers.dev

 

저는 너무 많아서 일단 중요한 내용들만 밑에 정리해서 남겨두겠습니다.

 

{
    // -----------------------------------------------------------------

    "name": "devcontainer-example",

    "dockerComposeFile": "../../docker-compose.yml",

    "service": "app",

    "workspaceFolder": "/workspace",

    "forwardPorts": [],

    "remoteUser": "root",

    // -----------------------------------------------------------------

    // 기본 컨테이너에 추가할 개발 컨테이너 기능
    // "features": {
    //     "docker-in-docker": {
    //     "version": "latest",
    //     "dockerDashComposeVersion": "v2"
    //     }
    // },

    // -----------------------------------------------------------------

    "customizations": {
        "vscode": {
            "settings": { 
                "editor.mouseWheelZoom": true
            },
            "extensions": [
                "eamodio.gitlens"
            ]
        }

    }
}

 

1. name

컨테이너 이름입니다

2. dockerComposeFile

docker-compose.yml 파일을 이용해 빌드 할 경우 사용합니다.

docker-compose.yml 파일의 상대경로를 적어주면 됩니다.

 

참고로 제 docker-compose.yml 파일 위치는 이렇게 됩니다

3. service

docker-compose.yml 파일을 이용해 빌드 할 경우 사용합니다.

docker-compose.yml의 서비스 이름입니다.

 

참고로 제 docker-compose.yml 파일 입니다.

4. workspaceFolder

docker-compose.yml 파일을 이용해 빌드 할 경우 사용합니다.

컨테이너에 연결하는 기본 경로입니다.

 

ex ) code 폴더를 마운트 할 경우

workspace 안으로 넣어줘야 합니다.

5. forwardPorts

포트를 설정하는 부분입니다

저는 딱히 설정하지 않고 넘어가겠습니다

6. remoteUser

사용자를 정의하는 부분입니다

7. customizations

개인적으로는 devcontainer 사용할때 제일 중요한 부분이라고 생각합니다.

devcontainer 안에서 사용할 속성을 정의해놓는 부분입니다.

 

7-1. settings

vscode의 setting.json에 default 값을 설정해주는 부분입니다.

 

7-2. extensions

확장팩을 설치하는 부분입니다.

설치하고 싶은 익스텐션을 검색한 뒤에 추가해주면 됩니다.

 

 

728x90
반응형

댓글