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 emmaindir
.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 parago build
ego 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
.