Google Cloud では、Cloud Workstations で使用するために設計された次のベースイメージを維持しています。
事前構成されたベースイメージのリスト
これらのイメージは、ワークステーション構成で直接使用することも、Docker の FROM
コマンドを使用してカスタム コンテナ イメージを作成するときにベースイメージとして使用することもできます。
Image | Description |
---|---|
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest | Cloud Workstations のベースエディタ、Code-OSS に基づく Cloud Workstations 用の 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 は、Docker イメージを
/home/.docker_data
のホーム ディレクトリに保存するため、イメージはセッション間で保持されます。
ワークステーションの起動時に機能を追加するには、/etc/workstation-startup.d/
ディレクトリにスクリプトを追加します。
このディレクトリ内のスクリプトはデフォルトで root として実行されます。スクリプトを別のユーザーとして実行するには、
runuser
コマンドを使用します。スクリプトは辞書順に実行されるため、スクリプトの先頭に 200 より大きい 3 桁の数字を付けることをおすすめします。
ホーム ディレクトリの変更
ワークステーション構成で永続的なホーム ディレクトリが指定されている場合(デフォルトの動作)、ホーム ディレクトリをサポートする永続ディスクが実行時にコンテナに動的に接続されます。このプロセスにより、コンテナ イメージのビルド時に /home
ディレクトリに加えられた変更が上書きされます。
更新を維持するには、コンテナ ランタイムに /home
ディレクトリを変更します。そのためには、/etc/workstation-startup.d
ディレクトリにスクリプトを追加するか、/etc/profile.d
ディレクトリにユーザーごとの構成を追加します。このプロセスを高速化するには、コンテナの起動をブロックしないように、セットアップ スクリプトをバックグラウンド プロセスとして実行(コマンドの最後にアンパサンド &
を追加)することを検討してください。
コンテナ ランタイムに移行する必要があるビルド時間構成の例:
- ユーザーごとの
git
構成 - ホーム ディレクトリにクローンされた
git
リポジトリ - ユーザー ディレクトリの直接構成(
$HOME/.config
ディレクトリへのファイルの配置など) - ユーザーの作成
ユーザーの作成と変更
Persistent Disk はランタイムにコンテナに動的にアタッチされるため、Dockerfile 内ではなく、ワークステーションの起動時にユーザーを追加する必要があります。ユーザーを変更または追加するために、/etc/workstation-startup.d/010_add-user.sh
を更新するか、起動時に実行する独自のスクリプトを作成することをおすすめします。
また、/etc/profile.d
内のファイルを更新して、ユーザーのデフォルトの bash プロファイルを変更することもできます。
事前構成済みの Secure APT キーを更新する
Cloud Workstations のベースイメージには、Secure APT を使用してさまざまなサードパーティ リポジトリから取得した多数のツールがプリインストールされています。インストール プロセスの一環として、リポジトリ オーナーによって提供される公開鍵は gpg
を使用してインポートされ、/usr/share/keyrings/
の下の個々のファイルに配置されます。これらのファイルは、/etc/apt/sources.list.d/
内の対応する list
ファイルから参照されます。
これにより、apt
は特定のリポジトリを操作するときに、そのリポジトリの整合性を検証できます。
サードパーティ リポジトリのオーナーが、リポジトリの整合性検証に使用する公開鍵を変更することがあります。これにより、操作時にエラーが apt
で表示される可能性があります。この潜在的な問題を解決するには、/google/scripts/refresh-preinstalled-apt-keys.sh
を使用します。これは、プリインストールされた公開鍵の最新バージョンを取得して再インポートします。
インストール済み IDE のバージョンを一覧表示する
いくつかの Cloud Workstations ベースイメージには、IDE がプリインストールされています。利便性のためには、含まれている /google/scripts/preinstalled-ide-versions.sh
スクリプトを参照してください。これは、イメージにインストールされた IDE の名前とバージョン情報を一覧表示します。
sudo
root 権限をオフにする
デフォルトのワークステーション ユーザーには、これらのコンテナに対する sudo
root アクセス権限があります。Docker コンテナへのルートアクセスをオフにするには、ワークステーション構成の作成時に CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO
環境変数を true
に設定します。
ワークステーション構成の作成時に Google Cloud コンソールでこの環境変数を設定するには、次の手順を行います。
- ワークステーション構成の作成時に、基本情報の構成とマシン構成を完了します。
- [環境のカスタマイズ] ダイアログで、[コンテナの詳細オプション] セクションを展開し、[環境変数] を選択します。
- [追加変数を追加] をクリックします。
- 値として「
CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO
」と「true
」を入力します。
次のステップ
- コンテナ イメージをカスタマイズする。
- Cloud Build と Cloud Scheduler を使用してベースイメージの更新を同期するために、コンテナ イメージの再ビルドを自動化する。
- セキュリティのベスト プラクティスを設定する。