Tarcísio Corte
Posted on January 11, 2022
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
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 .
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
Imagem pronta, então vamos rodar esse container.
docker run -d -p 8080:80 app-demo:v1
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/
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.
Posted on January 11, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.