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 /app/package.json
|
||||||
|
|
||||||
COPY package.json ./
|
|
||||||
|
|
||||||
RUN npm install
|
RUN npm install
|
||||||
|
|
||||||
COPY build ./
|
RUN npm install -g cross-env
|
||||||
|
|
||||||
|
COPY . /app
|
||||||
|
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
EXPOSE 3001
|
EXPOSE 3001
|
||||||
|
|
||||||
CMD ["node", "server.js"]
|
CMD ["node", "build/server.js"]
|
||||||
|
|||||||
13
package.json
13
package.json
@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "evo_calculator",
|
"name": "evo_calculator",
|
||||||
"version": "0.0.1",
|
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@apollo/client": "^3.2.5",
|
"@apollo/client": "^3.2.5",
|
||||||
@ -25,7 +24,6 @@
|
|||||||
"express-ntlm": "^2.5.2",
|
"express-ntlm": "^2.5.2",
|
||||||
"graphql": "^15.4.0",
|
"graphql": "^15.4.0",
|
||||||
"helmet": "^4.1.0",
|
"helmet": "^4.1.0",
|
||||||
"http-errors": "^1.8.0",
|
|
||||||
"lodash": "^4.17.20",
|
"lodash": "^4.17.20",
|
||||||
"luxon": "^1.25.0",
|
"luxon": "^1.25.0",
|
||||||
"mobx": "^6.0.0",
|
"mobx": "^6.0.0",
|
||||||
@ -62,13 +60,10 @@
|
|||||||
"@types/morgan": "^1.9.1",
|
"@types/morgan": "^1.9.1",
|
||||||
"@types/node": "^14.14.6",
|
"@types/node": "^14.14.6",
|
||||||
"@types/pluralize": "^0.0.29",
|
"@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-components": "^5.1.2",
|
||||||
"@types/styled-system": "^5.1.10",
|
"@types/styled-system": "^5.1.10",
|
||||||
"agentkeepalive": "^4.1.3",
|
|
||||||
"cross-env": "^7.0.2",
|
"cross-env": "^7.0.2",
|
||||||
"dotenv": "^8.2.0",
|
|
||||||
"faker": "^5.1.0",
|
|
||||||
"http-proxy-middleware": "^1.0.6",
|
"http-proxy-middleware": "^1.0.6",
|
||||||
"rimraf": "^3.0.2",
|
"rimraf": "^3.0.2",
|
||||||
"webpack-cli": "^4.0.0",
|
"webpack-cli": "^4.0.0",
|
||||||
@ -77,13 +72,13 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "craco test",
|
"test": "craco test",
|
||||||
"eject": "react-scripts eject",
|
"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:only": "craco start",
|
||||||
"dev:client": "wait-on -l tcp:3001 && 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: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",
|
"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:client": "craco build",
|
||||||
"build:server": "cross-env NODE_ENV=production webpack --config webpack.config.server.js"
|
"build:server": "cross-env NODE_ENV=production webpack --config webpack.config.server.js"
|
||||||
},
|
},
|
||||||
|
|||||||
@ -1,23 +1,17 @@
|
|||||||
import bodyParser from 'body-parser';
|
import bodyParser from 'body-parser';
|
||||||
import compression from 'compression';
|
import compression from 'compression';
|
||||||
import cors from 'cors';
|
import cors from 'cors';
|
||||||
// import cookieParser from "cookie-parser";
|
|
||||||
import express from 'express';
|
import express from 'express';
|
||||||
|
import ntlm from 'express-ntlm';
|
||||||
import helmet from 'helmet';
|
import helmet from 'helmet';
|
||||||
import morgan from 'morgan';
|
import morgan from 'morgan';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import 'reflect-metadata';
|
import 'reflect-metadata';
|
||||||
import routes from './routes';
|
|
||||||
import ntlm from 'express-ntlm';
|
|
||||||
import { SERVER_PORT } from './../core/constants/urls';
|
import { SERVER_PORT } from './../core/constants/urls';
|
||||||
|
import routes from './routes';
|
||||||
|
|
||||||
const isDevelopmentMode = process.env.NODE_ENV === 'development';
|
const isDevelopmentMode = process.env.NODE_ENV === 'development';
|
||||||
|
|
||||||
const buildDir = path.join(
|
|
||||||
process.cwd(),
|
|
||||||
process.env.NODE_ENV === 'development' ? '/build' : '',
|
|
||||||
);
|
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
|
|
||||||
/** AUTHENTICATION */
|
/** AUTHENTICATION */
|
||||||
@ -31,7 +25,7 @@ if (!isDevelopmentMode)
|
|||||||
/** AUTHENTICATION */
|
/** AUTHENTICATION */
|
||||||
|
|
||||||
/**EXTENTIONS */
|
/**EXTENTIONS */
|
||||||
app.use(cors({ origin: isDevelopmentMode && '*', credentials: true }));
|
app.use(cors({ origin: isDevelopmentMode && '*' }));
|
||||||
app.use(helmet({ contentSecurityPolicy: { reportOnly: true } }));
|
app.use(helmet({ contentSecurityPolicy: { reportOnly: true } }));
|
||||||
app.use(bodyParser.json());
|
app.use(bodyParser.json());
|
||||||
app.use(
|
app.use(
|
||||||
@ -39,7 +33,6 @@ app.use(
|
|||||||
extended: true,
|
extended: true,
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
// app.use(cookieParser());
|
|
||||||
app.use(compression());
|
app.use(compression());
|
||||||
app.use(morgan(isDevelopmentMode ? 'dev' : 'tiny'));
|
app.use(morgan(isDevelopmentMode ? 'dev' : 'tiny'));
|
||||||
/**EXTENTIONS */
|
/**EXTENTIONS */
|
||||||
@ -50,14 +43,15 @@ app.use('/', routes);
|
|||||||
|
|
||||||
/**CLIENT */
|
/**CLIENT */
|
||||||
if (!isDevelopmentMode) {
|
if (!isDevelopmentMode) {
|
||||||
app.use(express.static(buildDir));
|
app.use(express.static(path.resolve('build')));
|
||||||
app.get('*', function (req, res) {
|
app.get('*', function (req, res) {
|
||||||
res.sendFile(path.join(buildDir, 'index.html'));
|
res.sendFile('index.html');
|
||||||
|
res.send('ok');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
/**CLIENT */
|
/**CLIENT */
|
||||||
|
|
||||||
console.log(process.env.NODE_ENV);
|
|
||||||
app.listen(SERVER_PORT, () => {
|
app.listen(SERVER_PORT, () => {
|
||||||
|
console.log('ENV: ', process.env.NODE_ENV);
|
||||||
console.log(`Server now listening on port: ${SERVER_PORT}`);
|
console.log(`Server now listening on port: ${SERVER_PORT}`);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user