Pessoal, Bom dia.
Estou com dúvida em montar meu dockerfile.
Tenho API construída em NODE/TYPESCRIPT. Estou criando o seguinte DOCKERFILE:
- FROM node:18
- ARG NODE_PORT=3001
- ENV NODE_ENV=production \
- PORT=NODE_PORT \
- SECRET=632.....
- EXPOSE $PORT
- COPY package*.json ./
- COPY tsconfig.json ./
- COPY . .
- RUN npm install --save typescript && npm install
- CMD ["npm", "run", "build"]
- CMD ["npm", "run", "start"]
Primeiro, de maneira simples, li a documentação do docker, mas não me ficou claro o uso de RUN, CMD e ENTRYPOINT. Alguém conseguiria explicar de maneira simplificada?
Segundo, como podem ver:
- Em RUN, primeiro faço a instalação do TYPESCRIPT e depois a instalação das dependências do PACKAGE.JSON;
- Depois, estou tentando rodar o comando NPM RUN BUILD, que em PACKAGE.JSON, o comando roda um TSC --BUILD;
- Por fim, feito o BUILD, gostaria de rodar o NPM RUN START, que executa um NODE ./BUILD/INDEX.JS
Quando faço um build do dokcerfile, a imagem é criada, porém, ao dar run, a imagem não sobe.
Alguém poderia me ajudar?
Obrigado.