Criando uma imagem Docker FROM SCRATCH

Sei que isso não é muito usado por ser muito teórico mas gosto de ir no detalhe de algumas coisas. Pense que uma imagem do docker é uma estrutura de uma árvore de dependências. Os arquivos DOCKERFILE sempre começam com um FROM apontando para outra imagem. Mas como fazer a primeira imagem?

Esse tópico explica como criar uma imagem completamente do zero. Para isso vou construir uma pequena aplicação em C para exemplificar.

// hello.c
#include <stdio.h>
void main() { printf("Alo Anselme"); }

para compilar

gcc hello.c -static -o hello

Com isso pronto, vou para meu dockerfile

FROM scratch
COPY hello /
CMD ["/hello"]

Após isso:

docker build -t thiagoanselme/helloanselme
docker run thiagoanselme/helloanselme

Criando uma imagem FROM SCRATCH com parametros

Essa é uma pequena variante da primeira, suportando a passagem de um parametro. Vamos lá:

Compilando

gcc hello.c -static -o hello

Dockerfile

FROM scratch
COPY hello /
ENTRYPOINT ["/hello"]
CMD ["Anselme"]

Depois

docker build -t thiagoanselme/helloanselme:parameter
docker run thiagoanselme/helloanselme:parameter
docker run thiagoanselme/helloanselme:parameter "Thiago Anselme"

Thiago Anselme
Thiago Anselme - Gerente de TI - Arquiteto de Soluções

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.

Deixe um comentário