[eggjs/egg]Docker容器不能运行

2025-11-20 966 views
1
package.json
{
  "scripts": {
    "start": "egg-scripts start",
  }
}

Dockerfile

FROM node:8.6.0-alpine

RUN apk --update add tzdata \
    && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone \
    && apk del tzdata

RUN mkdir -p /usr/src/app

WORKDIR /usr/src/app

# add npm package
COPY package.json /usr/src/app/package.json

RUN npm i --registry=https://registry.npm.taobao.org

# copy code
COPY . /usr/src/app

EXPOSE 7001

CMD npm start

在 Kitematic 中 创建镜像出现以下Log:

npm info it worked if it ends with ok
npm info using npm@5.3.0
npm info using node@v8.6.0
npm info lifecycle liftcorecloudserver@1.0.0~prestart: liftcorecloudserver@1.0.0
npm info lifecycle liftcorecloudserver@1.0.0~start: liftcorecloudserver@1.0.0
> liftcorecloudserver@1.0.0 start /usr/src/app
> egg-scripts start 
[egg-scripts] Starting egg application at /usr/src/app
[egg-scripts] Run node /usr/src/app/node_modules/egg-scripts/lib/start-cluster {"title":"egg-server-liftcorecloudserver","framework":"/usr/src/app/node_modules/egg","baseDir":"/usr/src/app"} --title=egg-server-liftcorecloudserver
2018-10-16 00:11:32,197 INFO 33 [master] =================== egg start =====================
2018-10-16 00:11:32,199 INFO 33 [master] node version v8.6.0
2018-10-16 00:11:32,199 INFO 33 [master] egg version 2.10.0
2018-10-16 00:11:32,199 INFO 33 [master] start with options:
{
  "framework": "/usr/src/app/node_modules/egg",
  "baseDir": "/usr/src/app",
  "workers": 2,
  "plugins": null,
  "https": false,
  "title": "egg-server-liftcorecloudserver"
}
2018-10-16 00:11:32,199 INFO 33 [master] start with env: isProduction: true, EGG_SERVER_ENV: undefined, NODE_ENV: production
2018-10-16 00:11:32,215 INFO 33 [master] agent_worker#1:39 start with clusterPort:43941
2018-10-16 00:11:32,776 INFO 39 Plugin development is disabled by env unmatched, require env(local) but got env is prod
2018-10-16 00:11:32,799 INFO 39 [egg:core] App root: /usr/src/app
2018-10-16 00:11:32,799 INFO 39 [egg:core] All *.log files save on "/root/logs/liftcorecloudserver"
2018-10-16 00:11:32,800 INFO 39 [egg:core] Loaded enabled plugin [{"enable":true,"package":"egg-session","name":"session","dependencies":[],"optionalDependencies":[],"env":[],"from":"/usr/src/app/node_modules/egg/config/plugin.js","path":"/usr/src/app/node_modules/egg-session","version":"3.1.0"},{"enable":true,"package":"egg-security","name":"security","dependencies":[],"optionalDependencies":["session"],"env":[],"from":"/usr/src/app/node_modules/egg/config/plugin.js","path":"/usr/src/app/node_modules/egg-security","version":"2.4.0"},{"enable":true,"package":"egg-jsonp","name":"jsonp","dependencies":[],"optionalDependencies":["security"],"env":[],"from":"/usr/src/app/node_modules/egg/config/plugin.js","path":"/usr/src/app/node_modules/egg-jsonp","version":"2.0.0"},{"enable":true,"package":"egg-onerror","name":"onerror","dependencies":[],"optionalDependencies":["jsonp"],"env":[],"from":"/usr/src/app/node_modules/egg/config/plugin.js","path":"/usr/src/app/node_modules/egg-onerror","version":"2.1.0"},{"enable":true,"package":"egg-i18n","name":"i18n","dependencies":[],"optionalDependencies":[],"env":[],"from":"/usr/src/app/node_modules/egg/config/plugin.js","path":"/usr/src/app/node_modules/egg-i18n","version":"2.0.0"},{"enable":true,"package":"egg-watcher","name":"watcher","dependencies":[],"optionalDependencies":[],"env":[],"from":"/usr/src/app/node_modules/egg/config/plugin.js","path":"/usr/src/app/node_modules/egg-watcher","version":"3.0.0"},{"enable":true,"package":"egg-multipart","name":"multipart","dependencies":[],"optionalDependencies":[],"env":[],"from":"/usr/src/app/node_modules/egg/config/plugin.js","path":"/usr/src/app/node_modules/egg-multipart","version":"2.1.0"},{"enable":true,"package":"egg-schedule","name":"schedule","dependencies":[],"optionalDependencies":[],"env":[],"from":"/usr/src/app/node_modules/egg/config/plugin.js","path":"/usr/src/app/node_modules/egg-schedule","version":"3.4.0"},{"enable":true,"package":"egg-logrotator","name":"logrotator","dependencies":["schedule"],"optionalDependencies":[],"env":[],"from":"/usr/src/app/node_modules/egg/config/plugin.js","path":"/usr/src/app/node_modules/egg-logrotator","version":"3.0.3"},{"enable":true,"package":"egg-static","name":"static","dependencies":[],"optionalDependencies":[],"env":[],"from":"/usr/src/app/config/plugin.js","path":"/usr/src/app/node_modules/egg-static","version":"2.1.1"},{"enable":true,"package":"egg-view","name":"view","dependencies":[],"optionalDependencies":[],"env":[],"from":"/usr/src/app/node_modules/egg/config/plugin.js","path":"/usr/src/app/node_modules/egg-view","version":"2.1.0"},{"enable":true,"package":"egg-es","name":"elasticsearch","dependencies":[],"optionalDependencies":[],"env":[],"from":"/usr/src/app/config/plugin.js","path":"/usr/src/app/node_modules/egg-es","version":"1.0.1"},{"enable":true,"package":"egg-jwt","name":"jwt","dependencies":[],"optionalDependencies":["onerror"],"env":[],"from":"/usr/src/app/config/plugin.js","path":"/usr/src/app/node_modules/egg-jwt","version":"3.1.2"},{"enable":true,"package":"egg-validate","name":"validate","dependencies":[],"optionalDependencies":[],"env":[],"from":"/usr/src/app/config/plugin.js","path":"/usr/src/app/node_modules/egg-validate","version":"1.1.1"},{"enable":true,"package":"egg-cors","name":"cors","dependencies":[],"optionalDependencies":[],"env":[],"from":"/usr/src/app/config/plugin.js","path":"/usr/src/app/node_modules/egg-cors","version":"2.1.0"}]
2018-10-16 00:11:32,812 INFO 39 [egg:logger] init all loggers with options: {"dir":"/root/logs/liftcorecloudserver","encoding":"utf8","env":"prod","level":"INFO","consoleLevel":"INFO","disableConsoleAfterReady":true,"outputJSON":false,"buffer":true,"appLogName":"liftcorecloudserver-web.log","coreLogName":"egg-web.log","agentLogName":"egg-agent.log","errorLogName":"common-error.log","coreLogger":{},"allowDebugAtProd":false,"type":"agent"}
2018-10-16 00:11:32,962 INFO 39 [egg-elasticsearch] connecting elasticsearch server
2018-10-16 00:11:33,016 INFO 39 [egg:core] dump config after load, 5ms
2018-10-16 00:11:33,074 INFO 39 [egg-watcher:agent] watcher start success
2018-10-16 00:11:33,077 ERROR 39 nodejs.TypeError: Cannot read property 'cron' of undefined
    at Function.get schedule [as schedule] (/usr/src/app/node_modules/egg-multipart/app/schedule/clean_tmpdir.js:13:49)
    at ScheduleLoader.load (/usr/src/app/node_modules/egg-schedule/lib/load_schedule.js:27:24)
    at module.exports.app (/usr/src/app/node_modules/egg-schedule/lib/load_schedule.js:15:6)
    at Schedule.init (/usr/src/app/node_modules/egg-schedule/lib/schedule.js:25:27)
    at agent.beforeStart (/usr/src/app/node_modules/egg-schedule/agent.js:16:20)
    at Object.callFn (/usr/src/app/node_modules/egg-core/lib/utils/index.js:36:42)
    at process.nextTick (/usr/src/app/node_modules/egg-core/lib/egg.js:224:13)
    at _combinedTickCallback (internal/process/next_tick.js:131:7)
    at process._tickCallback (internal/process/next_tick.js:180:9)
    at Function.Module.runMain (module.js:667:11)
pid: 39
hostname: 5341a179a76a
2018-10-16 00:11:33,077 ERROR 39 nodejs.TypeError: Cannot read property 'cron' of undefined
    at Function.get schedule [as schedule] (/usr/src/app/node_modules/egg-multipart/app/schedule/clean_tmpdir.js:13:49)
    at ScheduleLoader.load (/usr/src/app/node_modules/egg-schedule/lib/load_schedule.js:27:24)
    at module.exports.app (/usr/src/app/node_modules/egg-schedule/lib/load_schedule.js:15:6)
    at Schedule.init (/usr/src/app/node_modules/egg-schedule/lib/schedule.js:25:27)
    at agent.beforeStart (/usr/src/app/node_modules/egg-schedule/agent.js:16:20)
    at Object.callFn (/usr/src/app/node_modules/egg-core/lib/utils/index.js:36:42)
    at process.nextTick (/usr/src/app/node_modules/egg-core/lib/egg.js:224:13)
    at _combinedTickCallback (internal/process/next_tick.js:131:7)
    at process._tickCallback (internal/process/next_tick.js:180:9)
    at Function.Module.runMain (module.js:667:11)
pid: 39
hostname: 5341a179a76a
2018-10-16 00:11:33,078 ERROR 39 [agent_worker] start error, exiting with code:1
2018-10-16 00:11:33,078 ERROR 39 [agent_worker] exit with code:1
2018-10-16 00:11:33,114 ERROR 33 nodejs.AgentWorkerDiedError: [master] agent_worker#1:39 died (code: 1, signal: null)
    at Master.onAgentExit (/usr/src/app/node_modules/egg-cluster/lib/master.js:318:17)
    at emitOne (events.js:115:13)
    at Master.emit (events.js:210:7)
    at Messenger.sendToMaster (/usr/src/app/node_modules/egg-cluster/lib/utils/messenger.js:133:17)
    at Messenger.send (/usr/src/app/node_modules/egg-cluster/lib/utils/messenger.js:98:12)
    at ChildProcess.agentWorker.once (/usr/src/app/node_modules/egg-cluster/lib/master.js:217:22)
    at Object.onceWrapper (events.js:318:30)
    at emitTwo (events.js:125:13)
    at ChildProcess.emit (events.js:213:7)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
name: "AgentWorkerDiedError"
pid: 33
hostname: 5341a179a76a
2018-10-16 00:11:33,114 ERROR 33 [master] agent_worker#1:39 start fail, exiting with code:1
2018-10-16 00:11:33,115 ERROR 33 [master] exit with code:1
events.js:182
      throw er; // Unhandled 'error' event
      ^
Error: spawn node /usr/src/app/node_modules/egg-scripts/lib/start-cluster {"title":"egg-server-liftcorecloudserver","framework":"/usr/src/app/node_modules/egg","baseDir":"/usr/src/app"} --title=egg-server-liftcorecloudserver fail, exit code: 1
    at ChildProcess.child.once.code (/usr/src/app/node_modules/egg-scripts/lib/cmd/start.js:171:31)
    at Object.onceWrapper (events.js:318:30)
    at emitTwo (events.js:125:13)
    at ChildProcess.emit (events.js:213:7)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
npm info lifecycle liftcorecloudserver@1.0.0~start: Failed to exec start script
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! liftcorecloudserver@1.0.0 start: `egg-scripts start `
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the liftcorecloudserver@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2018-10-15T16_11_33_150Z-debug.log

不用docker,npm start正常

回答

3

删除 package-lock

1
      删除 package-lock

删除了,日志还是一样

1

删除依赖重新安装

8

嘿,请在重新安装依赖项后重试,并且请千万千万千万不要锁定它。

$ # reinstall deps and never lock it.
$ rm -rf node_modules yarn.lock package-lock.json
$ npm i --no-package-lock
0
      删除依赖重新安装

解决了,谢谢

3

$ # 重新安装依赖项,并且不要锁定它们。$ rm -rf node_modules yarn.lock package-lock.json $ npm i --no-package-lock

好的

0

npm config set package-lock false -g