컨테이너 도구 확장 사용자 지정
Container Tools 확장은 Docker 빌드 및 실행 동작을 제어하기 위해 여러 Visual Studio Code 작업을 포함하며, 디버깅을 위한 컨테이너 시작의 기반이 됩니다.
작업을 통해 많은 제어 및 사용자 지정이 가능합니다. 최종 구성은 일반 기본값, 플랫폼별 기본값(예: Node.js, Python 또는 .NET) 및 사용자 입력의 조합입니다. 사용자 입력은 기본값과 충돌하는 경우 우선 적용됩니다.
Visual Studio Code 작업의 모든 일반적인 기능(예: 작업을 복합 작업으로 그룹화)은 Container Tools 확장 작업에서 지원됩니다. 일반적인 작업 기능 및 속성에 대한 자세한 내용은 Visual Studio Code 사용자 지정 작업 설명서를 참조하세요.
Docker 빌드 작업
docker-build 작업은 Docker 명령줄(CLI)을 사용하여 이미지를 빌드합니다. 이 작업은 단독으로 사용하거나, 컨테이너 내에서 애플리케이션을 실행/디버그하기 위한 작업 체인의 일부로 사용할 수 있습니다.
docker-build 작업의 가장 중요한 구성 설정은 dockerBuild와 platform입니다.
dockerBuild개체는 Docker 빌드 명령에 대한 매개변수를 지정합니다. 이 개체에서 지정된 값은 Docker 빌드 CLI 호출에 직접 적용됩니다.platform속성은docker-build작업이 Docker 빌드 기본값을 결정하는 방식을 변경하는 힌트입니다.
작업 속성 전체 목록은 속성 참조를 참조하세요.
플랫폼 지원
tasks.json의 docker-build 작업은 모든 이미지를 빌드하는 데 사용할 수 있지만, 확장은 Node.js, Python 및 .NET에 대한 명시적 지원(및 간소화된 구성)을 제공합니다.
Node.js (docker-build)
기본값을 사용한 최소 구성
특정 플랫폼 옵션이 없는 Node.js 기반 이미지는 platform 속성을 node로 설정하기만 하면 됩니다.
{
"version": "2.0.0",
"tasks": [
{
"label": "Build Node Image",
"type": "docker-build",
"platform": "node"
}
]
}
플랫폼 기본값
Node.js 기반 이미지의 경우 docker-build 작업은 다음 옵션을 추론합니다.
| 속성 | 추론된 값 |
|---|---|
dockerBuild.context |
package.json이 있는 디렉토리와 동일합니다. |
dockerBuild.dockerfile |
package.json과 동일한 디렉토리의 Dockerfile 파일입니다. |
dockerBuild.tag |
package.json의 애플리케이션 name 속성(정의된 경우)이거나, 그렇지 않으면 package.json이 있는 폴더의 기본 이름입니다. |
dockerBuild.pull |
빌드 전에 새 기본 이미지를 가져오기 위해 기본적으로 true입니다. |
Python (docker-build)
기본값을 사용한 최소 구성
특정 플랫폼 옵션이 없는 Python 기반 이미지는 platform 속성을 python으로 설정하기만 하면 됩니다.
{
"tasks": [
{
"type": "docker-build",
"label": "docker-build",
"platform": "python"
}
]
}
플랫폼 기본값
Python 기반 이미지의 경우 docker-build 작업은 다음 옵션을 추론합니다.
| 속성 | 추론된 값 |
|---|---|
dockerBuild.context |
기본 컨텍스트는 작업 영역 폴더입니다. |
dockerBuild.dockerfile |
기본 Dockerfile 경로는 작업 영역 폴더의 루트에 있습니다. |
dockerBuild.tag |
루트 작업 영역 폴더의 기본 이름입니다. |
dockerBuild.pull |
빌드 전에 새 기본 이미지를 가져오기 위해 기본적으로 true입니다. |
.NET (docker-build)
기본값을 사용한 최소 구성
When you build a .NET-based image, you can omit the platform property and just set the netCore object (platform is implicitly set to netcore when netCore object is present). Note that appProject is a required property
{
"version": "2.0.0",
"tasks": [
{
"label": "Build Node Image",
"type": "docker-build",
"netCore": {
"appProject": "${workspaceFolder}/project.csproj"
}
}
]
}
플랫폼 기본값
.NET 기반 이미지의 경우 docker-build 작업은 다음 옵션을 추론합니다.
| 속성 | 추론된 값 |
|---|---|
dockerBuild.context |
루트 작업 영역 폴더입니다. |
dockerBuild.dockerfile |
루트 작업 영역 폴더의 Dockerfile 파일입니다. |
dockerBuild.tag |
루트 작업 영역 폴더의 기본 이름입니다. |
dockerBuild.pull |
빌드 전에 새 기본 이미지를 가져오기 위해 기본적으로 true입니다. |
빌드 작업 참조
Here are all properties available for configuring docker-build task. All properties are optional unless indicated otherwise.
| 속성 | 설명 |
|---|---|
dockerBuild |
docker build 명령을 제어하는 옵션 (아래 참조).platform이 설정되지 않은 경우 필수입니다. |
platform |
플랫폼: .NET(netcore) 또는 Node.js(node) 및 docker build 명령에 대한 기본 설정을 결정합니다. |
node |
Node.js 프로젝트에 대한 옵션을 결정합니다 (아래 참조). |
python |
docker-build 작업에 대한 Python 개체 속성은 없습니다. |
netCore |
.NET 프로젝트에 대한 옵션을 결정합니다 (아래 참조). |
dockerBuild 개체 속성
| 속성 | 설명 | docker build CLI에 해당 |
|---|---|---|
context |
빌드 컨텍스트의 경로입니다. 플랫폼에서 추론되지 않는 한 필수입니다. |
PATH |
dockerfile |
Dockerfile의 경로입니다. 플랫폼에서 추론되지 않는 한 필수입니다. |
-f 또는 --file |
tag |
이미지에 적용된 태그입니다. 플랫폼에서 추론되지 않는 한 필수입니다. |
-t 또는 --tag |
buildArgs |
명령줄에 적용된 빌드 인수입니다. 키-값 쌍 목록입니다. | --build-arg |
labels |
이미지에 추가된 레이블입니다. 키-값 쌍 목록(JSON 개체)입니다. 여기에 지정된 레이블 외에도 com.microsoft.created-by 레이블이 visual-studio-code로 설정되어 이미지에 추가됩니다. 이 동작은 labels 개체의 includeDefaults 속성을 false로 설정하여 비활성화할 수 있습니다. |
--label |
target |
빌드할 Dockerfile의 대상입니다. | --target |
pull |
빌드 전에 새 기본 이미지를 가져올지 여부입니다. | --pull |
customOptions |
컨텍스트 인수 앞에 추가할 추가 매개변수입니다. 다른 옵션과의 충돌을 해결하거나 이 옵션을 유효성 검사하려는 시도는 없습니다. | (any) |
node 개체 속성 (docker-build 작업)
| 속성 | 설명 | 기본값 |
|---|---|---|
package |
Dockerfile 및 docker-build 작업과 관련된 package.json 파일의 경로입니다. |
루트 작업 영역 폴더의 package.json 파일입니다. |
netCore 개체 속성 (docker-build 작업)
| 속성 | 설명 |
|---|---|
appProject |
Dockerfile 및 docker-build 작업과 관련된 .NET 프로젝트 파일(.csproj, .fsproj 등)입니다.항상 필수입니다. |
Docker 실행 작업
tasks.json의 docker-run 작업은 Docker 명령줄(CLI)을 사용하여 컨테이너를 만들고 시작합니다. 이 작업은 단독으로 사용하거나, 컨테이너 내에서 애플리케이션을 디버그하기 위한 작업 체인의 일부로 사용할 수 있습니다.
docker-run 작업의 가장 중요한 구성 설정은 dockerRun과 platform입니다.
dockerRun개체는 Docker 실행 명령에 대한 매개변수를 지정합니다. 이 개체에서 지정된 값은 Docker 실행 CLI 호출에 직접 적용됩니다.platform속성은docker-run작업이 Docker 실행 기본값을 결정하는 방식을 변경하는 힌트입니다.
작업 속성 전체 목록은 속성 참조를 참조하세요.
Docker 실행 플랫폼 지원
docker-run 작업은 모든 Docker 이미지를 실행하는 데 사용할 수 있지만, 확장은 Node.js, Python 및 .NET에 대한 명시적 지원(및 간소화된 구성)을 제공합니다.
Node.js (docker-run)
기본값을 사용한 최소 구성
특정 플랫폼 옵션이 없는 Node.js 기반 이미지는 platform 속성을 node로 설정하기만 하면 됩니다.
{
"version": "2.0.0",
"tasks": [
{
"label": "Run Node Image",
"node": "docker-run",
"platform": "node"
}
]
}
플랫폼 기본값
Node.js 기반 이미지의 경우 docker-run 작업은 다음 옵션을 추론합니다.
| 속성 | 추론된 값 |
|---|---|
dockerRun.command |
package.json의 npm start 스크립트(있는 경우)에서 생성되거나, 그렇지 않으면 package.json의 main 속성에서 생성됩니다. |
dockerRun.containerName |
애플리케이션 패키지 이름에서 파생됩니다. |
dockerRun.image |
종속된 docker-build 작업의 태그(있는 경우)이거나, 애플리케이션 패키지 이름에서 파생되며, 이는 package.json 내의 name 속성 또는 해당 파일이 있는 폴더의 기본 이름에서 파생됩니다. |
Python (docker-run)
Python 기반 이미지를 빌드할 때 platform 속성을 생략하고 python 개체만 설정할 수 있습니다(platform은 python 개체가 있을 때 암시적으로 python으로 설정됨).
Django 앱의 최소 구성
{
"type": "docker-run",
"label": "docker-run: debug",
"dependsOn": ["docker-build"],
"python": {
"args": ["runserver", "0.0.0.0:8000", "--nothreading", "--noreload"],
"file": "path_to/manage.py"
}
}
Flask 앱의 최소 구성
{
"type": "docker-run",
"label": "docker-run: debug",
"dependsOn": ["docker-build"],
"dockerRun": {
"env": {
"FLASK_APP": "path_to/flask_entry_point.py"
}
},
"python": {
"args": ["run", "--no-debugger", "--no-reload", "--host", "0.0.0.0", "--port", "5000"],
"module": "flask"
}
}
일반 앱의 최소 구성
{
"type": "docker-run",
"label": "docker-run: debug",
"dependsOn": ["docker-build"],
"python": {
"file": "path_to/app_entry_point.py"
}
}
플랫폼 기본값
Python 기반 이미지의 경우 docker-run 작업은 다음 옵션을 추론합니다.
| 속성 | 추론된 값 |
|---|---|
dockerRun.command |
Python 개체에 의해 생성되며 Python 디버거에서 호출됩니다. |
dockerRun.containerName |
루트 작업 영역 폴더의 기본 이름에서 파생됩니다. |
dockerRun.image |
종속된 docker-build 작업의 태그(있는 경우)이거나, 루트 작업 영역 폴더의 기본 이름에서 파생됩니다. |
.NET (docker-run)
기본값을 사용한 최소 구성
When you build a .NET-based image, you can omit the platform property and just set the netCore object (platform is implicitly set to netcore when netCore object is present). Note that appProject is a required property
{
"version": "2.0.0",
"tasks": [
{
"label": "Run .NET Core Image",
"type": "docker-run",
"netCore": {
"appProject": "${workspaceFolder}/project.csproj"
}
}
]
}
플랫폼 기본값
.NET 기반 이미지의 경우 docker-run 작업은 다음 옵션을 추론합니다.
| 속성 | 추론된 값 |
|---|---|
dockerRun.containerName |
루트 작업 영역 폴더의 기본 이름에서 파생됩니다. |
dockerRun.env |
필수 환경 변수 ASPNETCORE_ENVIRONMENT, ASPNETCORE_URLS 및 DOTNET_USE_POLLING_FILE_WATCHER를 추가합니다. |
dockerRun.image |
종속된 docker-build 작업의 태그(있는 경우)이거나, 루트 작업 영역 폴더의 기본 이름에서 파생됩니다. |
dockerRun.os |
Linux |
dockerRun.volumes |
필수 볼륨을 추가합니다: 로컬 애플리케이션 폴더, 소스 폴더, 디버거 폴더, NuGet 패키지 폴더 및 NuGet 대체 폴더. |
실행 작업 참조
Here are all properties available for configuring docker-run task. All properties are optional unless indicated otherwise.
| 속성 | 설명 |
|---|---|
dockerRun |
docker run 명령을 제어하는 옵션 (아래 참조).platform이 설정되지 않은 경우 필수입니다. |
platform |
플랫폼: .NET(netcore) 또는 Node.js(node) 및 docker run 명령에 대한 기본 설정을 결정합니다. |
node |
Node.js 프로젝트의 경우 다양한 옵션을 제어합니다 (아래 참조). |
python |
Python 프로젝트의 경우 다양한 옵션을 제어합니다 (아래 참조). |
netCore |
.NET 프로젝트의 경우 다양한 옵션을 제어합니다 (아래 참조). |
dockerRun 개체 속성
| 속성 | 설명 | CLI에 해당 |
|---|---|---|
image |
실행할 이미지의 이름(태그)입니다. 플랫폼에서 추론되지 않는 한 필수입니다. |
IMAGE |
command |
컨테이너 시작 시 실행할 명령입니다. 플랫폼에서 추론되지 않는 한 필수입니다. |
COMMAND [ARG...] |
containerName |
시작된 컨테이너에 지정된 이름입니다. 플랫폼에서 추론되지 않는 한 필수입니다. |
--name |
env |
컨테이너에서 설정된 환경 변수입니다. 키-값 쌍 목록입니다. | -e 또는 --env |
envFiles |
.env 파일 목록입니다. |
--env-file |
labels |
시작된 컨테이너에 지정된 레이블입니다. 키-값 쌍 목록입니다. | --label |
network |
컨테이너가 연결될 네트워크의 이름입니다. | --network |
networkAlias |
시작된 컨테이너의 네트워크 범위 별칭입니다. | --network-alias |
os |
기본값은 Linux이며, 다른 옵션은 Windows입니다. 사용된 컨테이너 운영 체제입니다. |
N/A |
ports |
게시(맵핑)할 포트입니다. 컨테이너에서 호스트로 전송됩니다. 개체 목록입니다 (아래 참조). | -p 또는 --publish |
portsPublishAll |
Docker 이미지에서 노출된 모든 포트를 게시할지 여부입니다. 명시적으로 포트가 게시되지 않은 경우 기본값은 true입니다. |
-P |
extraHosts |
DNS 해석을 위해 컨테이너에 추가할 호스트입니다. 개체 목록입니다 (아래 참조). | --add-host |
volumes |
시작된 컨테이너에 맵핑할 볼륨입니다. 개체 목록입니다 (아래 참조). | -v 또는 --volume |
remove |
컨테이너가 중지된 후 제거할지 여부입니다. | --rm |
customOptions |
이미지 인수 앞에 추가할 추가 매개변수입니다. 다른 옵션과의 충돌을 해결하거나 이 옵션을 유효성 검사하려는 시도는 없습니다. | (any) |
ports 개체 속성
| 속성 | 설명 | 기본값 |
|---|---|---|
containerPort |
컨테이너에 바인딩된 포트 번호입니다. 필수입니다. |
|
hostPort |
호스트에 바인딩된 포트 번호입니다. | (Docker에서 무작위로 선택됨) |
protocol |
바인딩에 대한 프로토콜(tcp 또는 udp)입니다. |
tcp |
extraHosts 개체 속성
| 속성 | 설명 |
|---|---|
hostname |
DNS 해석을 위한 호스트 이름입니다. 필수입니다. |
ip |
위 호스트 이름과 관련된 IP 주소입니다. 필수입니다. |
volumes 개체 속성
| 속성 | 설명 | 기본값 |
|---|---|---|
localPath |
맵핑될 로컬 머신의 경로입니다. 필수입니다. |
|
containerPath |
로컬 경로가 맵핑될 컨테이너 내의 경로입니다. 필수입니다. |
|
permissions |
컨테이너가 맵핑된 경로에 대해 갖는 권한입니다. ro(읽기 전용) 또는 rw(읽기-쓰기)일 수 있습니다. |
컨테이너에 따라 다릅니다. |
node 개체 속성 (docker-run 작업)
| 속성 | 설명 | 기본값 |
|---|---|---|
package |
docker-run 작업과 관련된 package.json 파일의 경로입니다. |
루트 작업 영역 폴더의 package.json 파일입니다. |
enableDebugging |
컨테이너 내에서 디버깅을 활성화할지 여부입니다. | false |
inspectMode |
애플리케이션과 디버거 간의 초기 상호 작용을 정의합니다(default 또는 break).default 값은 디버거가 연결될 때까지 애플리케이션이 실행되도록 합니다.break 값은 디버거가 연결될 때까지 애플리케이션이 실행되지 않도록 합니다. |
default |
inspectPort |
디버깅이 발생해야 하는 포트입니다. | 9229 |
python 개체 속성 (docker-run 작업)
| 속성 | 설명 | 기본값 |
|---|---|---|
args |
Python 앱에 전달된 인수입니다. | 플랫폼에 따라 다릅니다. 스캐폴딩의 기본값은 위에 표시됩니다. |
debugPort |
디버거가 수신 대기할 포트입니다. | 5678 |
wait |
디버거 연결을 기다릴지 여부입니다. | true |
module |
실행할 Python 모듈입니다(모듈 **또는** 파일 중 하나만 선택해야 함). | |
file |
실행할 Python 파일입니다(모듈 **또는** 파일 중 하나만 선택해야 함). |
netCore 개체 속성 (docker-run 작업)
| 속성 | 설명 |
|---|---|
appProject |
docker-run 작업과 관련된 .NET 프로젝트 파일(.csproj, .fsproj 등)입니다.필수입니다. |
configureSsl |
ASP.NET Core SSL 인증서 및 기타 설정을 구성하여 컨테이너 내 서비스의 SSL을 활성화할지 여부입니다. |
enableDebugging |
시작된 컨테이너를 디버깅용으로 사용 설정할지 여부입니다. 이는 디버깅에 필요한 추가 볼륨 맵핑 및 기타 옵션을 추론합니다. |
Docker Compose 작업
tasks.json의 docker-compose 작업은 Docker Compose 명령줄(CLI)을 사용하여 컨테이너를 만들고 시작합니다. 이 작업은 단독으로 사용하거나, 컨테이너 내에서 애플리케이션을 디버그하기 위한 작업 체인의 일부로 사용할 수 있습니다.
docker-compose 작업의 가장 중요한 구성 설정은 dockerCompose입니다.
dockerCompose개체는 Docker Compose 명령에 대한 매개변수를 지정합니다. 이 개체에서 지정된 값은 Docker Compose CLI 호출에 직접 적용됩니다.
작업 속성 전체 목록은 속성 참조를 참조하세요.
예제 구성
{
"version": "2.0.0",
"tasks": [
{
"label": "Run docker-compose up",
"type": "docker-compose",
"dockerCompose": {
"up": {
"detached": true,
"build": true,
"services": ["myservice"]
},
"files": [
"${workspaceFolder}/docker-compose.yml",
"${workspaceFolder}/docker-compose.debug.yml"
]
}
}
]
}
Compose 작업 참조
Here are all properties available for configuring docker-compose task. All properties are optional unless indicated otherwise.
| 속성 | 설명 |
|---|---|
dockerCompose |
docker-compose 명령을 제어하는 옵션 (아래 참조).필수입니다. |
dockerCompose 개체 속성
| 속성 | 설명 | CLI에 해당 |
|---|---|---|
up |
docker-compose up 명령을 실행합니다.이것 또는 down이 지정되어야 하며, 둘 다 지정해서는 안 됩니다. |
docker-compose up |
down |
docker-compose down 명령을 실행합니다.이것 또는 up이 지정되어야 하며, 둘 다 지정해서는 안 됩니다. |
docker-compose down |
files |
docker-compose 명령에서 사용할 Docker Compose YAML 파일 목록입니다. 지정하지 않으면 Docker Compose CLI는 docker-compose.yml 및 docker-compose.override.yml을 찾습니다. |
-f <file> |
envFile |
읽어서 컨테이너에 적용할 환경 변수 파일입니다. | --env-file <file> |
projectName |
Docker 개체의 이름과 레이블을 지정할 때 사용할 대체 프로젝트 이름입니다. Compose up 시 대체 프로젝트 이름을 사용하는 경우 Compose down 시에도 동일한 프로젝트 이름을 지정해야 합니다. | --project-name <name> |
up 개체 속성
| 속성 | 설명 | CLI에 해당 | 기본값 |
|---|---|---|---|
detached |
분리 모드로 실행할지 여부입니다. | -d |
true |
build |
실행 전에 빌드할지 여부입니다. | --build |
true |
scale |
실행할 각 서비스 인스턴스 수입니다. 키-값 쌍 목록입니다. | --scale SERVICE=NUM |
|
services |
시작할 서비스의 하위 집합입니다. profiles와 결합할 수 없습니다. |
[SERVICE...] |
(all) |
profiles |
시작할 프로필의 하위 집합입니다. services와 결합할 수 없습니다. |
--profile <profile> |
(all) |
customOptions |
up 인수 뒤에 추가할 추가 매개변수입니다. 다른 옵션과의 충돌을 해결하거나 이 옵션을 유효성 검사하려는 시도는 없습니다. |
(any) |
down 개체 속성
| 속성 | 설명 | CLI에 해당 | 기본값 |
|---|---|---|---|
removeImages |
이미지, 그리고 어떤 이미지를 제거할지 여부입니다. all은 모든 서비스에서 사용된 이미지를 제거하고, local은 사용자 지정 태그가 없는 이미지만 제거합니다. 이 설정을 비워두면 이미지가 제거되지 않습니다. |
--rmi |
|
removeVolumes |
명명된 볼륨을 제거할지 여부입니다. | -v |
false |
customOptions |
down 인수 뒤에 추가할 추가 매개변수입니다. 다른 옵션과의 충돌을 해결하거나 이 옵션을 유효성 검사하려는 시도는 없습니다. |
(any) |
명령 사용자 지정
컨테이너 도구 확장은 이미지를 빌드하고, 컨테이너를 실행하고, 컨테이너에 연결하고, 컨테이너 로그를 보는 등의 작업을 수행할 때 여러 Docker CLI 명령을 실행합니다. 이러한 명령 중 일부는 많은 선택적 인수를 가지고 있으며, 종종 매우 특정 시나리오에서 사용됩니다. 위의 Visual Studio Code 작업 대신, 작업이 사용되지 않을 때 여러 명령을 사용자 지정할 수 있습니다.
예를 들어, Compose Up 명령의 ${serviceList} 및 ${profileList} 토큰을 사용하면 Docker Compose YAML 파일의 하위 집합 서비스를 쉽게 시작할 수 있습니다.
이러한 사용자 지정 가능한 Docker 명령 각각에 대해, 실행할 템플릿을 설정하는 구성 설정이 있습니다. 또는 여러 템플릿을 정의할 수 있으며, 선택적으로 정규식을 사용하여 템플릿이 사용되어야 하는 컨텍스트를 힌트합니다. 템플릿은 launch.json 및 tasks.json과 유사한 일부 토큰을 지원합니다. 예를 들어, ${workspaceFolder}입니다.
설정 JSON 스키마
템플릿(아래에 나열됨) 각각을 구성하는 두 가지 옵션이 있습니다. 첫 번째 옵션은 기본 동작을 재정의하는 단일 템플릿입니다.
{
"containers.commands.build": "docker build --rm -f \"${dockerfile}\" -t ${tag} \"${context}\""
}
두 번째 옵션은 match 정규식뿐만 아니라 사용자 입력에 따라 선택되는 여러 템플릿입니다.
예를 들어, 다음 예제에서는 세 개의 템플릿이 표시됩니다.
{
"containers.commands.build": [
{
"label": "Default build command",
"template": "docker build --rm -f \"${dockerfile}\" -t ${tag} \"${context}\""
},
{
"label": "Alpine-specific build command",
"template": "docker build -p 1234:1234 -f \"${dockerfile}\" -t ${tag} \"${context}\"",
"match": "alpine"
}
]
}
선택 동작
실행할 명령 템플릿은 다음 규칙에 따라 선택됩니다.
- 설정이 구성되지 않은 경우 기본 명령 템플릿이 선택됩니다.
- 단일 템플릿만 구성된 경우(위의 첫 번째 예제), 해당 템플릿이 선택됩니다.
- 여러 템플릿이 구성된 경우
- 제한된 템플릿을 확인합니다. 제한된 템플릿에는
match가 있습니다.match정규식은 예를 들어 이미지 이름, 컨테이너 이름 등과 같은 컨텍스트 힌트와 비교됩니다. - 여러 제한된 템플릿이 적용되는 경우 사용자에게 선택하라는 메시지가 표시됩니다. 하나만 적용되는 경우 사용자에게 메시지가 표시되지 않습니다.
- 적용 가능한 제한된 템플릿이 없는 경우, 제한되지 않은 템플릿을 확인합니다. 제한되지 않은 템플릿에는
match가 없으므로 항상 적용 가능합니다. - 여러 제한되지 않은 템플릿이 적용되는 경우 사용자에게 선택하라는 메시지가 표시됩니다. 하나만 적용되는 경우 사용자에게 메시지가 표시되지 않습니다.
- 제한된 템플릿을 확인합니다. 제한된 템플릿에는
Docker 빌드
| 구성 설정 | 기본값 |
|---|---|
docker.commands.build |
${containerCommand} build --rm -f "${dockerfile}" -t ${tag} "${context}" |
지원되는 토큰
| 토큰 | 설명 |
|---|---|
${containerCommand} |
컨테이너 명령을 실행하는 데 사용되는 CLI 명령/실행 파일입니다. |
${dockerfile} |
선택한 Dockerfile의 작업 영역 상대 경로입니다. |
${tag} |
빌드 명령을 호출할 때 사용자가 입력/확인한 값입니다. 이전에 빌드된 경우 해당 Dockerfile에 대해 이전에 입력한 값으로 기본 설정됩니다. |
${context} |
설정된 경우 containers.imageBuildContextPath 구성 설정의 값입니다. 그렇지 않으면 Dockerfile이 있는 작업 영역 상대 폴더입니다. |
참고:
containers.commands.build설정에${tag}토큰이 포함되지 않은 경우 사용자에게 태그를 입력/확인하라는 메시지가 표시되지 않습니다.
참고:
match정규식은 선택한 Dockerfile 이름과 작업 영역 폴더 이름과 비교됩니다.
Docker 실행
| 구성 설정 | 기본값 |
|---|---|
containers.commands.run |
${containerCommand} run --rm -d ${exposedPorts} ${tag} |
containers.commands.runInteractive |
${containerCommand} run --rm -it ${exposedPorts} ${tag} |
지원되는 토큰
| 토큰 | 설명 |
|---|---|
${containerCommand} |
컨테이너 명령을 실행하는 데 사용되는 CLI 명령/실행 파일입니다. |
${exposedPorts} |
이미지의 노출된 포트 목록에서 생성됩니다(궁극적으로 Dockerfile에서). 각 노출된 포트는 로컬 머신의 동일한 포트로 맵핑됩니다. 예를 들어, "EXPOSE 5000 5001"은 "-p 5000:5000 -p 5001:5001"을 생성합니다. |
${tag} |
선택한 이미지의 전체 태그입니다. |
참고:
match정규식은 선택한 이미지의 전체 태그와 비교됩니다.
컨테이너 연결
| 구성 설정 | 기본값 |
|---|---|
containers.commands.attach |
${containerCommand} exec -it ${containerId} ${shellCommand} |
지원되는 토큰
| 토큰 | 설명 |
|---|---|
${containerCommand} |
컨테이너 명령을 실행하는 데 사용되는 CLI 명령/실행 파일입니다. |
${containerId} |
연결할 컨테이너의 ID입니다. |
${shellCommand} |
컨테이너에 bash가 있는 경우 여기에 치환되고, 그렇지 않으면 sh입니다. Windows 컨테이너에서는 cmd가 항상 사용됩니다. |
참고:
match정규식은 컨테이너 이름 및 컨테이너 이미지의 전체 태그와 비교됩니다.
컨테이너 로그
| 구성 설정 | 기본값 |
|---|---|
containers.commands.logs |
${containerCommand} logs -f ${containerId} |
지원되는 토큰
| 토큰 | 설명 |
|---|---|
${containerCommand} |
컨테이너 명령을 실행하는 데 사용되는 CLI 명령/실행 파일입니다. |
${containerId} |
로그를 볼 컨테이너의 ID입니다. |
참고:
match정규식은 컨테이너 이름 및 컨테이너 이미지의 전체 태그와 비교됩니다.
Docker Compose Up
| 구성 설정 | 기본값 |
|---|---|
containers.commands.composeUp |
${composeCommand} ${configurationFile} up ${detached} ${build} |
지원되는 토큰
| 토큰 | 설명 |
|---|---|
${configurationFile} |
선택한 Docker Compose YAML 파일의 작업 영역 상대 경로에 -f를 더한 값으로 설정됩니다. |
${detached} |
containers.composeDetached 설정이 true로 설정된 경우 -d로 설정됩니다. 그렇지 않으면 ""로 설정됩니다. |
${build} |
containers.composeBuild 설정이 true로 설정된 경우 --build로 설정됩니다. 그렇지 않으면 ""로 설정됩니다. |
${serviceList} |
지정된 경우 명령이 실행될 때 시작할 서비스의 하위 집합을 묻습니다. |
${profileList} |
지정되고 Docker Compose YAML 파일에 프로필이 포함된 경우, 명령이 실행될 때 시작할 프로필의 하위 집합을 묻습니다. |
${composeCommand} |
containers.composeCommand 설정이 설정된 경우 해당 값으로 설정됩니다. 그렇지 않으면 확장이 자동으로 사용할 명령(docker compose 또는 docker-compose)을 결정하려고 시도합니다. |
Docker Compose Down
| 구성 설정 | 기본값 |
|---|---|
containers.commands.composeDown |
${composeCommand} ${configurationFile} down |
지원되는 토큰
| 토큰 | 설명 |
|---|---|
${configurationFile} |
선택한 Docker Compose YAML 파일의 작업 영역 상대 경로에 -f를 더한 값으로 설정됩니다. |
${composeCommand} |
containers.composeCommand 설정이 설정된 경우 해당 값으로 설정됩니다. 그렇지 않으면 확장이 자동으로 사용할 명령(docker compose 또는 docker-compose)을 결정하려고 시도합니다. |
추가 지원 토큰
명령별 지원 토큰 외에도 다음 토큰이 모든 명령 템플릿에서 지원됩니다.
| 토큰 | 설명 |
|---|---|
${workspaceFolder} |
선택한 작업 영역 폴더 경로입니다. |
${config:some.setting.identifier} |
문자열, 숫자 또는 부울인 모든 구성 설정의 값입니다. 이러한 설정 식별자는 임의로 정의될 수 있으며 Visual Studio Code 또는 확장에 속할 필요가 없습니다. |
${env:Name} |
환경 변수의 값입니다. |
${command:commandID} |
명령의 문자열 반환 값입니다. |