Skip to content

Comandos comuns

Os comandos que você usa todo dia. A referência completa tem a lista inteira.

Deploy

goship deploy                       # o diretório atual, sem configuração nenhuma
goship deploy --platform python     # quando a dedução automática errar
goship deploy --env-file .env       # com segredos de um arquivo dotenv
goship deploy -m "ajuste no cache"  # com mensagem de deploy
goship deploy --environment production # em produção, só neste comando

O deploy vai para o ambiente que o CLI escolheu: sem nada, o padrão da organização, que é desenvolvimento.

Na primeira vez a app é criada sozinha: o nome vem do diretório e a plataforma dos arquivos presentes. Um goship.yaml (ou .goship.yaml) é opcional — serve pra fixar esses valores e parar de repetir flag:

app: meu-app
platform: go
plan: app-small-sandboxed
env:
  LOG_LEVEL: info

A ordem de precedência é: flag > arquivo > dedução.

O plano -sandboxed existe no cluster GoShip e nas máquinas que o GoShip monta; num Kubernetes conectado não há sandbox. goship plans mostra os planos do ambiente em que você está.

Ambientes

Cada ambiente (desenvolvimento, homologação, produção e os que você criar) aponta pra um cluster. Os comandos agem no ambiente em uso (Ambientes):

goship environments                 # os ambientes da organização e o cluster de cada um
goship environment enable staging   # administrador: ativa a homologação, que nasce desativada
goship environment use staging      # os próximos comandos deste projeto usam homologação
goship environment create qa --cluster meu-cluster
goship environment rm qa            # pede confirmação; --yes pula

A ordem em que o CLI escolhe o ambiente está em Login, organização, projeto e ambiente.

Clusters

goship clusters                     # os clusters da organização
goship cluster create meu-cluster --cloud minha-conta --region nyc3 --size s-2vcpu-4gb
goship cluster info meu-cluster

goship cluster create também conecta uma máquina sua (--host, --ssh-key) ou um Kubernetes (--kubeconfig); --environment <slug> aponta um ambiente que já existe para o cluster novo. O comando goship node foi substituído por goship cluster. Veja Clusters.

Ver o que está no ar

goship apps                         # os apps do ambiente em uso
goship apps -A                      # todos os que você alcança, em seções org/projeto/ambiente
goship app info meu-app
goship logs -a meu-app -f

Com -A (e em goship dbs -A e goship volumes -A), um ambiente que você não alcança é pulado, com uma nota. Quando o projeto não foi escolhido e a organização tem vários, goship app info meu-app procura o app em todos os projetos e ambientes; --environment limita a busca a um ambiente. Se o nome existe em vários, escolha com --org, --project e --environment.

Variáveis de ambiente

goship env list -a meu-app
goship env set DATABASE_URL=postgres://... -a meu-app
goship env unset DEBUG -a meu-app

goship env é só das variáveis de ambiente de um app. Os ambientes do GoShip, como desenvolvimento, homologação e produção, são goship environment e goship environments.

Escala

goship app scale meu-app --units 3
goship app plan meu-app app-medium-sandboxed   # goship plans lista os do ambiente

Banco

goship db create meu-banco --plan db-micro
goship db bind meu-banco -a meu-app

O banco nasce no ambiente em uso, no servidor padrão dele, e só se liga a apps do mesmo ambiente. --server escolhe outro servidor pra um banco só. O plano vale pro PostgreSQL do GoShip; num servidor seu o banco não tem plano (Provisionar).

Domínio próprio

goship domain add meu-app.com.br -a meu-app

Quando algo dá errado

goship logs -a meu-app -l 200
goship run -a meu-app -- env
goship releases -a meu-app           # lista as versões
goship rollback 12 -a meu-app        # volta pra versão 12