Skip to content

Comandos disponíveis

Para acessar/manipular a sua aplicação no servidor/container, seguem alguns comandos úteis permitidos para serem executados via SSH. Comando a ser executado precisa necessariamente seguir esse padrão:

$ ssh -t -p 2299 dokku@app.ic.ufba.br <COMANDO> <NOME_DA_APLICAÇÃO>

Lembramos que conforme explicitado no tópico configurando ambiente local, podemos suprimir os modificadores -t e -p 2299. Fica a critério do usuário.

Comandos permitidos:

Comandos para banco de dados:

  • postgres:expose

Este exemplo acima foi feito com comando de banco de dados postgreSQL, mas poderia ser outro. O comando expõe o banco de dados presente no container Docker à uma porta para acesso externo ao processo. Isso é útil para realizar consultas no banco, backups e afins. Exemplo de execução:

$ ssh -t -p 2299 dokku@app.ic.ufba.br postgres:expose teste

Nesse momento, o servidor retornará em quais portas o serviço está exposto/disponível para acesso. Pode-se também expor o banco de dados a uma porta específica. Exemplo de execução:

$ ssh -t -p 2299 dokku@app.ic.ufba.br postgres:expose teste 9000
  • postgres:unexpose

Este comando desfaz a configuração anterior. Exemplo de execução:

$ ssh -t -p 2299 dokku@app.ic.ufba.br postgres:unexpose teste
  • postgres:export

Este comando fará um backup do banco de dados da aplicação na máquina local. Exemplo de execução:

$ ssh -t -p 2299 dokku@app.ic.ufba.br postgres:export [DB_NAME] > [DB_NAME].dump

Obs.: O arquivo .dump será gerado na pasta local onde foi rodado o comando export.

  • postgres:import

Esse comando fará a importação de um banco de dados externo para o container da aplicação no servidor. Exemplo de execução:

$ ssh -t -p 2299 dokku@app.ic.ufba.br postgres:import [DB_NAME] < [DB_NAME].dump
  • postgres:destroy

Esse comando desvincula o banco de dados da aplicação do usuário e apaga o banco. Exemplo de execução:

$ ssh -t -p 2299 dokku@app.ic.ufba.br postgres:destroy [NOME_DB]

Observação importante: Caso o usuário precise por qualquer motivo, destruir o banco de dados, terá que entrar em contato novamente com o suporteIC para a recriação de novo banco de dados no container. Nesse caso, o usuário terá que fazer a importação de um backup dentro do container com o comando postgres:import.

  • postgres:connect

Esse comando permite que o usuário se conecte diretamente ao banco de dados da aplicação, sendo possível executar os comandos SQL necessários para alterações e/ou consultas caso deseje:

$ ssh -t -p 2299 dokku@app.ic.ufba.br postgres:connect [NOME_DB]
  • postgres:info

Esse comando permite ler as configurações da instalação do banco de dados da aplicação. Exemplo de execução:

$ ssh -t -p 2299 dokku@app.ic.ufba.br postgres:info [NOME_DB]

Exemplo de saída com o banco de dados da aplicação "teste":

=====> teste_production postgres service information
       Config dir:          /var/lib/dokku/services/postgres/teste_production/data
       Config options:                               
       Data dir:            /var/lib/dokku/services/postgres/teste_production/data
       Dsn:                 postgres://postgres:4d289d66a5617ca55a696ab70eea145f@dokku-postgres-teste-production:5432/teste_production
       Exposed ports:       5432->9050               
       Id:                  f5868b071be41ec552885a103f0181891a0aef3f6613fbded99bd08412957568
       Internal ip:         172.17.0.4               
       Links:               teste                    
       Service root:        /var/lib/dokku/services/postgres/teste_production
       Status:              running                  
       Version:             postgres:14.5 

Comandos dokku

  • run

O comando run pode ser usado para executar um processo único para um comando específico. Isso iniciará um novo container e executará o comando desejado dentro desse container. A imagem do container será a mesma imagem do container usada para iniciar o aplicativo atualmente implantado. Exemplo de execução de listagem detalhada de arquivos de uma aplicação:

# roda `ls -lah` no diretório `/app` da aplicação `teste`
$ ssh -t -p 2299 dokku@app.ic.ufba.br run teste ls -lah

Obs.: Observe que nos caso do comando run, o nome da aplicação precisa vir ANTES do comando que se quer rodar.

  • logs

Exibe os logs da aplicação. Exemplo de execução:

$ ssh -t -p 2299 dokku@app.ic.ufba.br logs teste
  • urls

Exibe as urls vinculadas à aplicação. Exemplo de execução:

$ ssh -t -p 2299 dokku@app.ic.ufba.br urls teste

Obs.: Decartar a usabilidade da url com schema http. Somente as requisições https irão funcionar por motivos de segurança.

  • apps:destroy

Comando que desvincula a aplicação do seu banco de dados associado e a apaga do servidor. Após a execução do comando, o sistema exigirá que escrevamos exatamente o nome da aplicação para confirmação da destruição. Exemplo de execução:

$ ssh -t -p 2299 dokku@app.ic.ufba.br apps:destroy teste

Obs.: O banco de dados não morre junto com a aplicação. Para destruí-lo, vejamos um exemplo com um banco de dados postgresSQL:

Observação importante: Caso o usuário precise por qualquer motivo, destruir a aplicação, terá que entrar em contato novamente com o suporteIC para a recriação de nova aplicação no container. Nesse caso, o usuário terá que fazer novamente o deploy da aplicação com o comando git push -f dokku master.

$ ssh -t -p 2299 dokku@app.ic.ufba.br postgres:destroy teste_db

Da mesma forma como para os apps, o sistema exigirá confirmação de segurança antes de proceder.

  • builder:set

Configura o modo de construção(build) conforme visto no tópico configurando o modo de construção

  • config:show

Exibe as configurações da aplicação no container Docker, bem como as variáveis de ambiente. Exemplo de execução:

$ ssh -t -p 2299 dokku@app.ic.ufba.br config:show teste

Saída do comando:

=====> teste env vars
DATABASE_URL:          postgres://postgres:4d289d66a5617ca55a696ab70eea145f@dokku-postgres-teste-production:5432/teste_production
DOKKU_APP_PROXY_TYPE:  nginx
DOKKU_APP_RESTORE:     1
DOKKU_APP_TYPE:        herokuish
DOKKU_PROXY_PORT:      80
DOKKU_PROXY_PORT_MAP:  http:80:5000 https:443:5000
DOKKU_PROXY_SSL_PORT:  443
GIT_REV:               50b80751d267c9202ca34775b81ff3edd7b45f2c

  • config:set

Comando para configuração das variáveis de ambiente conforme já visto anteriormente. Exemplo de execução para configuração de duas variáveis:

$ ssh -t -p 2299 dokku@app.ic.ufba.br config:set <NOME_DA_APLICAÇÃO> VAR1="valor\ 1" VAR2="valor\ 2"

Exemplo de execução em base64:

$ ssh -t -p 2299 dokku@app.ic.ufba.br config:set --encoded <NOME_DA_APLICAÇÃO> KEY="$(base64 ~/.ssh/id_rsa)
  • enter <NOME_DA_APLICAÇÃO>

Este comando permite rodar comandos em um container em execução, muito útil para debug. Segue um exemplo simples com a aplicação teste, utilizando uma variação do comando enter, no caso de teste, o processo web:

$ ssh -t -p 2299 dokku@app.ic.ufba.br enter teste web echo olá 

Saída do comando no terminal:

$ olá 

Outras variações de comando estão disponíveis e podem ser vistas com mais detalhes na documentação oficial - Entering Containers.

Obs.: Os processos devem ser definidos no Procfile, caso a sua aplicação não utilize um dockerfile. Um exemplo de configuração de Procfile está definido no tópico configurando o modo de construção(build).

Comandos Docker (containers)

  • ps:inspect

Este comando reunirá todos os IDs de container em execução para seu aplicativo e chamará a inspeção do docker, limpando os dados de saída para que possam ser copiados e colados em outro lugar com segurança. Exemplo de execução:

$ ssh -t -p 2299 dokku@app.ic.ufba.br ps:inspect <NOME_DA_APLICAÇÃO> 
  • ps:report

Exibe um relatório de processo para um ou mais aplicativos. Exemplo de execução com a aplicação:

$ ssh -t -p 2299 dokku@app.ic.ufba.br ps:report <NOME_DA_APLICAÇÃO> 

Exemplo de saída com a aplicação "teste":

=====> teste ps information
       Deployed:                      true
       Processes:                     1
       Ps can scale:                  true
       Ps computed procfile path:     Procfile
       Ps global procfile path:       Procfile
       Ps procfile path:              
       Ps restart policy:             on-failure:10
       Restore:                       true
       Running:                       true
       Status web 1:                  running (CID: 05850b537eb)
  • ps:start

Inicializa a aplicação. Exemplo de execução:

$ ssh -t -p 2299 dokku@app.ic.ufba.br ps:start <NOME_DA_APLICAÇÃO> 
  • ps:stop

Para a execução de uma aplicação. Exemplo de execução:

$ ssh -t -p 2299 dokku@app.ic.ufba.br ps:stop <NOME_DA_APLICAÇÃO> 
  • ps:restart

Reinicializa uma aplicação. Exemplo de execução:

$ ssh -t -p 2299 dokku@app.ic.ufba.br ps:restart <NOME_DA_APLICAÇÃO> 
  • ps:rebuild

Reconstrói o container Docker da aplicação. Exemplo de execução:

$ ssh -t -p 2299 dokku@app.ic.ufba.br ps:rebuild <NOME_DA_APLICAÇÃO> 

O Dokku também permite o agendamento de tarefas utilizando a ferramenta cron. Comandos permitidos:

  • cron:list <APP>

Listagem de tarefas agendadas para uma determinada aplicação. Exemplo de execução:

$ ssh -t -p 2299 dokku@app.ic.ufba.br cron:list <NOME_DA_APLICAÇÃO> 
  • cron:report <APP>

Exibe um relatório de tarefas configuradas para uma aplicação. Exemplo de execução:

$ ssh -t -p 2299 dokku@app.ic.ufba.br cron:report <NOME_DA_APLICAÇÃO> 

Para mais informações sobre como configurar um cron-job para sua aplicação, acesse a página de agendamentos de tarefas na documentação oficial - scheduled-cron-tasks.