Google Cloud mantiene las siguientes imágenes base diseñadas para usarse con Cloud Workstations.
Lista de imágenes base preconfiguradas
Estas imágenes se pueden usar directamente en configuraciones de estaciones de trabajo o como imágenes base al crear imágenes de contenedor personalizadas con el comando FROM
de Docker.
Image | 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. (Predeterminada) |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/base:latest | Imagen base sin ningún IDE instalado. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/clion:latest | IDE de CLion. Solo se puede acceder a través de JetBrains Gateway. Para obtener información sobre la instalación y cómo empezar, consulta el artículo Desarrollar código con IDEs 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 JetBrains Gateway. Para obtener información sobre la instalación y cómo empezar, consulta el artículo Desarrollar código con IDEs de JetBrains locales. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/intellij-ultimate:latest | IDE IntelliJ IDEA Ultimate. Solo se puede acceder a través de JetBrains Gateway. Para obtener información sobre la instalación y cómo empezar, consulta el artículo Desarrollar código con IDEs de JetBrains locales. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/phpstorm:latest | IDE PhpStorm. Solo se puede acceder a través de JetBrains Gateway. Para obtener información sobre la instalación y cómo empezar, consulta el artículo Desarrollar código con IDEs de JetBrains locales. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/pycharm:latest | IDE PyCharm Professional. Solo se puede acceder a través de JetBrains Gateway. Para obtener información sobre la instalación y cómo empezar, consulta el artículo Desarrollar código con IDEs 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 JetBrains Gateway. Para obtener información sobre la instalación y cómo empezar, consulta el artículo Desarrollar código con IDEs de JetBrains locales. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/rubymine:latest | IDE RubyMine. Solo se puede acceder a través de JetBrains Gateway. Para obtener información sobre la instalación y cómo empezar, consulta el artículo Desarrollar código con IDEs 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 JetBrains Gateway. Para obtener información sobre la instalación y cómo empezar, consulta el artículo Desarrollar código con IDEs 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 del contenedor de Posit Workbench, infórmalo 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 es
/google/scripts/entrypoint.sh
. Al iniciarse, 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 en la estación de trabajo.010_add-user.sh
: crea el usuario predeterminado en Cloud Workstations.Como el disco persistente se adjunta dinámicamente al contenedor, los usuarios deben añadirse al iniciar la estación de trabajo, no en el archivo Dockerfile.
020_start-sshd.sh
: inicia el serviciosshd
en el contenedor.030_customize-environment.sh
: ejecuta/home/user/.workstation/customize_environment
comouser
.110_start-$IDE.sh
: inicia el IDE de la imagen.
Cloud Workstations almacena las imágenes de Docker en el directorio principal en
/home/.docker_data
para que las imágenes se conserven entre sesiones.
Para añadir funciones adicionales durante el inicio de la estación de trabajo, añade tus secuencias de comandos al directorio /etc/workstation-startup.d/
:
Las secuencias de comandos de este directorio se ejecutan como root de forma predeterminada. Para ejecutar las secuencias de comandos como otro usuario, usa el comando
runuser
.Como las secuencias de comandos se ejecutan en orden lexicográfico, te recomendamos que añadas un prefijo a las secuencias de comandos con un número de tres dígitos superior a 200.
Si no quieres ampliar la imagen de una estación de trabajo, puedes crear un script customize_environment en tu directorio principal.
Modificaciones del directorio de inicio
Cuando la configuración de la estación de trabajo especifica un directorio principal persistente (que es el comportamiento predeterminado), se conecta dinámicamente un disco persistente que respalda el directorio principal al contenedor en el tiempo de ejecución. Este proceso sobrescribe las modificaciones realizadas en el directorio /home
durante la compilación de la imagen de contenedor.
Para conservar las actualizaciones, modifica el directorio /home
en el tiempo de ejecución del contenedor añadiendo una secuencia de comandos al directorio /etc/workstation-startup.d
o añadiendo una configuración por usuario al directorio /etc/profile.d
.
Para acelerar el proceso, puedes ejecutar la secuencia de comandos de configuración como un proceso en segundo plano (añade una ampersand, &
, al final del comando) para evitar que se bloquee el inicio del contenedor.
Estos son algunos ejemplos de configuración del tiempo de compilación que se deben mover al tiempo de ejecución del contenedor:
- Configuración de
git
por usuario git
repositorios clonados en el directorio principal- Configuración directa del usuario, como colocar archivos en un directorio
$HOME/.config
- Creación de un usuario
Creación y modificación de usuarios
Como el disco persistente se conecta dinámicamente al contenedor en el tiempo de ejecución, los usuarios deben añadirse al iniciar la estación de trabajo, no en el archivo 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 de los usuarios actualizando los archivos de /etc/profile.d
.
Actualizar las claves de APT seguras preconfiguradas
Las imágenes base de Cloud Workstations vienen preinstaladas con varias herramientas obtenidas de distintos repositorios de terceros mediante Secure APT. Como parte del proceso de instalación, las claves públicas proporcionadas por los propietarios del repositorio se importan mediante 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 al interactuar con él.
En ocasiones, los propietarios de repositorios de terceros pueden decidir cambiar la clave pública que se usa para validar la integridad de su repositorio, lo que provoca que apt
muestre un error al interactuar con él. Para solucionar este posible problema, 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.
Mostrar las versiones instaladas del IDE
Varias imágenes base de Cloud Workstations vienen con un IDE preinstalado. Para mayor comodidad, consulta la /google/scripts/preinstalled-ide-versions.sh
secuencia de comandos incluida, que muestra el nombre y la información de la versión de los IDEs instalados en la imagen.
Desactivar los privilegios sudo
root
El usuario predeterminado de la estación de trabajo tiene privilegios de acceso sudo
raíz en estos contenedores. Para desactivar el acceso de superusuario al contenedor de Docker, asigna el valor true
a la variable de entorno CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO
al crear la configuración de la estación de trabajo.
Para definir esta variable de entorno a través de la consola Google Cloud al crear la configuración de tu estación de trabajo, sigue estos pasos:
- Cuando crees la configuración de tu estación de trabajo, completa la configuración de Información básica y Configuración de la máquina.
- En el cuadro de diálogo Personalización del entorno, despliega la sección Opciones avanzadas del contenedor y selecciona Variables de entorno.
- Haz clic en AñadirAñadir variable.
- Introduce
CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO
ytrue
como valor.
Personalizar sin ampliar una imagen
Para mayor comodidad, todas las imágenes base de Cloud Workstations comprueban si hay un archivo ejecutable en /home/user/.workstation/customize_environment
y, si lo hay, 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 por cada inicio de sesión de shell.
Como la secuencia de comandos de customize_environment
se ejecuta como user
, asegúrate de actualizar los permisos según sea necesario al escribir la secuencia de comandos. Por ejemplo, si quieres instalar Emacs cada vez que se inicie 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 customize_environment
se ejecuta correctamente, se crea un archivo en
/var/run/customize_environment_done
. Como 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 instantes después de que se haya iniciado la estación de trabajo.
Siguientes pasos
- Personaliza tus imágenes de contenedor.
- Automatiza la recompilación de imágenes de contenedor para sincronizar las actualizaciones de imágenes base con Cloud Build y Cloud Scheduler.
- Configurar prácticas recomendadas de seguridad.