Terminal Web
O Terminal Web do aplicativo oferece a você acesso à linha de comando do contêiner em que o processo da web do seu aplicativo está sendo executado. Você pode usar o Terminal Web para executar scripts e ler arquivos. Isso é útil para depuração de problemas, monitoramento de desempenho ou execução manual de scripts ad-hoc.
Para acessar o Terminal Web, você precisará:
- Ter pelo menos uma implantação bem-sucedida do aplicativo.
- Ter um aplicativo íntegro que esteja em execução. Se houver algum erro ou o aplicativo for interrompido, o Terminal Web não estará disponível.
- Adicionar pelo menos um endereço IP válido à lista de permissões.
Atualmente, o único processo que você pode acessar pelo Terminal Web é o processo da web. Processos em segundo plano ou cron jobs não estão disponíveis no Terminal Web.
Terminal Web com um Dockerfile
Se o seu aplicativo for criado com um Dockerfile, verifique se o Bash está instalado no contêiner. Geralmente, a imagem base (por exemplo, Ubuntu) inclui um pacote shell e funcionará por padrão. Em alguns contêineres mais simplificados, o pacote do shell pode não estar incluído, e você precisará adicioná-lo. A imagem base determina como você deve adicionar o pacote shell:
- Alpine:
apk add bash
- Ubuntu/Debian:
apt install bash
- Fedora:
dnf install bash
Configurando a autenticação
Os endereços IP adicionados à lista de permissões devem ser exclusivos. Se você tentar adicionar um endereço IP que já esteja na lista de permissões, receberá um erro e não poderá adicionar o endereço IP duplicado.
Adicionando endereço IP
Na primeira vez que você acessar a página do Terminal Web para o seu aplicativo no MyKinsta, clique em Configurar autenticação para adicionar endereços IP à lista de permissões. Para ver o endereço do qual você está se conectando, use uma ferramenta como Test your IPv6.
Digite o primeiro endereço IP que você deseja permitir. Para adicionar mais endereços IP, clique em Adicionar outro. Depois que você tiver inserido todos os endereços IP que deseja permitir, clique em Configurar autenticação.
Se você precisar adicionar mais endereços IP no futuro, clique em Adicionar endereço IP na seção da lista de permissões da página Terminal Web.
Excluindo um endereço IP
Para remover um endereço IP da lista de permissões, clique no ícone Excluir (lixeira) ao lado do endereço IP que você deseja remover e clique em Excluir endereço IP para confirmar a exclusão.
Conectando e abrindo o Terminal Web
Para abrir o Terminal Web, primeiro você precisa se conectar a ele, implantando um pod de Terminal Web. Clique em Iniciar Terminal Web para começar a abrir a conexão. Enquanto a conexão estiver sendo aberta, as opções na página do Terminal Web estarão desativadas.
Quando a implantação do pod do terminal Web estiver concluída, Terminal Web em Execução aparecerá acima da lista de permissões. Clique em Abrir Terminal Web para abrir o Terminal Web em uma nova aba do navegador.
Você poderá ver uma página Iniciandoo Terminal Web enquanto o terminal estiver sendo carregado. Depois que o terminal for carregado, você poderá executar comandos como em um terminal normal. Os comandos disponíveis para você dependerão dos executáveis presentes no seu aplicativo.
Nome de usuário do terminal
Se o seu aplicativo foi criado com um Nixpack (Use Nixpacks para configurar a imagem do contêiner na etapa de ambiente de Build), o nome de usuário no terminal geralmente será “root”. A Kinsta oferece Nixpacks, um projeto de código aberto mantido pela Railway, como uma das opções para determinar automaticamente a linguagem e criar um contêiner para o seu aplicativo com base no seu repositório.
Se o seu aplicativo foi criado com um Buildpack (Use Buildpacks para configurar a imagem do contêiner na etapa de ambiente de Build), o nome de usuário no terminal pode ser “heroku”. A Kinsta oferece Buildpacks, um projeto de código aberto mantido pela Heroku, como uma das opções para determinar automaticamente a linguagem e criar um contêiner para o seu aplicativo com base no seu repositório. Isso pode se refletir no terminal web.
Se o seu aplicativo foi criado com um Dockerfile (Use Dockerfile para configurar a imagem do contêiner na etapa Ambiente de build), o nome de usuário no terminal geralmente será “root”, mas isso depende de como o Dockerfile foi configurado.
Parar e encerrar o Terminal Web
Ao concluir suas tarefas no terminal, simplesmente feche a aba do navegador para desconectar do terminal web. Embora fechar a aba não encerre completamente o terminal, mas se você quiser abrir o terminal novamente, precisará clicar em Abrir Terminal Web, aguardar cerca de 30 segundos e atualizar a nova guia para ver o terminal novamente.
Para interromper o Terminal Web, clique em Parar Terminal Web.
Enquanto o terminal estiver em execução, você não poderá editar a lista de permissões de IP. Se você precisar editá-la, pare o terminal, faça suas alterações na lista de permissões e abra o terminal novamente.
Se a conexão do Terminal Web for criada, mas não for aberta, a conexão será automaticamente encerrada após 24 horas.
Diretórios binários de nixpacks
Com Nixpacks, os diretórios binários podem ser diferentes dos diretórios binários padrão para a linguagem do aplicativo. A tabela a seguir mostra os diretórios binários utilizados para algumas das linguagens mais comuns:
Linguagem | Diretório |
---|---|
Node.js | /nix/var/nix/profiles/default/bin/node |
Ruby | /nix/var/nix/profiles/default/bin/ruby |
Python | /nix/var/nix/profiles/default/bin/python |
Java | /nix/var/nix/profiles/default/bin/java |
Scala | Scala não possui um caminho binário padrão específico como algumas outras linguagens compiladas. Quando você compila um programa Scala, ele gera bytecode executado na Máquina Virtual Java (JVM). As classes Scala compiladas são normalmente armazenadas em uma framework de diretório que reflete a estrutura do pacote do seu código. Isso é semelhante à forma como as classes Java são organizadas. Por padrão, quando você compila um arquivo de origem Scala, os arquivos .class compilados serão colocados no mesmo diretório do código-fonte (dentro de uma estrutura de subdiretório baseada nas declarações de pacote). Se necessário, você pode instalar as ferramentas de tempo de execução do Scala usando um Dockerfile, em vez de usar um Nixpack. |
PHP | /nix/var/nix/profiles/default/bin/php |
Go | Go não possui um caminho binário padrão específico como algumas outras linguagens compiladas. Quando você compila um programa Go, o executável binário resultante é normalmente colocado no mesmo diretório do seu código-fonte por padrão. Se necessário, você pode instalar as ferramentas de tempo de execução do Go usando um Dockerfile, em vez de usar um Nixpack. |
Diretórios binários do buildpack
Quando você adiciona um aplicativo no MyKinsta usando Buildpacks, os diretórios binários podem ser diferentes dos diretórios binários padrão para a linguagem do aplicativo. A tabela a seguir mostra os diretórios binários usados para cada linguagem de buildpack:
Linguagem | Diretório |
---|---|
Node.js | /layers/heroku_nodejs-engine/dist/bin/node |
Ruby | /usr/bin/ruby |
Python | /usr/bin/python |
Java | /layers/heroku_jvm/openjdk/bin/java |
Scala | Scala não possui um caminho binário padrão específico como algumas outras linguagens compiladas. Quando você compila um programa Scala, ele gera bytecode executado na Máquina Virtual Java (JVM). As classes Scala compiladas são normalmente armazenadas em uma framework de diretório que reflete a estrutura do pacote do seu código. Isso é semelhante à forma como as classes Java são organizadas. Por padrão, quando você compila um arquivo de origem Scala, os arquivos .class compilados serão colocados no mesmo diretório do código-fonte (dentro de uma estrutura de subdiretório baseada nas declarações de pacote). Se necessário, você pode instalar as ferramentas de tempo de execução do Scala usando um Dockerfile em vez de um buildpack. |
PHP | /workspace/.heroku/php/bin/php |
Go | Go não possui um caminho binário padrão específico como algumas outras linguagens compiladas. Quando você compila um programa Go, o executável binário resultante é normalmente colocado no mesmo diretório do seu código-fonte por padrão. Se necessário, você pode instalar as ferramentas de tempo de execução do Go usando um Dockerfile em vez de um buildpack. |
Resolução de problemas
- Ao abrir o terminal web, se você visualizar uma página Error 1016 – Origin DNS ao invés da tela do terminal, isso se deve a um leve atraso na propagação do DNS. Aguarde 1 minuto e atualize a página até que a tela do terminal apareça. Se o problema persistir após alguns minutos, entre em contato com nossa equipe de Suporte.
- Se você encontrar um erro 403: Forbidden ao abrir o terminal web, isso significa que seu endereço IP não está na lista de permissões. Encerre o Terminal Web, add ip address e inicie o terminal web novamente.
- Um erro semelhante ao ERRO[0000] exec failed indica que o contêiner não possui o pacote shell. Você precisará adicionar esse pacote ao seu contêiner para executar o terminal web.
ERRO[0000] exec failed: container_linux.go:425: starting container process caused: exec: “bash”: executable file not found in $PATH
o comando foi encerrado com o código de saída 1