innot

Untitled

May 11th, 2020
16
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.27 KB | None | 0 0
  1.  
  2. # build
  3. # одноразовый контейнер
  4. FROM node:latest as build
  5.  
  6. ARG BUILD_DIR=/build
  7. # создание директории приложения
  8. WORKDIR $BUILD_DIR
  9.  
  10. # установка зависимостей
  11. # символ астериск ("*") используется для того чтобы по возможности
  12. # скопировать оба файла: package.json и package-lock.json
  13. COPY package*.json \
  14. tsconfig.json \
  15. ./
  16.  
  17. COPY src src
  18.  
  19. RUN echo ${BUILD_DIR}
  20.  
  21. RUN npm i
  22. RUN npm run build
  23.  
  24. # ---------------------------------------
  25. # build end
  26. #
  27. # app
  28. # ---------------------------------------
  29. RUN echo "1\n"; test -n "$BUILD_DIR" || (echo "BUILD_DIR not set" && false)
  30. FROM node:14-alpine as production
  31. RUN echo "2\n"; test -n "$BUILD_DIR" || (echo "BUILD_DIR not set" && false)
  32. ARG PM2_CONFIG=out/config/ecosystem.config.js
  33.  
  34. #RUN apt-get update && apt-get install -y \
  35. # build-essential
  36.  
  37. RUN npm i -g pm2
  38.  
  39. # создание директории приложения
  40. WORKDIR /usr/local/app
  41.  
  42. RUN echo ${BUILD_DIR}
  43.  
  44. COPY --from=build /build/out out
  45. COPY --from=build /build/node_modules node_modules
  46.  
  47. #EXPOSE # бот использует поллинг
  48.  
  49. CMD pm2 start ${PM2_CONFIG} && pm2 logs
Advertisement
Add Comment
Please, Sign In to add comment