'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 |
|---|
