'Node.js Application in container starts and crashes

I have a node.js application talking to mongo database working fine locally. Mongodb is running on my lap top locally and the application is started in vscode with npm run dem. This all works fine.

The application is containerized and starts normally with same commands. However after a few seconds it crashes. I have tried different format of docker files, docker compose, I have searched google and could not find any solution Any help would be appreciated.

Here is my docker file

FROM node:14.15.3
ENV APP_HOME=/home/node/app
ENV NODE_ENV=production
ENV NODE_PORT=3002
RUN mkdir -pv $APP_HOME && chown -R node:node $APP_HOME
WORKDIR $APP_HOME
USER node
COPY --chown=node:node package.json $APP_HOME/
RUN npm install && npm cache clean --force
COPY --chown=node:node . . 
RUN npm run  build
EXPOSE $NODE_PORT
CMD ["node","./dist/server.generated.js"]

Here are the logs

docker run --name test --net app-net  -p 3002:3002 test 
Server started on port 3002.
Material-UI: theme.mixins.gutters() is deprecated.
      
/home/node/app/dist/server.generated.js:1
module.exports=function(e){var t={};function a(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,a),n.l=!0,n.exports}return a.m=e,a.c=t,a.d=function(e,t,r){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag


docker ps -a 
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS                      PORTS                      NAMES
b69c46eb2e3b   test      "docker-entrypoint.s…"   16 minutes ago   Exited (1) 15 minutes ago                              test
179c0ac2162b   mongo     "docker-entrypoint.s…"   10 days ago      Up 10 days                  0.0.0.0:27017->27017/tcp   app-db

Here is the package.json

{
  "name": "ecommerce",
  "version": "2.0.0",
  "license": "MIT",
  "keywords": [
    "react",
    "express",
    "mongodb",
    "node"
  ],
 
  "main": "./dist/server.generated.js",
  "scripts": {
    "development": "nodemon",
    "build": "webpack --config webpack.config.client.production.js && webpack --mode=production --config webpack.config.server.js",
    "start": "node ./node_modules/pm2/bin/pm2 start ./dist/server.generated.js --name ecommerceapp --log ../logs/app.log ",
    "stop": "node ./node_modules/pm2/bin/pm2 stop ecommerceapp",
    "dem": "node ./dist/server.generated.js"
  },
  "engines": {
    "node": "14.15.3",
    "npm": "8.5.5"
  },
  "devDependencies": {
    "@babel/core": "^7.9.0",
    "@babel/preset-env": "^7.9.0",
    "@babel/preset-react": "^7.9.4",
    "babel-loader": "^8.1.0",
    "file-loader": "^6.0.0",
    "nodemon": "^2.0.2",
    "webpack": "^4.42.1",
    "webpack-cli": "^4.3.1",
    "webpack-dev-middleware": "3.7.2",
    "webpack-hot-middleware": "^2.25.0",
    "webpack-node-externals": "^1.7.2",
    "webpack-dev-server": "^4.7.4"
},
  "dependencies": {
    "@babel/core": "^7.9.0",
    "@babel/preset-env": "^7.9.0",
    "@babel/preset-react": "^7.9.4",
    "babel-loader": "^8.1.0",
    "pm2": "^4.2.0",
    "@hot-loader/react-dom": "^16.13.0",
    "@material-ui/core": "^4.9.8",
    "@material-ui/icons": "^4.9.1",
    "@material-ui/styles": "^4.9.6",
    "body-parser": "^1.19.0",
    "compression": "^1.7.4",
    "cookie-parser": "^1.4.5",
    "cors": "^2.8.5",
    "express": "^4.17.1",
    "express-jwt": "^5.3.1",
    "formidable": "^1.2.2",
    "file-loader": "^6.0.0",
    "helmet": "^3.22.0",
    "jsonwebtoken": "^8.5.1",
    "lodash": "^4.17.15",
    "mongoose": "^5.9.7",
    "query-string": "^6.11.1",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-hot-loader": "^4.12.20",
    "react-router": "^5.1.2",
    "react-router-dom": "^5.1.2",
    "react-stripe-elements": "^6.1.1",
    "request": "^2.88.2",
    "socket.io": "^2.3.0",
    "socket.io-client": "^2.3.0",
    "stripe": "^8.38.0",
    "webpack": "^4.42.1",
    "webpack-cli": "^4.3.1",
    "webpack-dev-middleware": "3.7.2",
    "webpack-hot-middleware": "^2.25.0",
    "webpack-node-externals": "^1.7.2"

  },
  }
}


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source