diff --git a/Dockerfile b/Dockerfile index b74ccd5..4824f41 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,15 +1,17 @@ -FROM node:14-alpine +FROM node:14-alpine as build -ENV NODE_ENV production +WORKDIR /app -WORKDIR /home/app - -COPY package.json ./ +COPY package.json /app/package.json RUN npm install -COPY build ./ +RUN npm install -g cross-env + +COPY . /app + +RUN npm run build EXPOSE 3001 -CMD ["node", "server.js"] \ No newline at end of file +CMD ["node", "build/server.js"] diff --git a/package.json b/package.json index ae4c9f0..2993683 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,5 @@ { "name": "evo_calculator", - "version": "0.0.1", "private": true, "dependencies": { "@apollo/client": "^3.2.5", @@ -25,7 +24,6 @@ "express-ntlm": "^2.5.2", "graphql": "^15.4.0", "helmet": "^4.1.0", - "http-errors": "^1.8.0", "lodash": "^4.17.20", "luxon": "^1.25.0", "mobx": "^6.0.0", @@ -62,13 +60,10 @@ "@types/morgan": "^1.9.1", "@types/node": "^14.14.6", "@types/pluralize": "^0.0.29", - "@types/react-router-dom": "^5.1.5", + "@types/react-router-dom": "^5.1.6", "@types/styled-components": "^5.1.2", "@types/styled-system": "^5.1.10", - "agentkeepalive": "^4.1.3", "cross-env": "^7.0.2", - "dotenv": "^8.2.0", - "faker": "^5.1.0", "http-proxy-middleware": "^1.0.6", "rimraf": "^3.0.2", "webpack-cli": "^4.0.0", @@ -77,13 +72,13 @@ "scripts": { "test": "craco test", "eject": "react-scripts eject", - "dev": "cross-env NODE_ENV=development concurrently -p name -c \"yellow,magenta,blue\" -n \"webpack-server,nodemon-server,CRA\" \"yarn dev:server:webpack\" \"yarn dev:server:nodemon\" \"yarn dev:client\"", + "dev": "cross-env NODE_ENV=development concurrently -p name -c \"yellow,magenta,blue\" -n \"webpack-server,nodemon-server,CRA\" \"npm run dev:server:webpack\" \"npm run dev:server:nodemon\" \"npm run dev:client\"", "dev:client:only": "craco start", "dev:client": "wait-on -l tcp:3001 && craco start", - "dev:server": "concurrently -p name -c \"yellow,magenta\" -n \"webpack-server,nodemon-server\" \"yarn dev:server:webpack\" \"yarn dev:server:nodemon\"", + "dev:server": "concurrently -p name -c \"yellow,magenta\" -n \"webpack-server,nodemon-server\" \"npm run dev:server:webpack\" \"npm run dev:server:nodemon\"", "dev:server:webpack": "webpack --config webpack.config.server.js --watch", "dev:server:nodemon": "rimraf build/server.js && wait-on -l build/server.js && nodemon build/server.js", - "build": "yarn build:client && yarn build:server", + "build": "npm run build:client && npm run build:server", "build:client": "craco build", "build:server": "cross-env NODE_ENV=production webpack --config webpack.config.server.js" }, diff --git a/src/server/index.ts b/src/server/index.ts index 6f7b57d..fa70f88 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -1,23 +1,17 @@ import bodyParser from 'body-parser'; import compression from 'compression'; import cors from 'cors'; -// import cookieParser from "cookie-parser"; import express from 'express'; +import ntlm from 'express-ntlm'; import helmet from 'helmet'; import morgan from 'morgan'; import path from 'path'; import 'reflect-metadata'; -import routes from './routes'; -import ntlm from 'express-ntlm'; import { SERVER_PORT } from './../core/constants/urls'; +import routes from './routes'; const isDevelopmentMode = process.env.NODE_ENV === 'development'; -const buildDir = path.join( - process.cwd(), - process.env.NODE_ENV === 'development' ? '/build' : '', -); - const app = express(); /** AUTHENTICATION */ @@ -31,7 +25,7 @@ if (!isDevelopmentMode) /** AUTHENTICATION */ /**EXTENTIONS */ -app.use(cors({ origin: isDevelopmentMode && '*', credentials: true })); +app.use(cors({ origin: isDevelopmentMode && '*' })); app.use(helmet({ contentSecurityPolicy: { reportOnly: true } })); app.use(bodyParser.json()); app.use( @@ -39,7 +33,6 @@ app.use( extended: true, }), ); -// app.use(cookieParser()); app.use(compression()); app.use(morgan(isDevelopmentMode ? 'dev' : 'tiny')); /**EXTENTIONS */ @@ -50,14 +43,15 @@ app.use('/', routes); /**CLIENT */ if (!isDevelopmentMode) { - app.use(express.static(buildDir)); + app.use(express.static(path.resolve('build'))); app.get('*', function (req, res) { - res.sendFile(path.join(buildDir, 'index.html')); + res.sendFile('index.html'); + res.send('ok'); }); } /**CLIENT */ -console.log(process.env.NODE_ENV); app.listen(SERVER_PORT, () => { + console.log('ENV: ', process.env.NODE_ENV); console.log(`Server now listening on port: ${SERVER_PORT}`); });