Google Cloud gère les images de base suivantes pour Cloud Workstations, qui sont dérivées des images de base standards de Google Cloud.
Liste des images de base préconfigurées
Ces images peuvent être utilisées directement dans les configurations de station de travail ou comme images de base lors de la création d'images de conteneurs personnalisées avec la commande FROM de Docker.
| Image | Description |
|---|---|
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest | Éditeur de base Cloud Workstations, Code OSS pour Cloud Workstations, basé sur Code-OSS. (par défaut) |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/base:latest | Image de base sans IDE installé. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss-cuda:latest | Éditeur de base Cloud Workstations, Code OSS pour Cloud Workstations, basé sur Code-OSS avec NVIDIA CUDA Toolkit. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/clion:latest | IDE CLion. Accessible uniquement via JetBrains Gateway. Pour en savoir plus sur l'installation et la prise en main, consultez Développer du code à l'aide d'IDE JetBrains locaux. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/goland:latest | IDE GoLand. Accessible uniquement via JetBrains Gateway. Pour en savoir plus sur l'installation et la prise en main, consultez Développer du code à l'aide d'IDE JetBrains locaux. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/intellij-ultimate:latest | IDE IntelliJ IDEA Ultimate. Accessible uniquement via JetBrains Gateway. Pour en savoir plus sur l'installation et la prise en main, consultez Développer du code à l'aide d'IDE JetBrains locaux. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/phpstorm:latest | IDE PhpStorm. Accessible uniquement via JetBrains Gateway. Pour en savoir plus sur l'installation et la prise en main, consultez Développer du code à l'aide d'IDE JetBrains locaux. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/pycharm:latest | IDE PyCharm Professional. Accessible uniquement via JetBrains Gateway. Pour en savoir plus sur l'installation et la prise en main, consultez Développer du code à l'aide d'IDE JetBrains locaux. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/rider:latest | IDE Rider. Accessible uniquement via JetBrains Gateway. Pour en savoir plus sur l'installation et la prise en main, consultez Développer du code à l'aide d'IDE JetBrains locaux. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/rubymine:latest | IDE RubyMine. Accessible uniquement via JetBrains Gateway. Pour en savoir plus sur l'installation et la prise en main, consultez Développer du code à l'aide d'IDE JetBrains locaux. |
| us-central1-docker.pkg.dev/cloud-workstations-images/predefined/webstorm:latest | IDE WebStorm. Accessible uniquement via JetBrains Gateway. Pour en savoir plus sur l'installation et la prise en main, consultez Développer du code à l'aide d'IDE JetBrains locaux. |
Liste des images de base tierces
| Image tierce | Fournisseur tiers |
|---|---|
| us-central1-docker.pkg.dev/posit-images/cloud-workstations/workbench:latest | Posit Workbench (y compris RStudio Pro) |
Si vous rencontrez des problèmes avec l'IDE Posit Workbench ou l'image de conteneur Posit Workbench, signalez-les à Posit sur GitHub.
Structure de l'image de base Cloud Workstations
Les images de base Cloud Workstations partagent la structure définie suivante :
- Le fichier de point d'entrée de l'image de base est défini sur
/google/scripts/entrypoint.sh. Au démarrage, les images de base exécutent les fichiers sous
/etc/workstation-startup.d/*dans l'ordre lexicographique pour initialiser l'environnement de la station de travail.Les fichiers et leur comportement sont les suivants :
000_configure-docker.sh: configure et exécute Docker dans la station de travail.010_add-user.sh: crée l'utilisateur par défaut dans Cloud Workstations.Étant donné que le disque persistant est associé de manière dynamique au conteneur, les utilisateurs doivent être ajoutés au démarrage du poste de travail, et non dans le Dockerfile.
020_start-sshd.sh: démarre le servicesshddans le conteneur.030_customize-environment.sh: exécute/home/user/.workstation/customize_environmenten tant queuser.110_start-$IDE.sh: démarre l'IDE pour l'image.
Cloud Workstations stocke les images Docker dans le répertoire d'accueil à l'emplacement
/home/.docker_dataafin qu'elles soient conservées entre les sessions.
Pour ajouter des fonctionnalités supplémentaires lors du démarrage de la station de travail, ajoutez vos scripts dans le répertoire /etc/workstation-startup.d/ :
Par défaut, les scripts de ce répertoire s'exécutent en tant qu'utilisateur racine. Pour exécuter les scripts en tant qu'autre utilisateur, utilisez la commande
runuser.Étant donné que les scripts s'exécutent dans l'ordre lexicographique, nous vous recommandons de faire précéder les scripts d'un nombre à trois chiffres supérieur à 200.
Si vous ne souhaitez pas étendre une image de station de travail, vous pouvez également créer un script customize_environment dans votre répertoire d'accueil.
Modifications du répertoire d'accueil
Lorsque la configuration de la station de travail spécifie un répertoire d'accueil persistant (comportement par défaut), un disque persistant sauvegardant le répertoire d'accueil est associé de manière dynamique au conteneur au moment de l'exécution. Ce processus écrase les modifications apportées au répertoire /home au moment de la compilation de l'image de conteneur.
Pour conserver les mises à jour, modifiez le répertoire /home au moment de l'exécution du conteneur en ajoutant un script dans le répertoire /etc/workstation-startup.d ou en ajoutant une configuration par utilisateur dans le répertoire /etc/profile.d.
Pour accélérer le processus, envisagez d'exécuter le script de configuration en tant que processus en arrière-plan (ajoutez une esperluette, &, à la fin de la commande) pour éviter de bloquer le démarrage du conteneur.
Voici quelques exemples de configuration au moment de la compilation qui doivent être déplacés vers l'environnement d'exécution du conteneur :
- Configuration
gitpar utilisateur gitdépôt cloné dans le répertoire d'accueil- Configuration directe de l'utilisateur, par exemple en plaçant des fichiers dans un répertoire
$HOME/.config - Création de compte utilisateur
Création et modification d'utilisateurs
Étant donné que le disque persistant est associé de manière dynamique au conteneur au moment de l'exécution, les utilisateurs doivent être ajoutés au démarrage du poste de travail, et non dans le Dockerfile. Pour modifier ou créer des utilisateurs supplémentaires, nous vous recommandons de mettre à jour /etc/workstation-startup.d/010_add-user.sh ou de créer votre propre script qui s'exécute au démarrage.
Vous pouvez également modifier le profil Bash par défaut des utilisateurs en mettant à jour les fichiers dans /etc/profile.d.
Mettre à jour les clés APT sécurisées préconfigurées
Les images de base Cloud Workstations sont préinstallées avec un certain nombre d'outils obtenus à partir de différents dépôts tiers à l'aide de Secure APT. Lors du processus d'installation, les clés publiques fournies par les propriétaires du dépôt sont importées à l'aide de gpg et placées dans des fichiers individuels sous /usr/share/keyrings/. Ces fichiers sont référencés à partir des fichiers list correspondants sous /etc/apt/sources.list.d/.
Cela permet à apt de vérifier l'intégrité d'un dépôt donné lorsqu'il interagit avec lui.
Il peut arriver que les propriétaires de dépôts tiers décident de modifier la clé publique utilisée pour valider l'intégrité de leur dépôt, ce qui entraîne l'affichage d'une erreur par apt lors de l'interaction avec celui-ci. Pour résoudre ce problème potentiel, vous pouvez utiliser /google/scripts/refresh-preinstalled-apt-keys.sh, qui obtient les dernières versions des clés publiques préinstallées et les réimporte.
Vous pouvez également exécuter ce script directement dans votre Dockerfile personnalisé avant d'exécuter apt-get update :
# Refresh the preinstalled APT keys
RUN /google/scripts/refresh-preinstalled-apt-keys.sh
RUN apt-get update
Lister les versions d'IDE installées
Plusieurs images de base Cloud Workstations sont préinstallées avec un IDE. Pour plus de commodité, consultez le script /google/scripts/preinstalled-ide-versions.sh inclus, qui répertorie le nom et les informations de version des IDE installés dans l'image.
Désactiver les droits racine sudo
L'utilisateur de la station de travail par défaut dispose de droits d'accès racine sudo dans ces conteneurs. Pour désactiver l'accès racine au conteneur Docker, définissez la variable d'environnement CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO sur true lors de la création de la configuration de la station de travail.
Pour définir cette variable d'environnement via la console Google Cloud lors de la création de votre configuration de station de travail, procédez comme suit :
- Lorsque vous créez votre configuration de station de travail, renseignez les informations de base et la configuration de la machine.
- Dans la boîte de dialogue Personnalisation de l'environnement, développez la section Options avancées des conteneurs, puis sélectionnez Variables d'environnement.
- Cliquez sur addAjouter une variable.
- Saisissez
CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDOettruecomme valeur.
Personnaliser sans étendre une image
Pour plus de commodité, toutes les images de base Cloud Workstations vérifient la présence d'un fichier exécutable situé dans /home/user/.workstation/customize_environment et, s'il existe, l'exécutent en arrière-plan en tant que user. Cela vous permet d'exécuter n'importe quel script ou binaire au démarrage. Contrairement à .profile ou .bashrc, le script ne s'exécute qu'une seule fois au démarrage de la station de travail, et non une fois pour chaque connexion au shell.
Étant donné que le script customize_environment s'exécute en tant que user, veillez à mettre à jour les autorisations si nécessaire lors de l'écriture de votre script. Par exemple, si vous souhaitez installer Emacs à chaque démarrage de votre station de travail, le contenu de customize_environment peut ressembler à ceci :
#!/bin/bash
sudo apt-get update
sudo apt-get install -y emacs
Les journaux d'exécution de customize_environment se trouvent dans le conteneur à l'emplacement /var/log/customize_environment et sont également écrits dans les journaux de sortie du conteneur.
Une fois l'exécution de customize_environment réussie, un fichier est créé dans /var/run/customize_environment_done. Étant donné que customize_environment s'exécute en parallèle du démarrage de la station de travail, les packages installés par le script peuvent être disponibles quelques instants après le démarrage de votre station de travail.
Empêcher les délais d'inactivité
Pour plus de commodité, toutes les images de base Cloud Workstations incluent un script préinstallé sur /google/scripts/keep_alive.sh. Ce script envoie régulièrement des messages de persistance, ce qui peut empêcher l'arrêt de la station de travail en raison de délais d'inactivité lorsque vous exécutez des processus en arrière-plan sans interaction directe.
Éviter les délais d'inactivité avec les agents IA
De plus, les images de base Cloud Workstations incluent des exemples de scripts de configuration d'agent sous /google/samples/agents/keepalive/. Ces exemples de configuration vous permettent de configurer des agents de codage IA (tels que Claude Code et Antigravity CLI) dans la station de travail pour la maintenir automatiquement active pendant qu'ils travaillent activement sur des tâches. Lorsque l'agent termine ses tâches ou s'interrompt pour attendre une entrée utilisateur, le script cesse d'envoyer des messages de persistance, ce qui permet à la station de travail d'expirer en raison de l'inactivité.
Ces configurations fonctionnent mieux lorsque la configuration de la station de travail est définie pour utiliser la suspension de la station de travail (idleAction défini sur SUSPEND), ce qui permet à la station de travail d'enregistrer l'état de la mémoire et de reprendre l'activité de manière fluide lorsque vous revenez.
Pour en savoir plus sur la configuration des workflows assistés par agent et des hooks de persistance, consultez Développement optimisé pour les agents.
Étapes suivantes
- Personnalisez vos images de conteneurs.
- Automatisez la recompilation des images de conteneurs pour synchroniser les mises à jour des images de base à l'aide de Cloud Build et de Cloud Scheduler.
- Configurez les bonnes pratiques de sécurité.