Como criar um aplicativo em Go

Como especificar a versão do Go

Por padrão, o buildpack do Go usa a versão estável mais recente do compilador Go. Se seu aplicativo exigir uma versão específica, use a variável de ambiente GOOGLE_GO_VERSION para fornecer uma restrição semver, que será usada para selecionar uma versão do Go disponível.

pack build sample-go --builder=gcr.io/buildpacks/builder \
  --env GOOGLE_GO_VERSION="17.x.x"

Flags de compilação

O buildpack do Go compila a origem do seu aplicativo em um executável usando o comando go build command. As seguintes variáveis de ambiente podem ser usadas para configurar o comportamento do build:

  • GOOGLE_BUILDABLE Especifica o caminho para uma unidade passível de build. Exemplo: ./maindir para Go cria o pacote com acesso root em maindir.

  • GOOGLE_CLEAR_SOURCE Omite o código-fonte da imagem do aplicativo. Se o aplicativo depender de arquivos estáticos, como modelos Go, a definição dessa variável poderá causar um comportamento inadequado do aplicativo. Exemplo: true, True, 1 limparão a origem.

  • GOOGLE_GOGCFLAGS Transmitido para go build e go run como valor -gcflags sem interpretação. Exemplo: all=-N -l ativa a análise de disputa e muda a forma como os caminhos de arquivos de origem são gravados no binário.

  • GOOGLE_GOLDFLAGS Transmitido para o build e a execução do Go como valor -ldflags sem interpretação. Exemplo: -s -w é usado para reduzir e esvaziar o tamanho do binário.

Gerenciamento de dependências

Recomendamos que você use os módulos do Go para gerenciar dependências no seu app em Go. O buildpack do Go usa o comando go build para criar o app e, portanto, corresponde ao comportamento do próprio Go. Para garantir que o app use o modo de reconhecimento de módulo, inclua um arquivo go.mod na raiz do seu aplicativo.

Disponibilização de pacotes de terceiros para dependências

A disponibilização de pacotes de terceiros copia os pacotes que seu aplicativo usa para o diretório do aplicativo em vez de fazer o download dos módulos das fontes durante o processo de criação. O Go fornece o comando para disponibilizar pacotes de terceiros necessários para seu aplicativovendor em um diretório chamado no diretório raiz do aplicativo.

Configurar o ponto de entrada do aplicativo

Por padrão, o buildpack do Go configura a entrada do contêiner do aplicativo para invocar o executável main produzido ao compilar a origem do aplicativo. Se você precisar substituir isso, forneça um Procfile ou transmita a variável de ambiente GOOGLE_ENTRYPOINT.

Variáveis de ambiente

O buildpack do Go é compatível com as variáveis de ambiente a seguir para personalizar o contêiner.

GO

Consulte a documentação do Go sobre Variáveis de ambiente.

Exemplo: GOFLAGS=-flag=value transmite -flag=value para comandos go.