DEV Community

Tarcísio Corte
Tarcísio Corte

Posted on

Docker: Simplicidade e praticidade - Parte 2

Na parte 1 dessa série de posts, eu mostrei como baixar a imagem de um container, depois mostrei como montar um container, apagar esse container e por ultimo como deletar a imagem.

Neste post eu começo mostrando como montar uma imagem.

Melhor que isso, vou mostrar como dockerizar
uma aplicação Angular, ou seja uma imagem que roda uma aplicação Angular.

Cenário: Dockerizar uma aplicação Angular com Nginx

Já vou deixar código fonte pronto aqui que ai já fica mais fácil pra quem quiser estudar.

Na raiz da aplicação Angular, crie um arquivo Dockerfile.

# Primeiro passo: compilar e builder código Angular
FROM node:14.17.0 as build
WORKDIR /usr/local/app
COPY ./ /usr/local/app/
RUN npm install
RUN npm run build

# Segundo passo: usar o nginx como server
FROM nginx:latest
COPY --from=build /usr/local/app/dist/app-demo /usr/share/nginx/html

# Exportar a porta 80 que é padrão
EXPOSE 80

Enter fullscreen mode Exit fullscreen mode

Tenha em mente aqui que você precisa do NodeJs e Angular instalados na sua máquina para gerar essa imagem.
No meu caso, instalados nesse momento eu tenho o NodeJs v14.17.0 e Angular v12.0.5.
Agora, vamos rodar o comando para gerar a imagem.

docker build -t app-demo:v1 .
Enter fullscreen mode Exit fullscreen mode

Detalhe: podemos, ao invés de ter um arquivo chamado Dockerfile, poderiamos ter um arquivo chamado dev.dockerfile e outro qa.dockerfile ou/e também mais um chamado prod.dockerfile, então poderia executar o mesmo comando, mas para um arquivo especifico:

docker build -t app-demo:v1 ./qa.dockerfile
Enter fullscreen mode Exit fullscreen mode

Imagem pronta, então vamos rodar esse container.

docker run -d -p 8080:80 app-demo:v1
Enter fullscreen mode Exit fullscreen mode

No comando acima, estamos rodando o container e direcionamos a porta 80 do container para a porta 8080 da máquina que esta rodando o container.
Abra o navegador e digite o endereço http://localhost:8080/

Image description

Conclusão

Nessa continuação de uma série de posts, fiz novamente a demonstração de como é fácil criar containers Docker.
Usar arquivos Dockerfiles é sem dúvida uma das maneiras mais praticas e fáceis de se instanciar containers.

Top comments (0)