Executando verificação de segurança...
1

Configurando dockerFile para API com NodeJs e prisma

Vamos começar buscando uma imagem do node para que possamos utilizar os comando dentro do container Docker:

FROM node:16.15-alpine

O "FROM" no docker, serve para especificar qual imagem eu vou utilizar nesse conteiner, que no meu caso, é uma imagem do NodeJs na versão 16.15 que é uma das versões LTS. O -alpine eu gosto de utilizar, pois ele me traz uma imagem mais leve para ajudar quando subir o container.


Precisamos agora, dizer qual a pasta onde nosso projeto vai ficar, e configuramos assim:

WORKDIR /app

O "WORKDIR" é utilizado para definir a pasta onde o seu projeto vai estar, dentro do docker.


O próximo passo, é copiar alguns arquivos importantes para dentro da pasta que definimos no WORKDIR. São elas: Todos os arquivos package.json, tudo que estiver dentro da pasta prisma, e por fim, o tsconfig.json.

Para copiar esses arquivos, nós utilizamos o COPY da lista de comando do Docker, e a estrutura fica assim:

COPY [pasta ou arquivo] ./

O ./ se refere a pasta que definimos dentro do WORKDIR, e que estaremos enviado o arquivo para a pasta root do arquivo, no nosso caso, a pasta /app.
Para copiar todos os outros que foram citados acima, é só seguir o mesmo padrão:

COPY package.json ./
COPY package-lock.json ./
COPY tsconfig.json ./
COPY ./prisma ./prisma

Esse último caso específico onde eu faço a cópia de todos os arquivos dentro da pasta Prisma do meu projeto, e eu não só envio para dentro da pasta root, como também eu crio uma sub-pasta dentro do nosso "app", também chamado de prisma, para manter o padrão. Então quando o container for criado, dentro dele vai ter um caminho /app/prisma onde todos os arquivos que utilizo no meu projeto local, na minha pasta prisma, estarão disponíveis também, dentro do container docker.


Próximo passo é rodar um comando para o docker lançar no terminal, para que ele baixe todas as dependências do nosso projeto, e também copiar tudo que foi alterado após a instalação das dependências, para dentro da pasta do nosso container. Basta utilizar:

RUN npm install

O comando "RUN" é utilizado quando precisamos que o Docker rode um comando no terminal dentro do container.

COPY . ./

Note que eu estou utilizando o "." para informar que eu quero copiar tudo do meu projeto local, para dentro da nossa pasta do container.


Para finalizar, basta apenas mais um passo:

Precisamos agora startar o nosso projeto dentro do container do Docker, e para isso, vamos utilizar o comando "CMD". Diferente do "RUN" que é utilizado para rodar um comando no terminal para a construção da imagem, o comando "CMD" é utilizado para rodar um comando quando a imagem estiver carregada dentro do container. Vamos utilizar

CMD ["npm", "start"]

Note que a sintaxe é bem diferente do comando "RUN". Nesse caso eu preciso colocar cada parte do meu comando como uma lista, para que o Docker junte tudo no final.

Carregando publicação patrocinada...