diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..1c5dcbf --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +# Use an official Node.js runtime as the base image +FROM node:18 + +# Set the working directory inside the container +WORKDIR /app + +# Copy package.json and package-lock.json to install dependencies +COPY backend/package*.json ./ + +# Install dependencies +RUN npm install + +# Copy backend source files +COPY backend /app/backend + +# Copy frontend files and serve them as static assets +COPY frontend /app/frontend + +# Set environment variable to production +ENV NODE_ENV=production + +# Expose the port the app runs on +EXPOSE 3000 + +# Start the application +CMD ["node", "backend/src/server.js"] \ No newline at end of file diff --git a/backend/src/Express/ExpressManager.js b/backend/src/Express/ExpressManager.js index 547b58c..63a4e5a 100644 --- a/backend/src/Express/ExpressManager.js +++ b/backend/src/Express/ExpressManager.js @@ -5,6 +5,7 @@ const path = require("path"); const DataBaseManager = require("../Database/DataBaseManager"); const AccountRoute = require("./Routes/AccountRoute"); const DashboardRoute = require("./Routes/DashboardRoute"); +require("dotenv").config(); class ExpressManager{ /**@param {DataBaseManager} dbManager*/ @@ -26,7 +27,7 @@ class ExpressManager{ this.app.use(bp.urlencoded({extended: false})); this.app.use(express.json()); this.app.use(bp.json()); - this.app.use(express.static(path.join(__dirname, "./../../../frontend"))); + this.app.use(express.static(path.join(__dirname, process.env.FRONTEND_PATH || "./../../../frontend"))); // Routen wo man für Angemeldet sein muss this.authRoutes = [