- Documentação
- Tecnologias
- Go
Go
A Guara Cloud suporta totalmente aplicacoes Go. A natureza compilada do Go o torna ideal para deploys em containers — produzindo binarios pequenos, rapidos e autocontidos.
Versoes suportadas
As seguintes versoes do Go sao detectadas automaticamente:
- Go 1.21
- Go 1.22
- Go 1.23
A versao e detectada automaticamente pela diretiva go no seu arquivo go.mod.
// go.mod
module my-app
go 1.23
Deploy com Dockerfile
Um build multi-stage e a abordagem recomendada para aplicacoes Go. Ele compila seu binario em um ambiente Go completo e depois copia apenas o binario para uma imagem de runtime minima.
Deploy com Buildpack
Se o seu repositorio nao contiver um Dockerfile, a Guara Cloud detecta automaticamente seu projeto Go pela presenca de um arquivo go.mod ou go.work.
A deteccao automatica vai:
- Detectar a versao do Go pelo
go.mod - Baixar dependencias com
go mod download - Compilar sua aplicacao (Go workspaces via
go.worksao suportados) - Executar o binario compilado diretamente
Suporte a CGO esta disponivel quando sua aplicacao requer dependencias C.
Configuracao de porta
Sua aplicacao deve escutar na porta configurada nas configuracoes do servico. O padrao e 3000, mas voce pode altera-lo a qualquer momento para corresponder a sua aplicacao.
port := os.Getenv("PORT")
if port == "" {
port = "3000"
}
http.ListenAndServe(":"+port, nil)
Estrutura de projeto exemplo
my-go-app/
go.mod
go.sum
main.go
internal/
handlers/
models/
Dockerfile # opcional — omita para usar Buildpack
Variaveis de ambiente
Estas variaveis de ambiente sao comumente usadas em deploys Go:
| Variavel | Valor recomendado | Descricao |
|---|---|---|
PORT | Definido pela plataforma | A porta na qual sua aplicacao deve escutar |
CGO_ENABLED | 0 | Produz um binario estaticamente linkado (sem deps C) |
GOOS | linux | Sistema operacional alvo para compilacao cruzada |