|
1 | | -# docker run -it node:8.12-alpine /bin/bash |
2 | | -# ---- Base Node ---- |
3 | | -FROM node:10-alpine AS base |
4 | | -# Preparing |
| 1 | +FROM node:14-alpine AS base |
| 2 | +RUN apk add --update bash && rm -rf /var/cache/apk/* |
5 | 3 | RUN mkdir -p /var/app && chown -R node /var/app |
6 | | -# Set working directory |
7 | 4 | WORKDIR /var/app |
8 | | -# Copy project file |
9 | | -COPY package.json . |
10 | | -COPY package-lock.json . |
11 | | - |
12 | | -# |
13 | | -# ---- Dependencies ---- |
14 | | -FROM base AS dependencies |
15 | | -RUN apk add --update python build-base |
16 | | -# install node packages |
17 | | -RUN npm ci --only=prod --silent |
18 | | -# copy production node_modules aside |
19 | | -RUN cp -R node_modules prod_node_modules |
20 | | -# install ALL node_modules, including 'devDependencies' |
21 | | -RUN npm ci --silent |
22 | | -# Run in production mode |
23 | | - |
24 | | -# |
25 | | -# ---- Test & Build ---- |
26 | | -# run linters, setup and tests |
27 | | -FROM dependencies AS build |
28 | 5 | COPY . . |
29 | | -# Setup environment variables |
30 | | -RUN npm run build |
31 | | - |
32 | | -# |
33 | | -# ---- Release ---- |
34 | | -FROM base AS release |
35 | | -RUN apk add --update bash && rm -rf /var/cache/apk/* |
36 | | -# copy production node_modules |
37 | | -COPY --from=dependencies /var/app/prod_node_modules ./node_modules |
38 | | -COPY --from=build /var/app/build ./build |
39 | | -# COPY --from=build /var/app/source ./source |
40 | | - |
41 | | -# Setup environment variables |
| 6 | +RUN npm ci --only=prod --silent |
42 | 7 | ENV NODE_ENV=production |
43 | | -# expose port and define CMD |
44 | | -EXPOSE 4000 |
| 8 | +EXPOSE 3000 |
| 9 | +HEALTHCHECK --interval=30s --timeout=5s CMD curl --fail http://0.0.0.0:3000 || exit 1 |
45 | 10 | CMD npm run start |
0 commit comments