Para construir uma imagem para um código em Golang você pode utilizar como referência esse repositório do github https://github.com/Anselming/nginx-complete/tree/main/mainline/withgolang. Nele faço um conjunto de estudos sobre o uso do docker, otimização de imagens e afins. Note que a solução em go possui a estrutura a seguir:
- /app (pasta com os códigos escritos em go
- .dockerignore (arquivo semelhante ao gitignore)
- dockerfile (arquivo de base para criação da imagem)
- README.md (arquivo de read-me para o git)
Arquivo anselme.go (apenas um hello world em go)
package main import "fmt" func main(){ fmt.Println("Hello Anselme") }
Arquivo .dockerignore
passphrase.txt logs/ .git *.md .cache dockerfile
Arquivo dockerfile
FROM alpine:latest AS stage1 WORKDIR /app COPY /app . RUN apk add --no-cache go RUN go build app.go FROM scratch AS stage2 # essa imagem pesa < 2 MB WORKDIR /app COPY --from=stage1 /app . CMD ["./app"]
Para criar a imagem e o container basta usar a linha de comando
docker build -t imagemgo . docker run imagemgo
Ele atua/atuou como Dev Full Stack C# .NET / Angular / Kubernetes e afins. Ele possui certificações Microsoft MCTS (6x), MCPD em Web, ITIL v3 e CKAD (Kubernetes) . Thiago é apaixonado por tecnologia, entusiasta de TI desde a infância bem como amante de aprendizado contínuo.