ElieltonRamos / DockerUniverse

Apresento o resultado do projeto Docker-todo-list do módulo back-end da Trybe. Neste projeto, desenvolvi meus conhecimentos em Docker, enfrentando uma série de desafios para aprofundar minha compreensão sobre o funcionamento dessa incrível ferramenta.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Docker Universe - Aprendendo sobre Docker

Docker Universe

Repositório

Apresento o resultado do projeto Docker-todo-list do módulo back-end da Trybe. Neste projeto, desenvolvi meus conhecimentos em Docker, enfrentando uma série de desafios para aprofundar minha compreensão sobre o funcionamento dessa incrível ferramenta. Com o Docker, fui capaz de criar ambientes de desenvolvimento altamente isolados e portáteis, tornando mais eficiente a execução de aplicativos e serviços em diferentes plataformas. Além disso, aprendi a definir configurações de contêineres por meio de arquivos Dockerfile e a gerenciar vários contêineres usando o Docker Compose. Essas habilidades são inestimáveis para minha carreira no desenvolvimento de software, pois permitem uma implantação mais rápida, um gerenciamento de recursos mais eficaz e a adoção de práticas DevOps modernas. Em resumo, o projeto Docker-todo-list foi uma oportunidade valiosa para solidificar meu conhecimento em Docker e sua aplicação prática no desenvolvimento de software.

O que e Docker?

O Docker é um software de código aberto usado para implantar aplicativos dentro de containers virtuais. A conteinerização permite que vários aplicativos funcionem em diferentes ambientes complexos. Por exemplo: o Docker permite executar o WordPress em sistemas Windows, Linux e macOS, sem problemas.

Índice

Sobre o Projeto

Durante o desenvolvimento deste projeto Docker, adquiri habilidades fundamentais em relação à criação, configuração e gerenciamento de contêineres Docker. Isso incluiu a compreensão dos princípios de isolamento de aplicativos e o uso eficiente de imagens para garantir a consistência em diferentes ambientes. Além disso, aprendi a automatizar tarefas de infraestrutura e a orquestrar serviços com o Docker Compose, tornando possível criar ambientes escaláveis e altamente eficientes para implantação de aplicações. Essas habilidades são cruciais para o desenvolvimento e gerenciamento eficaz de aplicações e ambientes em contêineres Docker, permitindo implantações consistentes e eficientes.

Tecnologias Utilizadas

Funcionalidades

Cria um container em modo interativo sem inicia-lo e ele estará no estado "created" e não estará em execução.

Inicialização, listagem e remoção de contêineres.

Execução de comandos em contêineres sem acoplar a eles.

Download de imagens sem a criação de contêineres.

Configuração de contêineres em segundo plano com mapeamento de portas.

Construção de imagens personalizadas a partir de Dockerfiles.

Exposição de portas e definição de diretórios de trabalho nas imagens.

Manipulação de arquivos e comandos específicos durante a criação de imagens.

Integração de imagens personalizadas em um ambiente de orquestração com Docker Compose.

Compreensão de como contêineres e imagens podem ser usados para isolar, implantar e gerenciar aplicativos de forma eficiente.

Instalação e Uso

Siga os passos abaixo para rodar o projeto localmente:

  1. Clone o repositório:
 git clone git@github.com:ElieltonRamos/DockerUniverse.git
  1. Navegue para o diretório do projeto:
cd DockerUniverse
  1. Instale as dependências:
npm install
  1. Navegue ate a pasta docker-commands
cd ./docker/docker-commands

Os arquivos principais do projeto estão na pasta docker, na raiz do projeto. Nela estão contidos:

Pasta docker-commands: onde ficarão os comandos exigidos pelos requisitos
Pasta todo-app: onde fica a nossa pseudo-aplicação, que servirá como base para nossos Dockerfiles e Compose

⚠️ Configurações mínimas para execução do projeto

Na sua máquina você deve ter:

  • Sistema Operacional Distribuição Unix
  • Node versão 16
  • Docker
  • Docker-compose versão >=1.29.2

➡️ O node deve ter versão igual ou superior à 16.14.0 LTS:

  • Para instalar o nvm, acesse esse link;
  • Rode os comandos abaixo para instalar a versão correta de node e usá-la:
    • nvm install 16.14 --lts
    • nvm use 16.14
    • nvm alias default 16.14

➡️ O docker-compose deve ter versão igual ou superior àˆ1.29.2:

Testes

Certifique-se de que o Docker esteja instalado corretamente para que o avaliador funcione adequadamente. Link para Instalação do docker

Aqui também é importante que o seu usuário esteja no grupo docker (para que não haja a necessidade de rodar comandos utilizando o sudo)

O avaliador cria um container especial para executar a avaliação de comandos, Dockerfiles e docker-compose.

Esse container é temporário, portanto, ao começar ou terminar os testes locais, o avaliador remove automaticamente esse mesmo container, assim como seu volume associado.

O volume desse container mapeia a pasta ./docker/ do seu projeto, para dentro dele, ou seja, a raiz desse container vai conter as pastas ./docker-commands/, ./todo-app/ e seu arquivo ./docker-compose.yml quando estiver pronto.

Obs.: Caso o seu projeto esteja localizado em um diretório que contenha espaço no nome, os testes falharão (Exemplo: Area de trabalho). Nesse caso basta mover o projeto de pasta ou renomeá-lo (Exemplo: area-de-trabalho). Isso acontece porque o comando docker usado nos testes irá entender que o espaço no nome significa que está passando algum tipo de opção ou complemento extra.

É necessário ter o Docker instalado corretamente na sua máquina para rodar os testes locais.

Todos os requisitos do projeto serão testados automaticamente por meio do Jest. Basta executar o comando abaixo:

npm test

Autor

Elielton Ramos

Envie-me um e-mail Linkedin

Agradecimentos

Sou grato à Trybe por proporcionar esse desafio enriquecedor e pela oportunidade de aprimorar minhas habilidades como desenvolvedor. Estou empolgado para aplicar os conhecimentos adquiridos em projetos futuros e continuar minha jornada de evolução profissional.

Licença

Código Aberto (Open Source)

Este projeto é de código aberto e está disponível para toda a comunidade. Fique à vontade para explorar, clonar e contribuir para o projeto.

About

Apresento o resultado do projeto Docker-todo-list do módulo back-end da Trybe. Neste projeto, desenvolvi meus conhecimentos em Docker, enfrentando uma série de desafios para aprofundar minha compreensão sobre o funcionamento dessa incrível ferramenta.


Languages

Language:JavaScript 83.9%Language:HTML 8.1%Language:CSS 6.1%Language:Dockerfile 1.9%