Google Cloud では、Cloud Workstations で使用するために設計された次のベースイメージを維持しています。
事前構成されたベースイメージのリスト
これらのイメージは、ワークステーション構成で直接使用できます。または、Docker の FROM
コマンドを使用してカスタム コンテナ イメージを作成するときにベースイメージとして使用することもできます。
画像 | 説明 |
---|---|
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest | Code-OSS をベースにした Cloud Workstations ベースエディタ(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 を使用してベースイメージの更新を同期するために、コンテナ イメージの再ビルドを自動化する。
- セキュリティのベスト プラクティスを設定する。