diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..14c1566 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +.idea +dist +node_modules +tsconfig.tsbuildinfo +npm-debug.log diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..c9b3a48 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +FROM node:18-buster + +WORKDIR /opt/app + +COPY --chown=node:node package.json . +COPY --chown=node:node package-lock.json . +COPY --chown=node:node tsconfig.json . +COPY --chown=node:node prisma ./prisma/ + +RUN npm install + +COPY . . + +RUN npm run build + +RUN chown node:node /opt/app/ + +USER node + +CMD [ "npm", "run", "start:migrate"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..af5be13 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,24 @@ +services: + postgres: + image: postgres:14 + container_name: postgres + restart: always + ports: + - 5432:5432 + env_file: + - .env + volumes: + - postgres:/var/lib/postgresql/data + + node: + build: + context: . + dockerfile: Dockerfile + depends_on: + - postgres + env_file: + - .env + +volumes: + postgres: + name: arabot-db diff --git a/package.json b/package.json index bcbaabc..28d2a7d 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,8 @@ "scripts": { "build": "tsc", "cleanBuild": "rm -rf ./dist && tsc", - "start": "node dist/index.js" + "start": "node dist/index.js", + "start:migrate": "prisma migrate deploy && npm run start" }, "repository": { "type": "git",