Google Cloud는 Cloud Workstations에 사용하도록 설계된 다음 기본 이미지를 관리합니다.
사전 구성된 기본 이미지 목록
이러한 이미지는 워크스테이션 구성에서 직접 사용하거나 Docker의 FROM
명령어로 커스텀 컨테이너 이미지를 만들 때 기본 이미지로 사용할 수 있습니다.
이미지 | 설명 |
---|---|
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest | Cloud Codestations 기본 편집기인 Code OSS for Cloud Workstation(Code-OSS 기반) (기본값) |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/base:latest | IDE가 설치되지 않은 기본 이미지입니다. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/clion:latest | CLion IDE입니다. JetBrains Gateway를 통해서만 액세스할 수 있습니다. 설치 및 시작하기 정보는 로컬 JetBrains IDE를 사용하여 코드 개발을 참조하세요. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/goland:latest | GoLand IDE. JetBrains Gateway를 통해서만 액세스할 수 있습니다. 설치 및 시작하기 정보는 로컬 JetBrains IDE를 사용하여 코드 개발을 참조하세요. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/intellij-ultimate:latest | IntelliJ IDEA Ultimate IDE. JetBrains Gateway를 통해서만 액세스할 수 있습니다. 설치 및 시작하기 정보는 로컬 JetBrains IDE를 사용하여 코드 개발을 참조하세요. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/phpstorm:latest | PhpStorm IDE. JetBrains Gateway를 통해서만 액세스할 수 있습니다. 설치 및 시작하기 정보는 로컬 JetBrains IDE를 사용하여 코드 개발을 참조하세요. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/pycharm:latest | PyCharm Professional IDE. JetBrains Gateway를 통해서만 액세스할 수 있습니다. 설치 및 시작하기 정보는 로컬 JetBrains IDE를 사용하여 코드 개발을 참조하세요. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/rider:latest | Rider IDE. JetBrains Gateway를 통해서만 액세스할 수 있습니다. 설치 및 시작하기 정보는 로컬 JetBrains IDE를 사용하여 코드 개발을 참조하세요. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/rubymine:latest | RubyMine IDE. JetBrains Gateway를 통해서만 액세스할 수 있습니다. 설치 및 시작하기 정보는 로컬 JetBrains IDE를 사용하여 코드 개발을 참조하세요. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/webstorm:latest | WebStorm IDE. JetBrains Gateway를 통해서만 액세스할 수 있습니다. 설치 및 시작하기 정보는 로컬 JetBrains IDE를 사용하여 코드 개발을 참조하세요. |
타사 기본 이미지 목록
서드 파티 이미지 | 서드 파티 제공업체 |
---|---|
us-central1-docker.pkg.dev/posit-images/cloud-workstations/workbench:latest | Posit Workbench(RStudio Pro 포함) |
Posit Workbench IDE 또는 Posit Workbench 컨테이너 이미지에 문제가 발생하면 GitHub에서 Posit에 신고하세요.
Cloud Workstations 기본 이미지 구조
Cloud Workstations 기본 이미지는 다음과 같이 정의된 구조를 공유합니다.
- 기본 이미지 진입점 파일은
/google/scripts/entrypoint.sh
로 설정됩니다. 시작 시 기본 이미지는 워크스테이션 환경을 초기화하기 위해 사전 순으로
/etc/workstation-startup.d/*
에서 파일을 실행합니다.파일 및 해당 동작은 다음과 같습니다.
000_configure-docker.sh
: 워크스테이션 내에서 Docker를 구성하고 실행합니다.010_add-user.sh
: Cloud Workstations에서 기본 사용자를 만듭니다.영구 디스크가 컨테이너에 동적으로 연결되기 때문에 Dockerfile이 아니라 워크스테이션 시작 시에 사용자를 추가해야 합니다.
020_start-sshd.sh
: 컨테이너에서sshd
서비스를 시작합니다.110_start-$IDE.sh
: 이미지에 대해 IDE를 시작합니다.
Cloud Workstations가
/home/.docker_data
에서 홈 디렉터리에 Docker 이미지를 저장하므로, 이미지가 세션 간에 보존됩니다.
워크스테이션 시작 중 기능을 추가하려면 /etc/workstation-startup.d/
디렉터리에 스크립트를 추가합니다.
이 디렉터리의 스크립트는 기본적으로 루트로 실행됩니다. 스크립트를 다른 사용자로 실행하려면
runuser
명령어를 사용합니다.스크립트가 사전 순으로 실행되기 때문에 200보다 큰 세 자리 숫자를 스크립트에 접두사로 추가하는 것이 좋습니다.
홈 디렉터리 수정
워크스테이션 구성이 영구적인 홈 디렉터리(기본 동작)를 지정하면 홈 디렉터리를 지원하는 영구 디스크가 런타임 시 컨테이너에 동적으로 연결됩니다. 이 프로세스는 컨테이너 이미지 빌드 시간에 /home
디렉터리에 수정된 항목을 덮어씁니다.
업데이트를 보존하려면 /etc/workstation-startup.d
디렉터리에 스크립트를 추가하거나 /etc/profile.d
디렉터리에 사용자별 구성을 추가하여 컨테이너 런타임에 /home
디렉터리를 수정합니다.
프로세스 속도를 높이려면 컨테이너 시작을 차단하지 않도록 앰퍼샌드 &
를 명령어 끝에 추가하여 설정 스크립트를 백그라운드 프로세스로 실행하는 것이 좋습니다.
일부 빌드 시간 구성 예시는 컨테이너 런타임으로 이동해야 합니다.
- 사용자별
git
구성 - 홈 디렉터리에서 클론된
git
저장소 $HOME/.config
디렉터리에 파일 배치와 같은 직접 사용자 구성- 사용자 생성
사용자 만들기 및 수정
영구 디스크가 런타임에 컨테이너에 동적으로 연결되기 때문에 Dockerfile이 아니라 워크스테이션 시작 시에 사용자를 추가해야 합니다. 추가 사용자를 수정하거나 만들려면 /etc/workstation-startup.d/010_add-user.sh
를 업데이트하거나 시작 시 실행되는 자체 스크립트를 만드는 것이 좋습니다.
또한 /etc/profile.d
에서 파일을 업데이트하여 사용자에 대해 기본 Bash 프로필을 수정할 수 있습니다.
사전 구성된 보안 APT 키 업데이트
Cloud Workstations 기본 이미지에는 보안 APT를 사용하여 다양한 타사 저장소에서 가져온 다양한 도구가 사전 설치되어 있습니다. 설치 프로세스 중에 gpg
를 사용해서 저장소 소유자가 제공한 공개 키를 가져오고 /usr/share/keyrings/
아래에 개별 파일로 배치합니다. 이러한 파일은 /etc/apt/sources.list.d/
아래의 해당 list
파일에서 참조됩니다.
이를 통해 apt
는 특정 저장소와 상호작용할 때 저장소의 무결성을 확인할 수 있습니다.
일부 경우에는 타사 저장소 소유자가 저장소 무결성 검증에 사용되는 공개 키를 변경하도록 결정할 수 있습니다. 그러면 키를 사용할 때 apt
에서 오류가 표시됩니다. 이 잠재적 문제를 해결하기 위해서는 사전 설치된 공개 키의 최신 버전을 얻어서 이를 다시 가져오는 /google/scripts/refresh-preinstalled-apt-keys.sh
를 사용할 수 있습니다.
설치된 IDE 버전 나열
여러 Cloud Workstations 기본 이미지가 IDE에 사전 설치되어 제공됩니다. 편의를 위해서는 이미지에 설치된 IDE의 이름 및 버전 정보를 나열하는, 포함된 /google/scripts/preinstalled-ide-versions.sh
스크립트를 참조하세요.
sudo
루트 권한 사용 중지
기본 워크스테이션 사용자는 이러한 컨테이너에서 sudo
루트 액세스 권한을 갖습니다. Docker 컨테이너에 대해 루트 액세스 권한을 사용 중지하려면 워크스테이션 구성을 만들 때 CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO
환경 변수를 true
로 설정합니다.
워크스테이션 구성을 만들 때 Google Cloud 콘솔을 통해 이 환경 변수를 설정하려면 다음 단계를 수행합니다.
- 워크스테이션 구성을 만들 때 기본 정보 구성 및 머신 구성을 완료합니다.
- 환경 맞춤설정 대화상자에서 고급 컨테이너 옵션 섹션을 확장하고 환경 변수를 선택합니다.
- add변수 추가를 클릭합니다.
CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO
및true
를 값으로 입력합니다.
다음 단계
- 컨테이너 이미지 맞춤설정
- Cloud Build 및 Cloud Scheduler를 사용해서 기본 이미지 업데이트를 동기화하도록 컨테이너 이미지 다시 빌드를 자동화
- 보안 권장사항 설정