Quiz 15 - Docker e Deploy 🐳
1. Qual a principal vantagem de usar Docker para uma aplicação Go?
Ele deixa o código Go mais rápido que o normal
Ele empacota o binário e suas dependências de sistema em um ambiente isolado e idêntico em qualquer lugar
Ele converte o código Go para HTML automaticamente
Ele substitui a necessidade de programar
2. O que é o "Multi-Stage Build" em um Dockerfile?
Um build que roda em vários computadores ao mesmo tempo
Uma técnica de usar um estágio para compilar o código e outro estágio (menor) apenas para rodar o binário final
Um comando que instala várias versões do Docker
Um build que troca de cor no terminal
3. Por que podemos usar a imagem `alpine` ou até `scratch` como base final para o Go?
Porque elas são grátis
Porque binários Go são estáticos e não precisam de um sistema operacional completo para rodar
Porque elas têm o logo de um gopher
Porque elas são mais coloridas
4. Qual comando do Dockerfile define qual comando será executado quando o container subir?
RUN
COPY
CMD
WORKDIR
5. Para que serve o arquivo `docker-compose.yml`?
Para salvar senhas do banco de dados
Para orquestrar e subir múltiplos containers juntos (ex: API + PostgreSQL)
Para traduzir o Docker para português
Para editar o código fonte
6. Como você passa uma variável de ambiente sensível para um container no Docker Compose?
Escrevendo diretamente no código Go
Usando a seção `environment` ou um arquivo `.env`
Gritando para o monitor
Usando um comentário no Dockerfile
7. O que a instrução `COPY --from=builder` faz?
Copia o código do GitHub
Copia arquivos de um estágio anterior do build para o estágio atual
Faz o download de dependências
Move o arquivo para a lixeira
8. No Go, como lemos uma variável de ambiente injetada pelo Docker?
env.Read("NOME")
os.Getenv("NOME")
get.Environment("NOME")
system.Variable("NOME")
9. Qual comando Docker é usado para remover containers parados e liberar espaço?
docker remove all
docker clean
docker system prune
docker format c:
10. O que significa "Orquestração de Containers"?
Tocar música com o computador
Gerenciar o ciclo de vida, escalonamento e rede de vários containers (ex: Kubernetes)
Organizar o código por pastas
Baixar vários containers ao mesmo tempo