diff --git a/backend/Dockerfile b/backend/Dockerfile index e4d283a77..06db22b62 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,18 +1,27 @@ -FROM node:16-bullseye-slim +# Build stage +FROM node:16-alpine AS build WORKDIR /app -COPY package.json package-lock.json ./ - -# RUN npm ci --only-production --ignore-scripts -# "prepare": "cd .. && npm install" - +COPY package*.json ./ RUN npm ci --only-production COPY . . +RUN npm run build + +# Production stage +FROM node:16-alpine + +WORKDIR /app + +COPY package*.json ./ +RUN npm ci --only-production + +COPY --from=build /app . HEALTHCHECK --interval=10s --timeout=3s --start-period=10s \ CMD node healthcheck.js +EXPOSE 4000 -CMD ["npm", "run", "start"] +CMD ["npm", "run", "start"] \ No newline at end of file diff --git a/backend/package.json b/backend/package.json index 89bd52b07..795fc68ed 100644 --- a/backend/package.json +++ b/backend/package.json @@ -48,7 +48,7 @@ "version": "1.0.0", "main": "src/index.js", "scripts": { - "start": "npm run build && node build/index.js", + "start": "node build/index.js", "dev": "nodemon", "swagger-autogen": "node ./swagger/index.ts", "build": "rimraf ./build && tsc && cp -R ./src/templates ./build", diff --git a/docker-compose.yml b/docker-compose.yml index 6143695f5..f1b8f7d05 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3' +version: "3" services: nginx: @@ -22,7 +22,6 @@ services: depends_on: - mongo image: infisical/backend - command: npm run start env_file: .env environment: - NODE_ENV=production