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"
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.