환경 변수
컨테이너 이미지를 변경하지 않고 컨테이너에서 환경 변수를 설정할 수 있습니다. 아래 옵션 중 하나를 사용하세요.
설정에서 Terminal > Integrated: Inherit Env가 선택되어 있는지 확인해야 합니다. 그렇지 않으면 설정한 변수가 통합 터미널에 표시되지 않을 수 있습니다. 이 설정은 기본적으로 선택되어 있습니다.
옵션 1: 개별 변수 추가
devcontainer.json에서 참조하는 내용에 따라 다릅니다.
-
Dockerfile 또는 이미지:
containerEnv속성을devcontainer.json에 추가하여 컨테이너 전체에 적용할 변수를 설정하거나remoteEnv를 추가하여 VS Code 및 관련 하위 프로세스(터미널, 작업, 디버깅 등)에 적용할 변수를 설정하세요."containerEnv": { "MY_CONTAINER_VAR": "some-value-here", "MY_CONTAINER_VAR2": "${localEnv:SOME_LOCAL_VAR}" }, "remoteEnv": { "PATH": "${containerEnv:PATH}:/some/other/path", "MY_REMOTE_VARIABLE": "some-other-value-here", "MY_REMOTE_VARIABLE2": "${localEnv:SOME_LOCAL_VAR}" }이 예시에서 볼 수 있듯이
containerEnv는 로컬 변수를 참조할 수 있으며,remoteEnv는 로컬 변수와 기존 컨테이너 변수 모두를 참조할 수 있습니다.
동영상: dev 컨테이너에서 PATH 수정
-
Docker Compose: Docker Compose는 컨테이너 전체 변수를 업데이트하는 데 내장된 지원을 제공하므로
devcontainer.json에서는remoteEnv만 지원됩니다."remoteEnv": { "PATH": "${containerEnv:PATH}:/some/other/path", "MY_REMOTE_VARIABLE": "some-other-value-here", "MY_REMOTE_VARIABLE2": "${localEnv:SOME_LOCAL_VAR}" }이 예시에서 볼 수 있듯이
remoteEnv는 로컬 변수와 기존 컨테이너 변수 모두를 참조할 수 있습니다.컨테이너 전체에 적용될 변수를 업데이트하려면 적절한 서비스에 대해
docker-compose.yml을 업데이트(또는 확장)하세요.version: '3' services: your-service-name-here: environment: - YOUR_ENV_VAR_NAME=your-value-goes-here - ANOTHER_VAR=another-value # ...
이미 컨테이너를 빌드하고 연결한 경우, 변경 사항을 적용하려면 명령 팔레트(F1)에서 Dev Containers: Rebuild Container를 실행하세요. 그렇지 않으면 Dev Containers: Open Folder in Container...를 실행하여 컨테이너에 연결하세요.
옵션 2: env 파일 사용
설정해야 할 환경 변수가 많은 경우 대신 .env 파일을 사용할 수 있습니다.
먼저 소스 트리의 어딘가에 환경 파일을 만드세요. 이 .devcontainer/devcontainer.env 파일을 고려해 보세요.
YOUR_ENV_VAR_NAME=your-value-goes-here
ANOTHER_ENV_VAR_NAME=your-value-goes-here
다음으로 devcontainer.json에서 참조하는 내용에 따라 다릅니다.
-
Dockerfile 또는 이미지:
devcontainer.json을 편집하고devcontainer.env에 대한 경로를 추가하세요."runArgs": ["--env-file",".devcontainer/devcontainer.env"] -
Docker Compose:
docker-compose.yml을 편집하고 Docker Compose 파일에 상대적인devcontainer.env파일에 대한 경로를 추가하세요.version: '3' services: your-service-name-here: env_file: devcontainer.env # ...
docker compose는 docker-compose.yml이 있는 폴더에서 .env라는 파일을 자동으로 인식하지만, 다른 위치에 파일을 만들 수도 있습니다.
이미 컨테이너를 빌드하고 연결한 경우, 변경 사항을 적용하려면 명령 팔레트(F1)에서 Dev Containers: Rebuild Container를 실행하세요. 그렇지 않으면 Dev Containers: Open Folder in Container...를 실행하여 컨테이너에 연결하세요.