diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..c6dbfdc --- /dev/null +++ b/.dockerignore @@ -0,0 +1,8 @@ +.idea +data +node_modules +.dockerignore +.eslintrc +.prettierignore +.prettierrc.json +*.iml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0833975 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +FROM node:16-alpine as build +RUN mkdir /build +WORKDIR /build +COPY package*.json ./ +RUN npm ci +COPY tsconfig.json ./ +COPY src/ src/ +RUN npm run build + +FROM node:16-alpine +RUN mkdir /app +COPY --from=build /build/dist ./ +COPY --from=build /build/node_modules/ ./node_modules/ +COPY --from=build /build/package.json . +EXPOSE 3000 +VOLUME /app/data +ENTRYPOINT [ "node", "server.js" ] diff --git a/package.json b/package.json index 5eed6c0..9245b55 100644 --- a/package.json +++ b/package.json @@ -2,11 +2,13 @@ "name": "jira-graph", "version": "1.0.0", "scripts": { - "dev": "run-p copy-resources run-dev", + "dev": "run-p watch-resources run-dev", "run-dev": "nodemon src/server.ts", - "copy-resources": "cpx src/public/**/* dist/public -w", + "watch-resources": "cpx src/public/**/* dist/public -w", + "copy-resources": "cpx src/public/**/* dist/public", "prettyprint": "prettier --write .", - "build": "tsc --project tsconfig.json" + "build": "run-s copy-resources ts-build", + "ts-build": "tsc --project tsconfig.json" }, "type": "module", "dependencies": {