Skip to main content
설명서에 자주 업데이트를 게시하며 이 페이지의 번역이 계속 진행 중일 수 있습니다. 최신 정보는 영어 설명서를 참조하세요.

환경 변수 및 임시 파일 유지

codespace를 열 때마다 동일한 값으로 설정되도록 사용자 지정 환경 변수를 구성할 수 있습니다. codespace가 중지될 때 임시 파일이 삭제되지 않도록 할 수도 있습니다.

영구 환경 변수 설정

변수를 사용할 수 있도록 하려는 codespace, 리포지토리 또는 사용자에 따라 여러 가지 방법으로 영구 사용자 지정 환경 변수를 설정할 수 있습니다.

아래에 나열된 사용자 지정 변수를 설정하는 모든 메서드의 경우 과 같은 echo $VARNAME구문을 사용하여 codespace의 사용자 지정 변수에 액세스할 수 있습니다.

단일 codespace의 경우

Bash 셸을 사용하지 않는 경우 파일 또는 동등한 구성 파일에서 환경 변수 ~/.bashrc 의 값을 설정할 수 있습니다. 예를 들어 문을 VARNAME=value추가합니다.

변경 사항을 이 파일에 저장하면 다음에 codespace를 열 때 값이 설정되거나 과 같은 source ~/.bashrc명령을 사용하여 즉시 설정할 수 있습니다. codespace를 중지하고 시작하면 변수가 설정된 상태로 유지됩니다. 그러나 컨테이너를 다시 빌드하면 홈 디렉터리의 파일 변경 내용이 다시 설정되므로 파일에 설정된 ~/.bashrc 변수는 다시 빌드를 통해 유지되지 않습니다. 자세한 내용은 "임시 파일이 자동으로 삭제되지 않도록 방지"를 참조하세요.

리포지토리에 대한 모든 codespace의 경우

리포지토리에 대해 만드는 모든 codespace에 대해 영구 사용자 지정 환경 변수를 설정할 수 있는 세 가지 방법이 있습니다.

  • 리포지토리에 devcontainer.json 대한 구성 파일을 편집할 수 있습니다.
  • 사용자 지정 Dockerfile을 사용할 수 있습니다.
  • 암호화된 비밀을 사용할 수 있습니다.

리포지토리에 devcontainer.json 대한 구성 파일 편집

리포지토리에 devcontainer.json 대한 구성 파일을 편집하고 속성을 사용하여 remoteEnv 환경 변수 값을 설정합니다.

{
    "remoteEnv": {
      "VARNAME": "value"
   }
}

리포지토리에 일반 텍스트로 커밋할 수 있는 값에 대해서만 이 메서드를 사용합니다. 액세스 토큰과 같은 중요한 값의 경우 암호화된 비밀을 사용합니다.

환경 변수는 편집기의 원격 서버 프로세스 내에서 설정되며 터미널 및 디버깅 세션과 같은 해당 원격 서버 프로세스의 하위 프로세스에 사용할 수 있습니다. 그러나 변수는 컨테이너 내에서 더 광범위하게 사용할 수 없습니다. 이 메서드는 시작 시 실행되는 다른 백그라운드 프로세스에 대해 환경 변수를 설정할 필요가 없고 미리 만든 이미지를 사용하고 사용자 지정 Dockerfile이 없거나 원하지 않는 경우에 유용합니다.

이 설정은 이 변경 내용을 리포지토리에 푸시한 후 컨테이너를 다시 빌드하거나 새 codespace를 만들 때 적용됩니다. codespace에 구성 변경 내용을 적용하는 방법에 대한 자세한 내용은 "개발 컨테이너 소개"을 참조하세요.

사용자 지정 Dockerfile 사용

사용자 지정 Dockerfile을 사용하는 경우 를 추가하여 ENV VARNAME=value환경 변수를 설정할 수 있습니다.

이 메서드는 Dockerfile이 이미 있고 컨테이너 전체 수준에서 변수를 설정하려는 경우에 유용합니다.

이 설정은 이 변경 내용을 리포지토리에 푸시한 후 컨테이너를 다시 빌드하거나 새 codespace를 만들 때 적용됩니다. codespace에 구성 변경 내용을 적용하는 방법에 대한 자세한 내용은 "개발 컨테이너 소개"을 참조하세요.

암호화된 비밀 사용

GitHub Codespaces에 대해 암호화된 비밀을 사용하여 리포지토리에 대해 만든 codespace에 대한 사용자 지정 변수를 설정할 수 있습니다. 자세한 내용은 "codespace에 대한 암호화된 비밀 관리"을 참조하세요.

리포지토리에 일반 텍스트로 커밋하지 않으려는 환경 변수 값에 이 메서드를 사용해야 합니다.

이 설정은 다음에 이 리포지토리에 대한 codespace를 만들 때 또는 기존 codespace를 다시 시작할 때 적용됩니다.

만드는 모든 codespace의 경우

만든 모든 codespace에 대해 개인 설정된 환경 변수를 설정하려면 리포지토리의 dotfiles 파일을 사용하여 설정할 수 있습니다. 예를 들어 파일에 를 추가 VARNAME=value 합니다 .bash_profile . dotfile에서 설정한 환경 변수는 개인용이며 다른 사용자에 대해 설정되지 않습니다. Dotfiles에 대한 자세한 내용은 "계정에 맞게 GitHub Codespaces 개인 설정"을 참조하세요.

임시 파일이 자동으로 삭제되지 않도록 방지

codespace를 만들면 리포지토리가 codespace의 /workspaces 디렉터리에 복제됩니다. 컨테이너에 탑재되는 영구 디렉터리입니다. 파일 편집, 추가 또는 삭제를 포함하여 이 디렉터리 내에서 변경한 내용은 codespace를 중지하고 시작할 때와 codespace에서 컨테이너를 다시 빌드할 때 유지됩니다.

/workspaces 디렉터리 외부에서 codespace에는 codespace를 빌드하는 데 사용되는 이미지에 따라 달라지는 Linux 디렉터리 구조가 포함됩니다. 파일을 추가하거나 디렉터리 외부의 /workspaces 파일을 변경할 수 있습니다. 예를 들어 새 프로그램을 설치하거나 와 같은 ~/.bashrc파일에서 셸 구성을 설정할 수 있습니다. 루트가 아닌 사용자는 특정 디렉터리에 대한 쓰기 액세스 권한을 자동으로 부여하지 않을 수 있지만 대부분의 이미지는 명령을 사용하여 이러한 디렉터리에 대한 루트 액세스를 허용합니다 sudo .

외부에서 /workspaces는 디렉터리를 제외하고 codespace의 /tmp 디렉터리가 컨테이너의 수명 주기에 연결됩니다. 즉, codespace를 중지하고 시작할 때 변경 내용이 유지되지만 컨테이너를 다시 빌드할 때는 유지되지 않습니다. 디렉터리 외부에서 /workspaces 데이터를 보존하기 위한 symlink를 만드는 방법에 대한 자세한 내용은 "codespace에서 컨테이너 다시 빌드"을 참조하세요.

/tmp 디렉터리가 컨테이너에 탑재되어 있으므로 예외이지만 영구적이지는 않습니다. 따라서 디렉터리의 내용은 /tmp 다시 빌드를 통해 유지되지만 codespace가 중지될 때마다 지워집니다. 예를 들어 비 /tmp 활성 기간 후에 codespace 세션 시간이 초과되면 디렉터리가 지워집니다. 자세한 내용은 "Github Codespaces의 시간 제한 기간 설정"을 참조하세요.

다음에 codespace를 시작할 때 사용할 수 있도록 하려는 임시 파일이 있는 경우 디렉터리에 저장 /tmp 하지 마세요.