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_BUILDABLE
Especifica o caminho para uma unidade compilável. Exemplo:./maindir
para Go cria o pacote com raiz emmaindir
.GOOGLE_CLEAR_SOURCE
Omita 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
,1
limpam a origem.GOOGLE_GOGCFLAGS
Transmitido ago build
ego run
como valor-gcflags
sem interpretação. Exemplo:all=-N -l
ativa 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_GOLDFLAGS
Transmitido para go build e go run como valor-ldflags
sem 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
.