diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..504afef --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +node_modules/ +package-lock.json diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..9300d21 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,13 @@ +FROM node:23-alpine + +WORKDIR /app + +COPY package.json ./ + +RUN npm install + +COPY . . + +EXPOSE 8080 + +CMD ["node", "server.js"] diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..49fb8ed --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,37 @@ +services: + backend: + build: . + container_name: healoscope-backend + ports: + - "8080:8080" + environment: + PORT: 8080 + MONGODB_URI: mongodb://mongo:27017/healoscope + JWT_SECRET: ${JWT_SECRET} + EMAIL_USER: ${EMAIL_USER} + EMAIL_PASS: ${EMAIL_PASS} + CLOUDINARY_NAME: ${CLOUDINARY_NAME} + CLOUDINARY_API_KEY: ${CLOUDINARY_API_KEY} + CLOUDINARY_API_SECRET: ${CLOUDINARY_API_SECRET} + GEMINI_API_KEY: ${GEMINI_API_KEY} + depends_on: + mongo: + condition: service_healthy + restart: unless-stopped + + mongo: + image: mongo + container_name: healoscope-mongo + ports: + - "27017:27017" + volumes: + - mongo_data:/data/db + restart: unless-stopped + healthcheck: + test: ["CMD", "mongo", "--quiet", "127.0.0.1/healoscope", "--eval", "db.runCommand('ping').ok"] + interval: 10s + timeout: 5s + retries: 5 + +volumes: + mongo_data: diff --git a/server.js b/server.js index 0a8dc92..d9fc4e0 100644 --- a/server.js +++ b/server.js @@ -5,7 +5,7 @@ import bodyParser from "body-parser"; import cors from "cors"; import mainRouter from "./routes/mainRouter.js"; -const PORT = process.env.PORT | 8080; +const PORT = process.env.PORT || 8080; const URI = process.env.MONGODB_URI; @@ -25,4 +25,4 @@ app.listen(PORT, async () => { // app.get("/", (req, res) => { // res.send("Hello, I'm root"); -// }) \ No newline at end of file +// })