Google Cloud mantém as seguintes imagens de base concebidas para utilização com as estações de trabalho na nuvem.
Lista de imagens base pré-configuradas
Estas imagens podem ser usadas diretamente nas configurações da estação de trabalho ou podem ser usadas como imagens de base quando cria imagens de contentores personalizadas com o comando FROM
do Docker.
Imagem | Descrição |
---|---|
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest | Editor base das estações de trabalho na nuvem, Code OSS para estações de trabalho na nuvem, baseado no Code-OSS. (Predefinição) |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/base:latest | Imagem base sem IDE instalado. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/clion:latest | IDE CLion. Acessível apenas através do JetBrains Gateway. Para obter informações de instalação e introdução, consulte o artigo Desenvolva código com IDEs JetBrains locais. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/goland:latest | IDE GoLand. Acessível apenas através do JetBrains Gateway. Para obter informações de instalação e introdução, consulte o artigo Desenvolva código com IDEs JetBrains locais. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/intellij-ultimate:latest | IDE IntelliJ IDEA Ultimate. Acessível apenas através do JetBrains Gateway. Para obter informações de instalação e introdução, consulte o artigo Desenvolva código com IDEs JetBrains locais. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/phpstorm:latest | IDE PhpStorm. Acessível apenas através do JetBrains Gateway. Para obter informações de instalação e introdução, consulte o artigo Desenvolva código com IDEs JetBrains locais. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/pycharm:latest | IDE PyCharm Professional. Acessível apenas através do JetBrains Gateway. Para obter informações de instalação e introdução, consulte o artigo Desenvolva código com IDEs JetBrains locais. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/rider:latest | Rider IDE. Acessível apenas através do JetBrains Gateway. Para obter informações de instalação e introdução, consulte o artigo Desenvolva código com IDEs JetBrains locais. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/rubymine:latest | IDE RubyMine. Acessível apenas através do JetBrains Gateway. Para obter informações de instalação e introdução, consulte o artigo Desenvolva código com IDEs JetBrains locais. |
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/webstorm:latest | IDE WebStorm. Acessível apenas através do JetBrains Gateway. Para obter informações de instalação e introdução, consulte o artigo Desenvolva código com IDEs JetBrains locais. |
Lista de imagens base de terceiros
Imagem de terceiros | Fornecedor externo |
---|---|
us-central1-docker.pkg.dev/posit-images/cloud-workstations/workbench:latest | Posit Workbench (incluindo RStudio Pro) |
Se encontrar problemas com o IDE do Posit Workbench ou com a imagem do contentor do Posit Workbench, comunique-os à Posit no GitHub.
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.
O que se segue?
- Personalize as imagens de contentores.
- 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.