capaci / fc-docker-go

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Desafio Full Cycle - Docker

Criar uma imagem Docker para rodar a aplicação Go, com menos de 2MB.

O código desse desafio é baseado no exemplo ping do Docker Language Guide.

Primeiro passo, copiei o exemplo do docker. A imagem resultante ficou com aproximadamente 20MB.

Então fui atras de outros exemplos e li um pouco mais sobre as "distroless images" do Google. Seguindo o exemplo desse repositório, com isso consegui reduzir o tamanho da imagem para 8.8MB.

Depois usei a imagem do scratch, que é a mais leve possível, e consegui reduzir para 6.45MB.

Não estava vendo saída, então fui no discord para ver o que o pessoal falava sobre, e descobri que poderíamos usar as flags -ldflags "-s -w" para reduzir o tamanho do binário. Então, adicionei essas flags no Makefile e consegui reduzir para 4.5MB.

No final, vi que não estava fazendo o desafio corretamente. Eu estava tentando criar um webserver que retornava uma pagina html, mas não era isso que o desafio pedia. Então, reescrevi a aplicação go, removendo os pacotes e tudo mais que era necessário para o webserver, e com isso reduzi o tamanho da imagem para 1.22MB.

link do repositório

https://hub.docker.com/r/capaci/fc-docker-go

Para rodar diretamente do docker hub, basta rodar docker run capaci/fc-docker-go

About


Languages

Language:Dockerfile 81.4%Language:Go 18.6%