Imágenes base preconfiguradas

Google Cloud mantiene las siguientes imágenes base para Cloud Workstations, que se derivan de Google Cloud's imágenes base estándar.

Lista de imágenes base preconfiguradas

Estas imágenes se pueden usar directamente en las configuraciones de la estación de trabajo, o como imágenes base cuando se crean imágenes de contenedor personalizadas con el comando FROM de Docker.

Imagen Descripción
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest Editor base de Cloud Workstations, Code OSS para Cloud Workstations, basado en Code-OSS. (Predeterminado)
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/base:latest Imagen base sin IDE instalado.
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss-cuda:latest Editor base de Cloud Workstations, Code OSS para Cloud Workstations, basado en Code-OSS con NVIDIA CUDA Toolkit.
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/clion:latest IDE de CLion. Solo se puede acceder a través de la puerta de enlace de JetBrains.
Para obtener información sobre la instalación y los primeros pasos, consulta Desarrolla código con los IDE de JetBrains locales.
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/goland:latest IDE de GoLand. Solo se puede acceder a través de la puerta de enlace de JetBrains.
Para obtener información sobre la instalación y los primeros pasos, consulta Desarrolla código con los IDE de JetBrains locales.
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/intellij-ultimate:latest IDE de IntelliJ IDEA Ultimate. Solo se puede acceder a través de la puerta de enlace de JetBrains.
Para obtener información sobre la instalación y los primeros pasos, consulta Desarrolla código con los IDE de JetBrains locales.
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/phpstorm:latest IDE de PhpStorm. Solo se puede acceder a través de la puerta de enlace de JetBrains.
Para obtener información sobre la instalación y los primeros pasos, consulta Desarrolla código con los IDE de JetBrains locales.
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/pycharm:latest IDE de PyCharm Professional. Solo se puede acceder a través de la puerta de enlace de JetBrains.
Para obtener información sobre la instalación y los primeros pasos, consulta Desarrolla código con los IDE de JetBrains locales.
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/rider:latest IDE de Rider. Solo se puede acceder a través de la puerta de enlace de JetBrains.
Para obtener información sobre la instalación y los primeros pasos, consulta Desarrolla código con los IDE de JetBrains locales.
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/rubymine:latest IDE de RubyMine. Solo se puede acceder a través de la puerta de enlace de JetBrains.
Para obtener información sobre la instalación y los primeros pasos, consulta Desarrolla código con los IDE de JetBrains locales.
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/webstorm:latest IDE de WebStorm. Solo se puede acceder a través de la puerta de enlace de JetBrains.
Para obtener información sobre la instalación y los primeros pasos, consulta Desarrolla código con los IDE de JetBrains locales.

Lista de imágenes base de terceros

Imagen de terceros Proveedor externo
us-central1-docker.pkg.dev/posit-images/cloud-workstations/workbench:latest Posit Workbench (incluido RStudio Pro)

Si tienes problemas con el IDE de Posit Workbench o con la imagen de contenedor de Posit Workbench, infórmalos a Posit en GitHub.

Estructura de la imagen base de Cloud Workstations

Las imágenes base de Cloud Workstations comparten la siguiente estructura definida:

  • El archivo de punto de entrada de la imagen base se establece en /google/scripts/entrypoint.sh.
  • Al inicio, las imágenes base ejecutan archivos en /etc/workstation-startup.d/* en orden lexicográfico para inicializar el entorno de la estación de trabajo.

    Los archivos y su comportamiento son los siguientes:

    • 000_configure-docker.sh: Configura y ejecuta Docker dentro de la estación de trabajo.
    • 010_add-user.sh: Crea el usuario predeterminado en Cloud Workstations.

      Debido a que el disco persistente se adjunta de forma dinámica al contenedor, los usuarios deben agregarse en el inicio de la estación de trabajo, no en el Dockerfile.

    • 020_start-sshd.sh: Inicia el servicio sshd en el contenedor.

    • 030_customize-environment.sh: Ejecuta /home/user/.workstation/customize_environment como user.

    • 110_start-$IDE.sh: Inicia el IDE de la imagen.

  • Cloud Workstations almacena imágenes de Docker en el directorio principal en /home/.docker_data para que las imágenes se conserven entre sesiones.

Para agregar funcionalidad adicional durante el inicio de la estación de trabajo, agrega tus secuencias de comandos en el directorio /etc/workstation-startup.d/:

  • Las secuencias de comandos de este directorio se ejecutan como raíz de forma predeterminada. Para ejecutar las secuencias de comandos como un usuario diferente, usa el comando runuser.

  • Debido a que las secuencias de comandos se ejecutan en orden lexicográfico, te recomendamos que les agregues un prefijo con un número de tres dígitos que sea mayor que 200.

Como alternativa, si no deseas extender una imagen de estaciones de trabajo, puedes crear una secuencia de comandos customize_environment en tu directorio principal.

Modificaciones del directorio principal

Cuando la configuración de la estación de trabajo especifica un directorio principal persistente (que es el comportamiento predeterminado), un disco persistente que respalda el directorio principal se adjunta de forma dinámica al contenedor en el tiempo de ejecución. Este proceso anula las modificaciones realizadas en el directorio /home durante el tiempo de compilación de la imagen de contenedor.

Para conservar las actualizaciones, modifica el directorio /home en el tiempo de ejecución del contenedor agregando una secuencia de comandos en el directorio /etc/workstation-startup.d o agregando la configuración por usuario en el directorio /etc/profile.d. Para acelerar el proceso, considera ejecutar la secuencia de comandos de configuración como un proceso en segundo plano (agrega un signo de intercalación, &, al final del comando) para evitar bloquear el inicio del contenedor.

Estos son algunos ejemplos de configuración de tiempo de compilación que se deben mover al tiempo de ejecución del contenedor:

  • Configuración git por usuario
  • Repositorios git clonados en el directorio principal
  • Configuración directa del usuario, como colocar archivos en un directorio $HOME/.config
  • Creación de usuarios

Creación y modificación de usuarios

Debido a que el disco persistente se adjunta de forma dinámica al contenedor en el tiempo de ejecución, los usuarios deben agregarse en el inicio de la estación de trabajo, no en el Dockerfile. Para modificar o crear usuarios adicionales, te recomendamos que actualices /etc/workstation-startup.d/010_add-user.sh o que crees tu propia secuencia de comandos que se ejecute al inicio.

Además, puedes modificar el perfil de Bash predeterminado para los usuarios actualizando los archivos en /etc/profile.d.

Actualiza las claves de APT seguras preconfiguradas

Las imágenes base de Cloud Workstations vienen preinstaladas con varias herramientas obtenidas de varios repositorios de terceros mediante APT segura. Como parte del proceso de instalación, las claves públicas que proporcionan los propietarios del repositorio se importan con gpg y se colocan en archivos individuales en /usr/share/keyrings/. Se hace referencia a estos archivos desde los archivos list correspondientes en /etc/apt/sources.list.d/. Esto permite que apt verifique la integridad de un repositorio determinado cuando interactúa con él.

En ocasiones, los propietarios de repositorios externos pueden decidir cambiar la clave pública que se usa para validar la integridad de su repositorio, lo que hace que apt muestre un error cuando interactúa con él. Para resolver este problema potencial, puedes usar /google/scripts/refresh-preinstalled-apt-keys.sh, que obtiene las versiones más recientes de las claves públicas preinstaladas y las vuelve a importar.

También puedes ejecutar esta secuencia de comandos directamente en tu Dockerfile personalizado antes de ejecutar apt-get update:

# Refresh the preinstalled APT keys
RUN /google/scripts/refresh-preinstalled-apt-keys.sh

RUN apt-get update

Lista las versiones de IDE instaladas

Varias imágenes base de Cloud Workstations vienen preinstaladas con un IDE. Para tu comodidad, consulta la secuencia de comandos /google/scripts/preinstalled-ide-versions.sh incluida, que muestra el nombre y la información de la versión de los IDE instalados en la imagen.

Desactiva los privilegios de administrador sudo

El usuario predeterminado de la estación de trabajo tiene privilegios de acceso raíz sudo en estos contenedores. Para desactivar el acceso raíz al contenedor de Docker, establece la variable de entorno CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO en true cuando crees la configuración de la estación de trabajo.

Para configurar esta variable de entorno a través de la Google Cloud console cuando crees la configuración de la estación de trabajo, sigue estos pasos:

  1. Cuando crees la configuración de la estación de trabajo, completa la configuración de Información básica y la Configuración de la máquina.
  2. En el diálogo Personalización del entorno, expande la sección Opciones avanzadas del contenedor y selecciona Variables de entorno.
  3. Haz clic en addAgregar variable.
  4. Ingresa CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO y true como valor.

Personaliza sin extender una imagen

Para tu comodidad, todas las imágenes base de Cloud Workstations verifican la presencia de un archivo ejecutable ubicado en /home/user/.workstation/customize_environment y, si existe, lo ejecutan en segundo plano como user. Esto te permite ejecutar cualquier secuencia de comandos o archivo binario al inicio. A diferencia de .profile o .bashrc, la secuencia de comandos solo se ejecuta una vez cuando se inicia la estación de trabajo, en lugar de una vez para cada inicio de sesión de shell.

Debido a que la secuencia de comandos customize_environment se ejecuta como user, asegúrate de actualizar los permisos según sea necesario cuando escribas la secuencia de comandos. Por ejemplo, si deseas instalar Emacs cada vez que se inicia tu estación de trabajo, el contenido de customize_environment podría ser similar al siguiente:

#!/bin/bash
sudo apt-get update
sudo apt-get install -y emacs

Los registros de ejecución de customize_environment se pueden encontrar en el contenedor en /var/log/customize_environment y también se escriben en los registros de salida del contenedor. Si la ejecución de customize_environment se realiza correctamente, se crea un archivo en /var/run/customize_environment_done. Debido a que customize_environment se ejecuta en paralelo con el inicio de la estación de trabajo, los paquetes instalados por la secuencia de comandos pueden estar disponibles unos momentos después de que se inicie la estación de trabajo.

Evita los tiempos de espera por inactividad

Para tu comodidad, todas las imágenes base de Cloud Workstations incluyen una secuencia de comandos preinstalada en /google/scripts/keep_alive.sh. Esta secuencia de comandos envía mensajes keep-alive con regularidad, lo que puede evitar que la estación de trabajo se apague debido a tiempos de espera por inactividad cuando ejecutas procesos en segundo plano sin interacción directa.

Evita los tiempos de espera por inactividad con agentes de IA

Además, las imágenes base de Cloud Workstations incluyen secuencias de comandos de configuración de agentes de muestra en /google/samples/agents/keepalive/. Estas configuraciones de muestra te permiten configurar agentes de codificación de IA (como Claude Code y CLI de Antigravity) dentro de la estación de trabajo para mantenerla activa automáticamente mientras trabajan de forma activa en las tareas. Cuando el agente termina sus tareas o se detiene para esperar la entrada del usuario, la secuencia de comandos deja de enviar mensajes keep-alive, lo que permite que la estación de trabajo se agote debido a la inactividad. Estas configuraciones funcionan mejor cuando la configuración de la estación de trabajo está configurada para usar la suspensión de la estación de trabajo (idleAction establecida en SUSPEND), lo que permite que la estación de trabajo guarde el estado de la memoria y se reanude sin problemas cuando regreses.

Para obtener más información sobre cómo configurar flujos de trabajo asistidos por agentes y hooks keep-alive, consulta Desarrollo optimizado para agentes.

¿Qué sigue?