finally: fix docker build and run app
This commit is contained in:
parent
f0ebe75840
commit
c27186e14f
16
Dockerfile
16
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"]
|
||||
CMD ["node", "build/server.js"]
|
||||
|
||||
13
package.json
13
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"
|
||||
},
|
||||
|
||||
@ -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}`);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user