Especificar a versão do Go
Por predefinição, o buildpack Go usa a versão estável mais recente do compilador Go. Se a sua aplicação precisar de uma versão específica, pode usar a variável de ambiente GOOGLE_GO_VERSION para fornecer uma restrição semver que será usada para selecionar uma versão Go disponível.
pack build sample-go --builder=gcr.io/buildpacks/builder \
--env GOOGLE_GO_VERSION="17.x.x"
Sinalizações de compilação
O buildpack Go compila a origem da sua aplicação num ficheiro executável através do go build command. As seguintes variáveis de ambiente podem ser usadas para configurar o comportamento de compilação:
GOOGLE_BUILDABLEEspecifica o caminho para uma unidade compilável. Exemplo:./maindirpara Go cria o pacote com raiz emmaindir.GOOGLE_CLEAR_SOURCEOmita o código fonte da imagem da aplicação. Se a aplicação depender de ficheiros estáticos, como modelos Go, a definição desta variável pode fazer com que a aplicação tenha um comportamento anormal. Exemplo:true,True,1limpam a origem.GOOGLE_GOGCFLAGSTransmitido ago buildego runcomo valor-gcflagssem interpretação. Exemplo:all=-N -lativa a análise de condição de corrida e altera a forma como os caminhos dos ficheiros de origem são registados no ficheiro binário.GOOGLE_GOLDFLAGSTransmitido para go build e go run como valor-ldflagssem interpretação. Exemplo:-s -wé usado para remover e reduzir o tamanho binário.
Gerir dependências
Recomendamos que use módulos Go para gerir dependências na sua app Go. O buildpack Go usa o comando go build para criar a sua app e, por isso, corresponde ao comportamento do próprio Go. Para garantir que a sua app usa o modo compatível com módulos, deve incluir um ficheiro go.mod na raiz da aplicação.
Fornecimento de dependências
A venda de terceiros copia os pacotes que a sua app usa para o diretório da aplicação, em vez de transferir módulos das respetivas origens durante o processo de compilação. O Go fornece o comando go build para fornecer os pacotes de que a sua app precisa num diretório denominado vendor no diretório raiz da app.
Configure o ponto de entrada da aplicação
Por predefinição, o buildpack do Go configura a entrada do contentor da aplicação para invocar o executável main produzido quando compila a origem da aplicação. Se precisar de substituir esta opção, pode fazê-lo fornecendo um Procfile ou transmitindo a variável de ambiente GOOGLE_ENTRYPOINT.
Variáveis de ambiente
O buildpack Go suporta as seguintes variáveis de ambiente para personalizar o seu contentor
GO
Consulte a documentação do Go sobre variáveis de ambiente
Exemplo: GOFLAGS=-flag=value transmite comandos -flag=value para go.