diff --git a/Dockerfile b/Dockerfile
index d1f6e11..c93a629 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,11 +1,22 @@
-FROM node:14
+FROM node:16
WORKDIR .
-COPY package*.json .
-RUN npm i --production
+ARG DATABASE_URL
+ARG GOOGLE_CLIENT_ID
+ARG GOOGLE_CLIENT_SECRET
+ARG AUTH_SECRET
+ARG AUTH_URL
+ARG NEXT_PUBLIC_BASE_URL
+ARG NEXT_PUBLIC_MAPTILER_ACCESS_TOKEN
+ARG SENDGRID_API_KEY
+ARG SENDGRID_SENDER
+COPY package*.json .
+RUN npm ci --production
+RUN npm i --save-dev typescript postcss ts-node
COPY . .
+RUN npm run db:generate
RUN npm run build
EXPOSE 3000
diff --git a/docker-compose.yml b/docker-compose.yml
index 8645ab1..0d28e35 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -2,8 +2,21 @@ version: "3.6"
services:
app:
- build: .
- env_file: .env
+ build:
+ context: .
+ dockerfile: Dockerfile
+ args:
+ DATABASE_URL: ${DATABASE_URL}
+ GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID}
+ GOOGLE_CLIENT_SECRET: ${GOOGLE_CLIENT_SECRET}
+ AUTH_SECRET: ${AUTH_SECRET}
+ AUTH_URL: ${AUTH_URL}
+ NEXT_PUBLIC_BASE_URL: ${NEXT_PUBLIC_BASE_URL}
+ NEXT_PUBLIC_MAPTILER_ACCESS_TOKEN: ${NEXT_PUBLIC_MAPTILER_ACCESS_TOKEN}
+ SENDGRID_API_KEY: ${SENDGRID_API_KEY}
+ SENDGRID_SENDER: ${SENDGRID_SENDER}
+ env_file: .env.production
+ image: computational_puzzles
ports:
- "3000:3000"
volumes:
@@ -17,7 +30,7 @@ services:
image: postgres:9.6
volumes:
- db_data:/var/lib/postgresql/data
- env_file: .env
+ env_file: .env.production
environment:
POSTGRES_USER: computational_puzzles
POSTGRES_PASSWORD: computational_puzzles # This is used to create development database, please change when migrate to production
diff --git a/package.json b/package.json
index defb462..118f564 100644
--- a/package.json
+++ b/package.json
@@ -10,7 +10,10 @@
"lint": "next lint",
"test": "jest --runInBand",
"prettify": "npx prettier --write src/",
- "db:push": "prisma db push"
+ "db:push": "prisma db push",
+ "db:generate": "prisma generate",
+ "migrate:prod": "prisma migrate deploy",
+ "db:seed": "ts-node prisma/seed/index.ts"
},
"dependencies": {
"@maptiler/geocoder": "^1.1.0",
diff --git a/src/pages/puzzles/map/index.tsx b/src/pages/puzzles/map/index.tsx
index 66e868b..30fb7f3 100644
--- a/src/pages/puzzles/map/index.tsx
+++ b/src/pages/puzzles/map/index.tsx
@@ -73,7 +73,7 @@ const PuzzleMap = ({ puzzleInstances }: PuzzleMapProps) => {