El
imágenes base preconfiguradas
que proporciona Cloud Workstations contienen solo un entorno mínimo con IDE,
herramientas básicas de lenguaje y terminal de Linux, además de un servidor sshd
. Para acelerar el
configuración del entorno de casos de uso de desarrollo específicos, puedes crear
imágenes de contenedor que extienden estas imágenes base para preinstalar herramientas y
y que ejecutan secuencias de comandos de automatización.
En el caso de las imágenes de contenedores personalizadas, recomendamos configurar una canalización para volver a compilar estas imágenes cuando se actualice la imagen base de Cloud Workstations, en además de ejecutar una herramienta de análisis de contenedores, como Artifact Analysis para inspeccionar cualquier dependencia adicional que hayas agregado. Es responsable de mantener y actualizar paquetes personalizados y dependencias agregadas a imágenes personalizadas.
Antes de comenzar
Necesitas una máquina con herramientas para compilar imágenes de contenedor, como Docker y para enviar imágenes a Artifact Registry (o Container Registry) con el Google Cloud CLI. Puedes usar Cloud Workstations o el Editor de Cloud Shell para estos pasos, que tienen preinstaladas estas herramientas.
Selecciona la imagen base que deseas usar de nuestro lista de imágenes base admitidas como, por ejemplo,
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest
.Como alternativa, puedes usar tu propia imagen de contenedor imágenes de contenedor siguiendo las instrucciones Usa tu propia imagen de contenedor.
Crea una carpeta como
CUSTOM_IMAGE_FOLDER
y una Dockerfile dentro de esta carpeta que extiende la imagen base seleccionada, como se muestra en los siguientes ejemplos.
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 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 del estación de trabajo.010_add-user.sh
: Crea el usuario predeterminado en Cloud Workstations.Debido a que el disco persistente se conecta dinámicamente al contenedor, se deben agregar usuarios durante el inicio de la estación de trabajo, no en el Dockerfile.
020_start-sshd.sh
: Inicia el serviciosshd
en el contenedor.110_start-$IDE.sh
: Inicia el IDE para 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 funciones adicionales 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 otro usuario, usa el comando
runuser
.Debido a que las secuencias de comandos se ejecutan en orden lexicográfico, te recomendamos prefijar las secuencias de comandos con un número de tres dígitos superior a 200.
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 crea una copia de seguridad del directorio principal
se conecta de forma dinámica al contenedor en el entorno de ejecución. Este proceso reemplaza
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 entorno de ejecución del contenedor
Para ello, agrega una secuencia de comandos en el directorio /etc/workstation-startup.d
.
o agregando una configuración por usuario en el directorio /etc/profile.d
.
Para acelerar el proceso, considera ejecutar la secuencia de comandos de configuración en segundo plano
(agrega un signo de unión, &
, al final del comando) para evitar
bloqueando el inicio del contenedor.
Algunos ejemplos de la configuración del tiempo de compilación que se debe mover al contenedor tiempo de ejecución:
- Configuración de
git
por usuario git
repositorios clonados en el directorio principal- Configuración directa del usuario, como la colocación de archivos en un directorio
$HOME/.config
- Creación de usuarios
Creación y modificación de usuarios
Debido a que el disco persistente se conecta dinámicamente
al contenedor en el entorno de ejecución
se deben agregar usuarios durante 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
crear tu propia secuencia de comandos
que se ejecute en el inicio.
Además, puedes modificar el perfil de Bash predeterminado para los usuarios actualizando
los archivos en /etc/profile.d
.
Actualizar claves APT seguras preconfiguradas
Las imágenes base de Cloud Workstations vienen preinstaladas con una serie de herramientas obtenidas
desde varios repositorios de terceros
con APT seguro. Como parte de la 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/
. Estos archivos no son
a la que se hace referencia en los archivos list
correspondientes en /etc/apt/sources.list.d/
.
Esto permite que apt
verifique la integridad de un repositorio determinado cuando
que estás interactuando con él.
A veces, los propietarios de repositorios externos pueden decidir cambiar la clave pública
que se usan para validar la integridad de su repositorio, lo que provoca que apt
mostrar un error cuando interactúa con él. Para resolver este posible problema,
puedes usar /google/scripts/refresh-preinstalled-apt-keys.sh
,
obtiene las versiones más recientes de claves públicas preinstaladas y las vuelve a importar.
Cómo enumerar las versiones de IDE instaladas
Varias imágenes base de Cloud Workstations tienen preinstalado un IDE. Para
más conveniente, consulta la /google/scripts/preinstalled-ide-versions.sh
que enumera el nombre y la información de la versión de los IDE instalados
la imagen.
Desactivar los privilegios raíz de sudo
El usuario de la estación de trabajo predeterminada tiene sudo
privilegios de acceso raíz en estas
contenedores. Para desactivar el acceso raíz al contenedor de Docker, configura la
Variable de entorno CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO
a true
cuando crees la configuración de la estación de trabajo.
Para configurar esta variable de entorno a través de la consola de Google Cloud durante la creación la configuración de tu estación de trabajo, sigue estos pasos:
- Cuando crees la configuración de tu estación de trabajo, complétala para la sección Información básica y la Configuración de la máquina.
- En el diálogo Personalización del entorno, expande la Opciones avanzadas de contenedor y selecciona Variables de entorno.
- Haz clic en agregarAgregar variable.
- Ingresa
CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO
ytrue
como el valor.
Usa tu propia imagen de contenedor
También puedes usar tu propia imagen de contenedor o imágenes de contenedor externas, siempre que se basen en Linux y ejecuten un proceso de bloqueo cuando el contenedor se inicia.
Cuando configuras el Dockerfile, la instrucción ENTRYPOINT
debe ejecutar un
de bloqueo, como sleep infinity
, para que el contenedor continúe
en lugar de salir de inmediato. Como alternativa, en la estación de trabajo
puedes establecer el campo config.container.args
para especificar una
de bloqueo de tu sitio.
Cuando uses tu propia imagen de contenedor, ten en cuenta lo siguiente:
Cloud Workstations no requiere secuencias de comandos adicionales del Imagen base de Cloud Workstations.
Sin embargo, puedes ver las secuencias de comandos en
/etc/workstation-startup.d/
. dentro de un contenedor que ejecuta la imagen base de Cloud Workstations. Los nombres de archivo indican lo que hace cada secuencia de comandos.Te recomendamos que ejecutes un servidor SSH en el contenedor. Consulta
/etc/workstation-startup.d/020_start-sshd.sh
en la configuración predeterminada imagen base para descubrir cómo Cloud Workstations configura esto de forma predeterminada.Te recomendamos que ejecutes tu IDE o servidor web predeterminados en el puerto
80
.
Extiende las imágenes base de Cloud Workstations
Cuando extiendas una imagen base de Cloud Workstations para crear una imagen personalizada para tu de trabajo, puedes adoptar tres enfoques:
- Actualiza tu
Dockerfile
para incluir cualquier recurso estático adicional que agregar. - Agrega archivos ejecutables adicionales en
/etc/workstation-startup.d/
al personalizar el contenedor en ejecución. Los archivos de este directorio se configuran automáticamente se ejecutan en orden lexicográfico en el inicio del contenedor, por lo que puedes prefijar nombre de archivo para ejecutarla en el momento adecuado durante el inicio de la estación de trabajo. - Anula el
ENTRYPOINT
en tu Dockerfile para personalizar por completo tu el inicio del contenedor.
Muestras de Dockerfiles personalizados
En esta sección, se proporcionan ejemplos de situaciones y también instrucciones para crear las tuyas Dockerfiles.
Imagen de contenedor con emacs
preinstalado
Para crear una imagen de contenedor con emacs
preinstalado, ejecuta el siguiente comando:
comandos:
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest
RUN sudo apt update
RUN sudo apt install -y emacs
Imagen de contenedor con personalización del usuario
Sigue estos pasos para personalizar una imagen de contenedor:
Crea una secuencia de comandos en
/etc/workstation-startup.d/*
que se ejecute después010_add-user.sh
, por ejemplo,011_customize-user.sh
:#!/bin/bash # Create new group groupadd $GROUP # Add the user to a new group usermod -a -G $GROUP $USERNAME
Reemplaza
$GROUP
por el nombre del grupo nuevo$USERNAME
por el nombre de usuario del usuarioSi le asignaste el nombre
011_customize-user.sh
a la secuencia de comandos, agrega lo siguiente: siguiente a tu imagen en tu Dockerfile y haz que sea ejecutable:FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest COPY 011_customize-user.sh /etc/workstation-startup.d/ RUN chmod +x /etc/workstation-startup.d/011_customize-user.sh
Imagen de contenedor que establece variables de entorno de contenedor en sesiones SSH
Variables de entorno que se establecen a nivel de la configuración o la estación de trabajo se pasan a subprocesos directos con el comando de punto de entrada. Esto incluye las en las imágenes base preconfiguradas. Sin embargo, las sesiones SSH no son del punto de entrada y que no cuentan con estos entornos variables establecidas.
Para establecer esas variables de entorno en las sesiones SSH, configura un
de contenedor que retransmite estas variables de entorno desde
ingress al archivo /etc/environment
.
Para lograrlo, sigue estos pasos:
Crea una secuencia de comandos en
/etc/workstation-startup.d/*
que se ejecute después010_add-user.sh
, por ejemplo,011_add-ssh-env-variables.sh
:#!/bin/bash # echo "CUSTOM_ENV_VAR=$CUSTOM_ENV_VAR" >> /etc/environment
Reemplaza
CUSTOM_ENV_VAR
por la variable de entorno deseada de la fuente de datos.Si le asignaste el nombre
011_add-ssh-env-variables.sh
a la secuencia de comandos, agrega lo siguiente: siguiente a tu imagen en tu Dockerfile y haz que sea ejecutable:FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest COPY 011_add-ssh-env-variables.sh /etc/workstation-startup.d/ RUN chmod +x /etc/workstation-startup.d/011_add-ssh-env-variables.sh
Imagen del contenedor que habilita el reenvío de X11 para sesiones SSH
El reenvío de X11 te permite iniciar aplicaciones remotas y reenviarlas mostrar a una máquina local.
Para crear una imagen de contenedor que habilite el reenvío de X11, modifica el daemon de OpenSSH
archivo de configuración (/etc/ssh/sshd_config
) que proporcionan las imágenes base de Cloud Workstations por
Agrega X11Forwarding yes
(para permitir el reenvío de X11) y AddressFamily inet
.
(para garantizar que solo se use IPv4). Para obtener más información sobre estas palabras clave, consulta la página web de OpenBSD
páginas sobre AddressFamily
y
X11Forwarding
.
Este es un Dockerfile de muestra que realiza las modificaciones necesarias:
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest
# Permit X11 forwarding using only IPv4
RUN cat >> /etc/ssh/sshd_config <<-EOF
AddressFamily inet
X11Forwarding yes
EOF
Copiar el código OSS para Cloud Workstations en otra imagen de contenedor
Una compilación de varias etapas te permite usar varias sentencias FROM
en tu Dockerfile. Cada instrucción FROM
puede usar una base diferente, y permite
la copia de artefactos entre etapas de compilación. Para agregar Code OSS para Cloud Workstations a
otra imagen de contenedor usa una compilación de varias etapas para copiar la carpeta de la aplicación
/opt/code-oss
en tu imagen. Si quieres iniciar Code OSS para Cloud Workstations
en el momento de inicio del contenedor; además, copia la secuencia de comandos /etc/workstation-startup.d/110_start-code-oss.sh
en el contenedor.
Este es un Dockerfile de ejemplo que copia Code OSS en JetBrains IntelliJ. La mejor imagen Luego, puedes interactuar con cualquiera de los IDE:
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest as code-oss-image
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/jetbrains-intellij:latest
# Copy Code OSS for Cloud Workstations and startup scripts into our custom image
COPY --from=code-oss-image /opt/code-oss /opt/code-oss
COPY --from=code-oss-image /etc/workstation-startup.d/110_start-code-oss.sh /etc/workstation-startup.d/110_start-code-oss.sh
# Use the existing entrypoint script which will execute all scripts in /etc/workstation-startup.d/
ENTRYPOINT ["/google/scripts/entrypoint.sh"]
Imagen del contenedor que preinstala extensiones de IDE en Code-OSS para Cloud Workstations para desarrollo de Java
Para crear una imagen de contenedor que preinstale las extensiones del IDE en En el momento de la compilación, ejecuta los siguientes comandos a través de Code OSS para Cloud Workstations para desarrollo de Java:
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest
RUN wget https://open-vsx.org/api/vscjava/vscode-java-debug/0.40.1/file/vscjava.vscode-java-debug-0.40.1.vsix && \
unzip vscjava.vscode-java-debug-0.40.1.vsix "extension/*" &&\
mv extension /opt/code-oss/extensions/java-debug
RUN wget https://open-vsx.org/api/vscjava/vscode-java-dependency/0.19.1/file/vscjava.vscode-java-dependency-0.19.1.vsix && \
unzip vscjava.vscode-java-dependency-0.19.1.vsix "extension/*" &&\
mv extension /opt/code-oss/extensions/java-dependency
RUN wget https://open-vsx.org/api/redhat/java/1.6.0/file/redhat.java-1.6.0.vsix && \
unzip redhat.java-1.6.0.vsix "extension/*" &&\
mv extension /opt/code-oss/extensions/redhat-java
RUN wget https://open-vsx.org/api/vscjava/vscode-maven/0.35.2/file/vscjava.vscode-maven-0.35.2.vsix && \
unzip vscjava.vscode-maven-0.35.2.vsix "extension/*" &&\
mv extension /opt/code-oss/extensions/java-maven
RUN wget https://open-vsx.org/api/vscjava/vscode-java-test/0.35.0/file/vscjava.vscode-java-test-0.35.0.vsix && \
unzip vscjava.vscode-java-test-0.35.0.vsix "extension/*" &&\
mv extension /opt/code-oss/extensions/java-test
Si preinstalas extensiones, se consideran extensiones integradas.
No podrás actualizar estas extensiones y es posible que no aparezcan en
la sección instalada en
Marketplace de Extensiones.
Sin embargo, puedes encontrar tus extensiones integradas buscando
@builtin
.
Otra forma de instalar extensiones al inicio es ejecutar una
secuencia de comandos de inicio.
Por ejemplo, incluye la siguiente secuencia de comandos de inicio en
/etc/workstation-startup.d/120_install_extensions.sh
:
/opt/code-oss/bin/codeoss-cloudworkstations --install-extension vscjava.vscode-java-debug@0.40.1 \
--install-extension vscjava.vscode-java-dependency@0.19.1 \
--install-extension redhat.java@1.6.0 \
--install-extension vscjava.vscode-maven@0.35.2 \
--install-extension vscjava.vscode-java-test@0.35.0
Con este método, la extensión aparece en el
Marketplace de Extensiones y tú
desde ahí.
Instala los IDE y complementos de JetBrains en las imágenes base.
Cuando personalizas imágenes de Docker para configuraciones de estaciones de trabajo, puedes instalar IDE de JetBrains y complementos, como Cloud Code para IntelliJ. en la imagen base. Las imágenes base de Cloud Workstations para productos de JetBrains incluyen lo siguiente: secuencias de comandos para ayudarte a hacer lo siguiente:
jetbrains-installer.sh
: Instala los IDE de JetBrains.plugin-installer.sh
: Instala complementos, como Cloud Code para IntelliJ.
Usa estas secuencias de comandos según sea necesario para personalizar la imagen base y llamarlas con un de inicio o ejecutarlos tras iniciar la estación de trabajo.
Secuencias de comandos del instalador
Para ver los archivos fuente de jetbrains-installer.sh
y
Secuencias de comandos de plugin-installer.sh
, inicia una estación de trabajo mediante una estación de trabajo
que usa una de las imágenes predefinidas de JetBrains, conéctate al
a través de la puerta de enlace de JetBrains o de SSH y, luego,
los archivos de secuencia de comandos en el directorio installer-scripts
, que se encuentra en
directorio raíz.
Te recomendamos que ejecutes estas secuencias de comandos durante el tiempo de compilación del contenedor. Evita correr en una estación de trabajo ya iniciada.
Usa la secuencia de comandos del instalador del complemento
La secuencia de comandos plugin-installer.sh
usa la siguiente sintaxis:
plugin-installer.sh [-v VERSION] [-d DESTINATION-DIRECTORY] [-c CHECKSUM] [-f] PLUGIN_ID
Reemplaza lo siguiente:
VERSION
: Es el número de versión opcional del complemento que se instalará.DESTINATION-DIRECTORY
: Es el directorio opcional en el que el complemento. una aplicación de este tipo. Si no se especifica, se usa el directorio de trabajo.CHECKSUM
: La suma de verificación SHA-256 opcional del complemento solicitado.-f
: Si se especifica, se reemplazará cualquier complemento existente.PLUGIN_ID
: el identificador numérico del complemento obligatorio del JetBrains. Por ejemplo, para agregar Dart usa6351
como PLUGIN_ID. Para agregar Cloud Code para IntelliJ usa8079
como PLUGIN_ID.
Por ejemplo, para instalar la versión más reciente del complemento Dart en IntelliJ, ejecuta el siguiente comando:
plugin-installer.sh -d /opt/ideaIU/plugins/ 6351
Usa la secuencia de comandos del instalador de JetBrains.
Recomendamos que uses la secuencia de comandos del instalador de JetBrains cuando extender una imagen base preconfigurada para los IDE de JetBrains.
La secuencia de comandos jetbrains-installer.sh
usa la siguiente sintaxis:
jetbrains-installer.sh IDE [ pinned|latest ]
Reemplaza lo siguiente:
IDE
: Es el IDE de JetBrains que se instalará. Debes usar uno de las siguientes abreviaturas de IDE:IDE Producto instalado cl
CLion clion
CLion go
GoLand goland
GoLand iiu
IntelliJ Ultimate intellij
IntelliJ Ultimate pcp
PyCharm Professional pycharm
PyCharm Professional ps
PHPStorm phpstorm
PHPStorm rd
Rider rider
Rider rm
RubyMine rubymine
RubyMine ws
WebStorm webstorm
WebStorm pinned|latest
: Opcional. Usa el método fijado con la última versión del IDE. La configuración predeterminada eslatest
.
Por ejemplo, para instalar la versión más reciente de Clion, ejecuta el siguiente comando: :
jetbrains-installer.sh clion
Personaliza los archivos de configuración del IDE de JetBrains
Si se especifica un directorio principal persistente en las estaciones de trabajo
de procesamiento, las imágenes base de Cloud Workstations con IDE de JetBrains
conservar automáticamente la configuración de $IDE.vmoptions
y $IDE.properties
archivos. Para anular la ubicación predeterminada de estos archivos, especifica
La variable de entorno CLOUD_WORKSTATIONS_JETBRAINS_PERISTED_CONFIG_DIR
Para obtener más información, consulta
/etc/workstation-startup.d/120_persist-jetbrains-configs.sh
en cualquiera
Imagen base de JetBrains para aprender
cómo Cloud Workstations
configura esto de forma predeterminada.
Extiende una imagen base de Docker con Cloud Code para IntelliJ
El siguiente fragmento de Dockerfile extiende una imagen base de Docker con
Cloud Code para IntelliJ incluye 8079
como identificador de complemento obligatorio.
En el ejemplo, también se especifica version 22.9.3-222
como la versión
de destino, /opt/ideaIU/plugins/
como el directorio de destino y
89628279ed9042c526a81facc09bf53f8fb8b83b4595b0d329d94c1611e0c379
como
suma de comprobación:
...
# Install IDE and Plugins
RUN bash /installer-scripts/jetbrains-installer.sh intellij pinned && \
# Install Cloud Code - https://plugins.jetbrains.com/plugin/8079-cloud-code
bash /installer-scripts/plugin-installer.sh \
-v 22.9.3-222 \
-d /opt/ideaIU/plugins/ \
-c 89628279ed9042c526a81facc09bf53f8fb8b83b4595b0d329d94c1611e0c379 \
8079
# Register IDE with JetBrains Gateway
RUN echo 'runuser user -c "/opt/ideaIU/bin/remote-dev-server.sh registerBackendLocationForGateway"' > /etc/workstation-startup.d/110_register-intellij-with-gateway.sh \
echo 'echo "IntelliJ-Ultimate ready for incoming gateway connection"' >> /etc/workstation-startup.d/110_register-intellij-with-gateway.sh
...
Instala extensiones de IDE adicionales en Code OSS para Cloud Workstations
Puedes encontrar extensiones de IDE adicionales en la
Abre VSX Registry.
También puedes encontrar la URL del archivo .vsix
copiando la URL en el
Descargar de cualquier extensión.
![Abre la página de VSX de la extensión de idioma Go que muestra el botón Descargar.](https://cloud.google.com/static/workstations/images/open-vsx-go-ext-dark-mode.png?authuser=7&hl=es)
Si abres
Marketplace de Extensiones de un
estación de trabajo, aparecerá Instalar en lugar de Descargar.
Configuración predeterminada de Code OSS para Cloud Workstations
Para obtener información detallada sobre el almacenamiento de la configuración en Code OSS para Cloud Workstations, consulta Cómo personalizar la configuración.
Si especificas un directorio principal persistente en la configuración de las estaciones de trabajo,
puedes definir la configuración predeterminada de Code OSS para Cloud Workstations agregando un
secuencia de comandos de inicio
que escribe la configuración en
$HOME/.codeoss-cloudworkstations/data/Machine/settings.json
.
Por ejemplo, si quieres establecer el tema de color predeterminado en Oscuro, extiende la base
editor de imágenes para incluir la siguiente secuencia de comandos en
/etc/workstation-startup.d/150_default-ide-color-theme.sh
cat <<< $(jq '. += {"workbench.colorTheme": "Default Dark Modern"}' settings.json) > settings.json
Compila una imagen de contenedor personalizada
Para obtener información detallada sobre los comandos de Docker, consulta la Referencia de Docker. Escribe el comando siguiente para compilar tu contenedor:
docker build CUSTOM_IMAGE_FOLDER -t TARGET_IMAGE
Ten en cuenta que reemplazar el texto que antecede a editar El ícono Editar actualiza los demás ejemplos de esta página.
Reemplaza lo siguiente:
CUSTOM_IMAGE_FOLDER
: Es la ruta de acceso a la que creaste para almacenar tu imagen personalizada.TARGET_IMAGE
: Es la ruta de acceso a tu imagen en Artifact Registry. (o Container Registry).Por ejemplo,
TARGET_IMAGE
podría apuntar a una imagen de destino. ruta de acceso similar a cualquiera de las siguientes:*.pkg.dev/cloud-workstations-external/customimage:latest *.gcr.io/cloud-workstations-external/customimage:latest
Reemplaza * según sea necesario por el nombre de la región y ningún identificador adicional.
También puedes actualizar la variable de entorno CLOUD_WORKSTATIONS_CUSTOM_IMAGE
para que apunten al repositorio.
Para obtener más información sobre cómo almacenar imágenes de Docker en Artifact Registry, consulta el las siguientes secciones:
- Instructivos Crea un repositorio de Docker con Artifact Registry.
- Convenciones de nomenclatura para de imagen y repositorio.
Aloja tu imagen de contenedor personalizada
Para alojar imágenes de contenedor personalizadas, recomendamos y admitimos Artifact Registry. Si usas GitHub o cualquier otro repositorio público o privado, Cloud Workstations podría no funcionar como se espera. Para obtener más información, consulta la nota importante en la Usa una imagen de contenedor personalizada sección.
Prueba tu imagen de contenedor personalizada
Cuando el contenedor termine de compilarse, puedes probarlo con los siguientes comandos: :
docker run --privileged -p LOCAL_PORT:CONTAINER_PORT TARGET_IMAGE
Reemplaza lo siguiente:
LOCAL_PORT
: Es el número del puerto local.CONTAINER_PORT
: Es el número de puerto del contenedor.
Por ejemplo, reemplazar
LOCAL_PORT
:CONTAINER_PORT
con
8080
:80
asigna el puerto 8080
para usarlo de forma local y el puerto 80
para usarlo en
el contenedor.
Si quieres extender la imagen del editor base de Cloud Workstations, ejecuta docker
.
y, luego, probar la imagen de la estación de trabajo conéctate a ella
A través de tu navegador local o ejecutando ssh
para conectarte a tu contenedor, haz lo siguiente:
- Si te conectas a través del navegador, asegúrate de pasar
-p 8080:80
a tu comandodocker run
y, luego, abrelocalhost:8080
- Si prefieres conectarte a través de SSH, asegúrate de pasar
-p 2222:22
al comandodocker run
y, luego, ejecutassh user@localhost -p 2222
.
Usa una imagen de contenedor personalizada
Para usar tu imagen de contenedor personalizada después de compilarla y probarla de forma local, sigue estos pasos: envía tu contenedor a Artifact Registry (o Container Registry) con el siguiente comando: :
docker push TARGET_IMAGE
Ahora puedes crear una configuración de estación de trabajo con la imagen del contenedor que acabas de crear y enviar.
Para obtener más información, consulta Crea un repositorio de Docker con Artifact Registry.
Cómo depurar problemas
Para encontrar y depurar problemas en la ejecución de tu imagen de contenedor, revisa el registros de salida de contenedores de tus estaciones de trabajo en ejecución.
Recomendación: Ayuda a proteger tu canalización de imágenes
Es responsable de mantener y actualizar los paquetes personalizados y dependencias agregadas a las imágenes personalizadas.
Si vas a crear imágenes personalizadas, te recomendamos lo siguiente:
Ayuda a proteger tu canalización de imágenes mediante la recompilación automática de estas imágenes cuando la imagen base de Cloud Workstations esté actualizado.
Ejecuta una herramienta de análisis de contenedores, como Artifact Analysis para inspeccionar cualquier dependencia adicional que hayas agregado.
Programa compilaciones para reconstruir las imágenes semanalmente, o bien aprender a automatizar las recompilaciones de imágenes de contenedor.
¿Qué sigue?
- Automatiza las recompilaciones de imágenes de contenedores para sincronizar actualizaciones de imágenes base con Cloud Build y Cloud Scheduler.
- Configura las prácticas recomendadas de seguridad.
- Obtén más información sobre Artifact Analysis.