diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..aea4edd --- /dev/null +++ b/.dockerignore @@ -0,0 +1,12 @@ +node_modules +npm-debug.log +.vscode +.DS_STORE +.env + +Dockerfile* +docker-compose* +.dockerignore +*.md +.git +.gitignore \ No newline at end of file diff --git a/.gitignore b/.gitignore index 1dcef2d..0551f1f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ node_modules -.env \ No newline at end of file +npm-debug.log +.vscode +.DS_STORE +.env diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..89d7380 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,27 @@ +ARG NODE_IMAGE=node:14.17.3-alpine3.11 + +FROM ${NODE_IMAGE} as base + +RUN apk --no-cache add dumb-init +RUN mkdir -p /home/node/app && chown node:node /home/node/app +WORKDIR /home/node/app +USER node + +FROM base as dependencies +COPY --chown=node:node ./package*.json ./ +RUN npm ci --only-production + +FROM base as production + +ENV NODE_ENV=production +ENV PG_HOST=localhost +ENV PG_PORT=5432 +ENV PG_USER=postgres +ENV PG_PASSWORD=1234 +ENV PG_DB_NAME=articles + +COPY --chown=node:node ./package*.json ./ +RUN npm ci --production +COPY --chown=node:node . . +EXPOSE 4000 +CMD ["dumb-init", "node", "index.js"] \ No newline at end of file diff --git a/controllers/ArticleController.js b/controllers/ArticleController.js index 914a4dc..8ab9965 100644 --- a/controllers/ArticleController.js +++ b/controllers/ArticleController.js @@ -1,6 +1,6 @@ import http from 'node:http'; import fs from 'node:fs'; -import Response from '#app/Response'; +import Response from '#app/response'; /** * Models diff --git a/controllers/EditorController.js b/controllers/EditorController.js index 3d1ad36..d84bc9f 100644 --- a/controllers/EditorController.js +++ b/controllers/EditorController.js @@ -1,5 +1,5 @@ import http from 'node:http'; -import Response from '#app/Response'; +import Response from '#app/response'; class EditorController { /**