Link da imagem: https://hub.docker.com/repository/docker/yohanaf/fullcycle/general
Passo a passso:
-
Criação do programa
main.go
. -
Compilação do programa Go com a opção de compilação estática e arquitetura alpine.
CGO_ENABLED=0 go build -ldflags="-w -s" main.go
Explicação:
CGO_ENABLED=0
: Desabilita a ligação CGo, garantindo que a compilação do binário seja estática.-ldflags="-w -s"
: Passa flags para o linker,-w
desabilita a geração de informações de depuração e-s
desabilita a geração da tabela de símbolos, fazendo com que o binário final tenha um tamanho menor. -
Criação do
Dockerfile
no mesmo diretório. -
Compilação da imagem Docker.
docker build -t fullcycle-rocks-image .
-
Verificação do tamanho da imagme gerada (precisa ter menos de 2MB).
docker images | grep fullcycle-rocks-image
-
Verificação do print "FullCycle Rocks!".
docker run --rm fullcycle-rocks-image
-
Login no Docker Hub.
docker login
-
Alteração do nome da imagem para ser o mesmo do repositório no Docker Hub.
docker tag fullcycle-rocks-image usuario/fullcycle
-
Push da imagem no Docker Hub.
docker push usuario/fullcycle
-
Execução da imagem a partir do Docker Hub.
docker run --rm usuario/fullcycle