ANÚNCIO

#03 – Criando uma imagem e um container Docker para uma API em NodeJS | Thi code

Aprenda a criar imagens e containers Docker para APIs em Node.js. Tutorial completo do Docker do zero.

⏱ 22min 👁 30.051 visualizações 📅 novembro 1, 2023

Resumo

Introdução ao Docker para APIs Node.js

Este vídeo apresenta um guia prático sobre como criar imagens Docker e configurar containers para uma API desenvolvida em Node.js. O conteúdo faz parte da série #03 do canal Thiago Veigah, especificamente focado em containerização de aplicações JavaScript. Docker é uma tecnologia essencial no desenvolvimento moderno, permitindo que desenvolvedores empacotem suas aplicações com todas as dependências necessárias, garantindo que o código funcione de forma consistente em qualquer ambiente, seja na máquina local, em servidores de desenvolvimento ou em ambientes de produção.

O que é Docker e por que usar

Docker é uma plataforma de containerização que revoluciona a forma como desenvolvemos e implantamos aplicações. Um container Docker é uma unidade padronizada que encapsula todo o código, bibliotecas, dependências do sistema operacional e configurações necessárias para executar uma aplicação. A grande vantagem é eliminar o problema clássico "funciona na minha máquina" que afeta muitos projetos. Quando um desenvolvedor entrega um container Docker, qualquer pessoa que o execute obterá exatamente o mesmo ambiente, com as mesmas versões de bibliotecas e configurações, independentemente de seu sistema operacional ou configuração local.

Estrutura básica do Dockerfile

O primeiro passo para containerizar uma API em Node.js é criar um Dockerfile, que é um arquivo de configuração contendo instruções para construir uma imagem Docker. O Dockerfile funciona como um script que define qual imagem base será usada (por exemplo, uma imagem oficial do Node.js), quais comandos serão executados durante a construção, quais arquivos serão copiados para dentro do container e qual comando será executado quando o container for iniciado. A estrutura típica começa com uma instrução FROM, que específica a imagem base, seguida por instruções COPY para copiar os arquivos do projeto, RUN para instalar dependências e ENTRYPOINT ou CMD para definir o comando de inicialização.

Criando a imagem Docker da API

O processo de criação de uma imagem Docker para a API Node.js envolve definir corretamente o ambiente de execução. Comumente, utiliza-se uma imagem base como node:18 ou uma versão mais recente, que já vem com Node.js e npm instalados. No Dockerfile, é necessário específicar o diretório de trabalho dentro do container, copiar o arquivo package.json e package-lock.json para instalar as dependências com npm install, e finalmente copiar o restante do código-fonte. Este processo garante que todas as dependências listadas no package.json sejam instaladas exatamente como específicado, mantendo consistência entre ambientes.

Configuração do container e variáveis de ambiente

Ao criar um container a partir da imagem Docker, é importante configurar adequadamente as variáveis de ambiente e as portas que a API irá expor. A instrução EXPOSE no Dockerfile documenta qual porta a aplicação Node.js está ouvindo, embora não éxponha automaticamente a porta do host. Quando executar o container com docker run, é necessário mapear a porta interna do container para uma porta no host usando a flag -p, por exemplo -p 3000:3000. Variáveis de ambiente importantes, como configurações de banco de dados, tokens de autenticação e modo de desenvolvimento, podem ser definidas usando a instrução ENV no Dockerfile ou passadas em tempo de execução com a flag -e.

Docker Hub e distribuição de imagens

Após criar a imagem Docker localmente, o próximo passo natural é compartilhá-la e armazená-la em um registro de imagens. Docker Hub é o repositório público oficial onde desenvolvedores podem fazer upload de suas imagens Docker e compartilhá-las com a comunidade ou mantê-las privadas para uso pessoal ou empresarial. Para publicar uma imagem no Docker Hub, é necessário criar uma conta, fazer login usando docker login e utilizar docker push para enviar a imagem. Este processo é fundamental para integração contínua e implantação contínua em ambientes profissionais, permitindo que diferentes máquinas baixem e executem a mesma imagem de forma confiável.

Boas práticas na containerização

Ao construir imagens Docker para APIs Node.js, existem várias boas práticas que melhoram segurança, performance e manutenibilidade. Uma prática importante é usar imagens base otimizadas, como node:18-alpine, que são significativamente menores do que as imagens padrão, reduzindo tempo de download e espaço em disco. Também é recomendado evitar rodar a aplicação como root dentro do container, criando um usuário específico para melhor segurança. Adicionar um arquivo .dockerignore similar ao .gitignore ajuda a excluir arquivos desnecessários da imagem, reduzindo seu tamanho. Além disso, estruturar o Dockerfile para aproveitar cache de camadas durante builds incrementais pode acelerar significativamente o processo de construção.

Integração com repositório do projeto

O vídeo referencia o repositório ThiCodeWallet no GitHub, que contém o código-fonte da API Node.js sendo containerizada. Estudar este repositório oferece contexto prático sobre como um projeto real é estruturado, como as dependências são gerenciadas e como o Dockerfile é implementado para este caso específico. Ter acesso ao código completo permite que aprendizes experimentem criar suas próprias imagens Docker, fazer modificações e entender exatamente como cada instrução do Dockerfile afeta o funcionamento final do container.

O que você vai aprender

  • Criar um Dockerfile funcional para uma API Node.js
  • Construir imagens Docker a partir de um Dockerfile
  • Configurar e executar containers Docker com mapeamento de portas
  • Publicar imagens no Docker Hub
  • Aplicar boas práticas de segurança e otimização em containers
  • Gerenciar variáveis de ambiente em ambientes containerizados

Conceitos abordados

Tecnologias utilizadas

Capítulos 8 marcações

  1. Introdução ao Docker e containerização
  2. Instalação e configuração do Docker
  3. Criando o Dockerfile para API Node.js
  4. Estrutura do package.json e dependências
  5. Construindo a imagem Docker
  6. Executando o container e testando a API
  7. Publicando a imagem no Docker Hub
  8. Conclusão e próximos passos

Próximo vídeo sugerido

Avaliações

Avaliação dos alunos 0.0
0 avaliações
Avalie esta aula

Ajude outros alunos a entenderem se esta aula foi útil.

Ainda não há avaliações. Seja o primeiro a avaliar esta aula.