As
imagens de base pré-configuradas
fornecidas pelas estações de trabalho na nuvem contêm apenas um ambiente mínimo com IDE,
terminal Linux básico e ferramentas de linguagem, bem como um servidor sshd
. Para acelerar a configuração do ambiente de exemplos de utilização de desenvolvimento específicos, pode criar imagens de contentores personalizadas que expandam estas imagens base para pré-instalar ferramentas e dependências, e que executem scripts de automatização.
Para imagens de contentores personalizadas, recomendamos que configure um pipeline para reconstruir automaticamente estas imagens quando a imagem base do Cloud Workstations for atualizada, além de executar uma ferramenta de análise de contentores, como a análise de artefactos, para inspecionar quaisquer dependências adicionais que tenha adicionado. É responsável por manter e atualizar os pacotes e as dependências personalizados adicionados às imagens personalizadas.
Antes de começar
Precisa de uma máquina com ferramentas para criar imagens de contentores, como o Docker, e para enviar imagens para o Artifact Registry através da CLI Google Cloud. Pode usar as Estações de trabalho do Google Cloud ou o Editor do Cloud Shell para realizar estes passos, que têm estas ferramentas pré-instaladas.
Selecione a imagem base que quer usar na nossa lista de imagens base suportadas, como
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest
.Em alternativa, pode usar a sua própria imagem do contentor ou usar imagens do contentor externas seguindo as instruções para usar a sua própria imagem do contentor.
Crie uma pasta, como
CUSTOM_IMAGE_FOLDER
, e um ficheiro Dockerfile dentro desta pasta que expanda a imagem de base selecionada, conforme mostrado nos exemplos que se seguem.
Estrutura da imagem base das Cloud Workstations
As imagens base das estações de trabalho na nuvem partilham a seguinte estrutura definida:
- O ficheiro de ponto de entrada da imagem base está definido como
/google/scripts/entrypoint.sh
. No arranque, as imagens base executam ficheiros em
/etc/workstation-startup.d/*
por ordem lexicográfica para inicializar o ambiente da estação de trabalho.Os ficheiros e o respetivo comportamento são os seguintes:
000_configure-docker.sh
: configura e executa o Docker na estação de trabalho.010_add-user.sh
: cria o utilizador predefinido nas Cloud Workstations.Uma vez que o disco persistente é anexado dinamicamente ao contentor, os utilizadores têm de ser adicionados no arranque da estação de trabalho, não no Dockerfile.
020_start-sshd.sh
: inicia o serviçosshd
no contentor.030_customize-environment.sh
: executa/home/user/.workstation/customize_environment
comouser
.110_start-$IDE.sh
: inicia o IDE para a imagem.
O Cloud Workstations armazena imagens Docker no diretório base em
/home/.docker_data
para que as imagens sejam preservadas entre sessões.
Para adicionar funcionalidades adicionais durante o arranque da estação de trabalho, adicione os seus scripts no diretório /etc/workstation-startup.d/
:
Por predefinição, os scripts neste diretório são executados como root. Para executar os scripts como um utilizador diferente, use o comando
runuser
.Como os scripts são executados por ordem lexicográfica, recomendamos que prefixe os scripts com um número de três dígitos superior a 200.
Em alternativa, se não quiser expandir a imagem de uma estação de trabalho, pode criar um script customize_environment no diretório base.
Modificações do diretório inicial
Quando a configuração da estação de trabalho especifica um diretório pessoal persistente (que é o comportamento predefinido), um disco persistente que suporta o diretório pessoal é anexado dinamicamente ao contentor no momento da execução. Este processo substitui as modificações feitas ao diretório /home
no momento da compilação da imagem do contentor.
Para preservar as atualizações, modifique o diretório /home
no tempo de execução do contentor
adicionando um script no diretório /etc/workstation-startup.d
ou adicionando a configuração por utilizador no diretório /etc/profile.d
.
Para acelerar o processo, considere executar o script de configuração como um processo em segundo plano (adicione um sinal de comercial, &
, ao final do comando) para evitar o bloqueio do início do contentor.
Seguem-se alguns exemplos de configuração de tempo de compilação que devem ser movidos para o tempo de execução do contentor:
- Configuração do
git
por utilizador git
repositórios clonados no diretório inicial- Configuração direta do utilizador, como colocar ficheiros num diretório
$HOME/.config
- Criação de utilizador
Criação e modificação de utilizadores
Uma vez que o disco persistente é anexado dinamicamente ao contentor no momento da execução, os utilizadores têm de ser adicionados no arranque da estação de trabalho, não no Dockerfile. Para modificar
ou criar utilizadores adicionais, recomendamos que atualize
/etc/workstation-startup.d/010_add-user.sh
ou
crie o seu próprio script que é executado no arranque.
Além disso, pode modificar o perfil bash predefinido dos utilizadores atualizando os ficheiros em /etc/profile.d
.
Atualize as chaves APT seguras pré-configuradas
As imagens base das estações de trabalho na nuvem vêm pré-instaladas com várias ferramentas obtidas
de vários repositórios de terceiros através do APT seguro. Como parte do processo de instalação, as chaves públicas fornecidas pelos proprietários do repositório são importadas através de gpg
e colocadas em ficheiros individuais em /usr/share/keyrings/
. Estes ficheiros são
referenciados a partir dos ficheiros list
correspondentes em /etc/apt/sources.list.d/
.
Isto permite que o apt
valide a integridade de um determinado repositório quando
interage com ele.
Ocasionalmente, os proprietários de repositórios de terceiros podem decidir alterar a chave pública usada para validar a integridade do respetivo repositório, o que faz com que o apt
apresente um erro quando interage com o mesmo. Para resolver este potencial problema, pode usar o /google/scripts/refresh-preinstalled-apt-keys.sh
, que obtém as versões mais recentes das chaves públicas pré-instaladas e as importa novamente.
Liste as versões do IDE instaladas
Várias imagens base das estações de trabalho na nuvem são pré-instaladas com um IDE. Para sua conveniência, consulte o script incluído, que apresenta o nome e as informações da versão dos IDEs instalados na imagem./google/scripts/preinstalled-ide-versions.sh
Desative os sudo
privilégios de acesso root
O utilizador predefinido da estação de trabalho tem privilégios de acesso de raiz em sudo
destes contentores. Para desativar o acesso de raiz ao contentor do Docker, defina a variável de ambiente CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO
como true
quando criar a configuração da estação de trabalho.
Para definir esta variável de ambiente através da Google Cloud consola quando criar a configuração da estação de trabalho, siga estes passos:
- Quando criar a configuração da estação de trabalho, conclua a configuração para as informações básicas e a configuração da máquina.
- Na caixa de diálogo Personalização do ambiente, expanda a secção Opções avançadas do contentor e selecione Variáveis de ambiente.
- Clique em adicionarAdicionar variável.
- Introduza
CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO
etrue
como o valor.
Personalize sem expandir uma imagem
Para sua conveniência, todas as imagens base do Cloud Workstations verificam a presença de um ficheiro executável localizado em /home/user/.workstation/customize_environment
e, se existir, executam-no em segundo plano como user
. Isto permite-lhe
executar qualquer script ou ficheiro binário no arranque. Ao contrário de .profile
ou .bashrc
, o script só é executado uma vez quando a estação de trabalho é iniciada, em vez de uma vez para cada início de sessão na shell.
Uma vez que o script customize_environment
é executado como user
, certifique-se de que atualiza as autorizações conforme necessário quando escrever o script. Por exemplo, se quiser
instalar o Emacs sempre que a estação de trabalho for iniciada, o conteúdo de
customize_environment
pode ser semelhante ao seguinte:
#!/bin/bash
sudo apt-get update
sudo apt-get install -y emacs
Pode encontrar os registos de execução de customize_environment
no contentor em
/var/log/customize_environment
. Estes registos também são escritos nos
registos de saída do contentor.
Após a execução bem-sucedida de customize_environment
, é criado um ficheiro em
/var/run/customize_environment_done
. Uma vez que o customize_environment
é executado em paralelo com o arranque da estação de trabalho, os pacotes instalados pelo script podem ficar disponíveis alguns momentos após o arranque da estação de trabalho.
Use a sua própria imagem de contentor
Também pode usar a sua própria imagem de contentor ou usar imagens de contentores externos, desde que sejam baseadas no Linux e executem um processo de bloqueio quando o contentor é iniciado.
Ao configurar o Dockerfile, a instrução ENTRYPOINT
tem de executar um processo de bloqueio, como sleep infinity
, para que o contentor continue a ser executado em vez de terminar imediatamente. Em alternativa, na configuração da estação de trabalho, pode definir o campo config.container.args
para especificar um processo de bloqueio.
Quando usar a sua própria imagem de contentor, tenha em atenção o seguinte:
O Cloud Workstations não requer scripts adicionais da imagem base do Cloud Workstations.
No entanto, pode consultar os scripts no diretório
/etc/workstation-startup.d/
num contentor que execute a imagem base das Cloud Workstations. Os nomes dos ficheiros indicam o que cada script faz.Recomendamos que execute um servidor SSH no contentor. Consulte a secção
/etc/workstation-startup.d/020_start-sshd.sh
na imagem base predefinida para saber como o Cloud Workstations configura esta opção por predefinição.Recomendamos que execute o IDE ou o servidor Web predefinido na porta
80
.
Expanda as imagens base das estações de trabalho na nuvem
Quando expande uma imagem base do Cloud Workstations para criar uma imagem personalizada para o seu ambiente de estação de trabalho, pode adotar três abordagens:
- Atualize o ficheiro
Dockerfile
para incluir quaisquer recursos estáticos adicionais que queira adicionar. - Adicione ficheiros executáveis adicionais em
/etc/workstation-startup.d/
para personalizar o contentor em execução. Os ficheiros neste diretório são executados automaticamente por ordem lexicográfica no início do contentor. Por isso, pode adicionar um prefixo ao nome do ficheiro para o executar no momento adequado durante o início da estação de trabalho. - Substitua o
ENTRYPOINT
no seu Dockerfile para personalizar totalmente o arranque do contentor.
Exemplos de ficheiros Docker personalizados
Esta secção fornece exemplos de cenários e instruções para criar os seus próprios Dockerfiles.
Imagem de contentor com o emacs
pré-instalado
Para criar uma imagem de contentor com o emacs
pré-instalado, execute os seguintes comandos:
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest
RUN sudo apt update
RUN sudo apt install -y emacs
Imagem do contentor com personalização do utilizador
Siga estes passos para personalizar uma imagem de contentor:
Crie um script em
/etc/workstation-startup.d/*
que seja executado após010_add-user.sh
, por exemplo,011_customize-user.sh
:#!/bin/bash # Create new group groupadd $GROUP # Add the user to a new group usermod -a -G $GROUP $USERNAME
Substitua
$GROUP
pelo novo nome do grupo e$USERNAME
pelo nome de utilizador do utilizador.Partindo do princípio de que atribuiu o nome
011_customize-user.sh
ao seu script, adicione o seguinte à imagem no ficheiro Docker e torne-o executável: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
Imagem de contentor que define variáveis de ambiente de contentor em sessões SSH
As variáveis de ambiente definidas na configuração da estação de trabalho ou ao nível da estação de trabalho são transmitidas a subprocessos diretos através do comando entrypoint. Isto inclui o IDE nas imagens base pré-configuradas. No entanto, as sessões SSH não são processos secundários do ponto de entrada e não têm estas variáveis de ambiente personalizadas definidas.
Para definir essas variáveis de ambiente nas sessões SSH, configure uma imagem de contentor personalizada que retransmita estas variáveis de ambiente do comando de ponto de entrada do contentor para o ficheiro /etc/environment
.
Para o fazer, siga estes passos:
Crie um script em
/etc/workstation-startup.d/*
que seja executado após010_add-user.sh
, por exemplo,011_add-ssh-env-variables.sh
:#!/bin/bash # echo "CUSTOM_ENV_VAR=$CUSTOM_ENV_VAR" >> /etc/environment
Substitua
CUSTOM_ENV_VAR
pelo nome da variável de ambiente pretendida.Partindo do princípio de que atribuiu o nome
011_add-ssh-env-variables.sh
ao seu script, adicione o seguinte à imagem no ficheiro Docker e torne-o executável: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
Imagem de contentor que permite o encaminhamento X11 para sessões SSH
O encaminhamento X11 permite-lhe iniciar aplicações remotas e encaminhar a apresentação da aplicação para uma máquina local.
Para criar uma imagem de contentor que permita o encaminhamento X11, modifique o ficheiro de configuração do daemon OpenSSH (/etc/ssh/sshd_config
) fornecido pelas imagens base das Cloud Workstations anexando X11Forwarding yes
(para permitir o encaminhamento X11) e AddressFamily inet
(para garantir que apenas é usado o IPv4). Para mais informações acerca destas palavras-chave, consulte as páginas Web do OpenBSD sobre AddressFamily
e X11Forwarding
.
Segue-se um exemplo de um Dockerfile que faz as modificações necessárias:
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
Copie o código OSS para estações de trabalho na nuvem para outra imagem de contentor
Uma compilação de várias fases permite-lhe usar várias declarações FROM
no seu Dockerfile. Cada instrução FROM
pode usar uma base diferente e permite
copiar artefactos entre fases de compilação. Para adicionar o Code OSS para estações de trabalho na nuvem a outra imagem de contentor, use uma compilação de várias fases para copiar a pasta da aplicação /opt/code-oss
para a sua imagem. Se quiser iniciar o Code OSS para estações de trabalho do Google Cloud
no momento do arranque do contentor, copie também o script /etc/workstation-startup.d/110_start-code-oss.sh
para o contentor.
Segue-se um exemplo de um Dockerfile que copia o Code OSS para a imagem do JetBrains IntelliJ Ultimate. Em seguida, pode interagir com qualquer um dos IDEs:
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"]
Imagem de contentor que pré-instala extensões do IDE no Code OSS para estações de trabalho na nuvem para desenvolvimento em Java
Para criar uma imagem de contentor que pré-instala extensões do IDE no Code OSS para estações de trabalho na nuvem para desenvolvimento Java no momento da criação, execute os seguintes comandos:
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
RUN chmod a+rwx -R /opt/code-oss/extensions/
Se pré-instalar extensões, estas são consideradas extensões incorporadas.
Não vai poder atualizar estas extensões, e estas podem não aparecer na secção instalada no
Extensions Marketplace.
No entanto, pode encontrar as extensões incorporadas pesquisando
@builtin
.
Outra forma de instalar extensões no arranque é executar um script de arranque.
Por exemplo, inclua o seguinte script de arranque em
/etc/workstation-startup.d/120_install_extensions.sh
:
sudo -u user /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
Com este método, a extensão aparece no Marketplace de extensões e pode fazer a atualização a partir daí.
Instale IDEs e plug-ins da JetBrains em imagens base
Ao personalizar imagens Docker para configurações de estações de trabalho, pode instalar IDEs e plug-ins JetBrains, como o Cloud Code for IntelliJ, na imagem base. As imagens base das Cloud Workstations para produtos JetBrains incluem os seguintes scripts para ajudar a:
jetbrains-installer.sh
: instalar IDEs da JetBrainsplugin-installer.sh
: instalar plug-ins, como o Cloud Code for IntelliJ
Use estes scripts conforme necessário para personalizar a imagem de base, chamá-los com um script de arranque ou executá-los após iniciar a estação de trabalho.
Scripts do instalador
Para ver os ficheiros de origem dos scripts jetbrains-installer.sh
e plugin-installer.sh
, inicie uma estação de trabalho com uma configuração de estação de trabalho que use uma das imagens predefinidas da JetBrains, ligue-se à estação de trabalho através do JetBrains Gateway ou do SSH e, em seguida, procure os ficheiros de script no diretório installer-scripts
, que se encontra no diretório raiz.
Recomendamos que execute estes scripts no momento da criação do contentor. Evite executá-los numa estação de trabalho já iniciada.
Use o script do instalador de plug-ins
O script plugin-installer.sh
usa a seguinte sintaxe:
plugin-installer.sh [-v VERSION] [-d DESTINATION-DIRECTORY] [-c CHECKSUM] [-f] PLUGIN_ID
Substitua o seguinte:
VERSION
: número da versão opcional do plugin a instalar.DESTINATION-DIRECTORY
: diretório opcional no qual o plug-in deve ser instalado. Se não for especificado, é usado o diretório de trabalho.CHECKSUM
: soma de verificação SHA-256 opcional do plug-in pedido.-f
: se especificado, qualquer plug-in existente é substituído.PLUGIN_ID
: o identificador numérico obrigatório do plugin do JetBrains Marketplace. Por exemplo, para adicionar Dart use6351
como PLUGIN_ID. Para adicionar o Cloud Code for IntelliJ use8079
como PLUGIN_ID.
Por exemplo, para instalar a versão mais recente do plug-in do Dart no IntelliJ, execute o seguinte comando:
/installer-scripts/plugin-installer.sh -d /opt/ideaIU/plugins/ 6351
Use o script do instalador da JetBrains
Recomendamos que use o script do instalador da JetBrains quando estiver a expandir uma imagem base pré-configurada para IDEs da JetBrains.
O script jetbrains-installer.sh
usa a seguinte sintaxe:
jetbrains-installer.sh IDE [ pinned|latest ]
Substitua o seguinte:
IDE
: o IDE da JetBrains a instalar. Tem de usar uma das seguintes abreviaturas de IDE:IDE Produto 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
Motociclista rider
Motociclista rm
RubyMine rubymine
RubyMine ws
WebStorm webstorm
WebStorm pinned|latest
: opcional: use a versão fixada ou a versão mais recente do IDE. A predefinição élatest
.
Por exemplo, para instalar a versão mais recente do Clion, execute o seguinte comando:
/installer-scripts/jetbrains-installer.sh clion
Personalize os ficheiros de configuração do IDE da JetBrains
Se for especificado um diretório pessoal persistente na configuração das estações de trabalho, as imagens base das estações de trabalho na nuvem com IDEs JetBrains persistem automaticamente os ficheiros de configuração $IDE.vmoptions
e $IDE.properties
. Para substituir a localização predefinida destes ficheiros, especifique a variável de ambiente CLOUD_WORKSTATIONS_JETBRAINS_PERISTED_CONFIG_DIR
.
Para mais informações, consulte o artigo
/etc/workstation-startup.d/120_persist-jetbrains-configs.sh
em qualquer
imagem base da JetBrains para saber
como o Cloud Workstations configura esta opção por predefinição.
Estenda uma imagem Docker base com o Cloud Code para IntelliJ
O seguinte fragmento do Dockerfile expande uma imagem Docker base com o Cloud Code para IntelliJ, incluindo 8079
como o identificador do plug-in necessário.
O exemplo também especifica opcionalmente version 22.9.3-222
como o número da versão, /opt/ideaIU/plugins/
como o diretório de destino e 89628279ed9042c526a81facc09bf53f8fb8b83b4595b0d329d94c1611e0c379
como a soma de verificação:
...
# 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
...
Instale extensões de IDE adicionais no Code OSS para estações de trabalho na nuvem
Encontre extensões de IDE adicionais no
registo Open VSX.
Também pode encontrar o URL do ficheiro .vsix
copiando o URL do link Transferir para qualquer extensão.

Se abrir o
Extensions Marketplace a partir de uma estação de trabalho, é apresentado o botão Instalar em vez de Transferir.
Predefinições do Code OSS para as definições das estações de trabalho na nuvem
Para ver informações detalhadas sobre o armazenamento de definições no Code OSS para estações de trabalho na nuvem, consulte o artigo Personalize as definições.
Se especificar um diretório pessoal persistente na configuração das estações de trabalho,
pode configurar as predefinições do Code OSS para o Cloud Workstations adicionando um
script de arranque
que escreve as definições em
$HOME/.codeoss-cloudworkstations/data/Machine/settings.json
.
Por exemplo, se quiser definir o tema de cores predefinido como escuro, expanda a imagem do editor base para incluir o seguinte script em /etc/workstation-startup.d/150_default-ide-color-theme.sh
cat <<< $(jq '. += {"workbench.colorTheme": "Default Dark Modern"}' settings.json) > settings.json
Crie uma imagem de contentor personalizada
Para ver informações detalhadas sobre os comandos do Docker, consulte a referência do Docker. Introduza o seguinte comando para criar o contentor:
docker build CUSTOM_IMAGE_FOLDER -t TARGET_IMAGE
Tenha em atenção que a substituição do texto que precede o ícone edit Edit atualiza os outros exemplos nesta página.
Substitua o seguinte:
CUSTOM_IMAGE_FOLDER
: o caminho para a pasta que criou para armazenar a sua imagem personalizada.TARGET_IMAGE
: o caminho para a sua imagem no Artifact Registry.Por exemplo,
TARGET_IMAGE
pode apontar para um caminho de imagem de destino semelhante ao seguinte:*.pkg.dev/cloud-workstations-external/customimage:latest
Substitua * conforme necessário pelo nome da região e quaisquer identificadores adicionais.
Também pode atualizar a CLOUD_WORKSTATIONS_CUSTOM_IMAGE
variável de ambiente
para apontar para o repositório.
Para mais informações sobre o armazenamento de imagens do Docker no Artifact Registry, consulte as secções seguintes:
- Como criar um repositório do Docker com o Artifact Registry.
- Convenções de nomenclatura para nomes de repositórios e imagens.
Alojamento da sua imagem de contentor personalizada
Para alojar imagens de contentores personalizadas, recomendamos e oferecemos suporte ao Artifact Registry. Se usar o GitHub ou qualquer outro repositório público ou privado, as Estações de trabalho do Google Cloud podem não funcionar conforme esperado. Para mais informações, consulte a nota importante na secção Use uma imagem de contentor personalizada.
Teste a sua imagem de contentor personalizada
Depois de o contentor terminar a criação, pode testá-lo com o seguinte comando:
docker run --privileged -p LOCAL_PORT:CONTAINER_PORT TARGET_IMAGE
Substitua o seguinte:
LOCAL_PORT
: o número da porta localCONTAINER_PORT
: o número da porta do contentor
Por exemplo, substituir
LOCAL_PORT
:CONTAINER_PORT
por
8080
:80
atribui a porta 8080
para utilização local e a porta 80
para utilização no contentor.
Se estiver a expandir a imagem do editor base do Cloud Workstations, execute o comando docker
e, em seguida, teste a imagem da estação de trabalho ligando-se à estação de trabalho
através do seu navegador local ou executando ssh
para se ligar ao seu contentor:
- Se estabelecer ligação através do navegador, certifique-se de que transmite
-p 8080:80
para o comandodocker run
e, em seguida, abralocalhost:8080
. - Se preferir estabelecer ligação através de SSH, certifique-se de que transmite
-p 2222:22
ao comandodocker run
e, em seguida, executessh user@localhost -p 2222
.
Use uma imagem de contentor personalizada
Para usar a sua imagem de contentor personalizada depois de a ter compilado e testado localmente, envie o contentor para o Artifact Registry com o seguinte comando:
docker push TARGET_IMAGE
Já pode criar uma configuração da estação de trabalho com a imagem do contentor que acabou de criar e enviar.
Para mais informações, consulte o artigo Crie um repositório Docker com o Artifact Registry.
Depure problemas
Para encontrar e depurar problemas de execução da imagem do contentor, reveja os registos de saída do contentor das estações de trabalho em execução.
Recomendado: ajude a proteger o seu pipeline de imagens
É responsável pela manutenção e atualização de pacotes personalizados e dependências adicionadas em imagens personalizadas.
Se estiver a criar imagens personalizadas, recomendamos o seguinte:
Execute uma ferramenta de análise de contentores, como a análise de artefactos, para inspecionar quaisquer dependências adicionais que tenha adicionado.
Agende compilações para recompilar imagens semanalmente ou saiba como automatizar as recompilações de imagens de contentores.
O que se segue?
- Automatize as recompilações de imagens de contentores para sincronizar as atualizações de imagens base com o Cloud Build e o Cloud Scheduler.
- Configurar as práticas recomendadas de segurança.
- Saiba mais sobre a análise de artefactos.