【问题标题】:Why I get error when try build image in docker?为什么尝试在 docker 中构建映像时出现错误?
【发布时间】:2022-02-13 13:08:38
【问题描述】:

我想在 docker 中制作一个图像。我的应用程序在 nodejs 中运行并使用 Mysql。当我构建时,它是这样的错误

todo-skyshi@1.0.0 start /todo-skyshi
#11 1.831 > node server.js
#11 1.831
#11 2.247 /todo-skyshi/config/database/dbConn.js:4
#11 2.247 const db = new Sequelize(DB_NAME, DB_USERNAME,DB_PASSWORD, {
#11 2.247                          ^
#11 2.247
#11 2.247 ReferenceError: DB_NAME is not defined
#11 2.247     at Object.<anonymous> (/todo-skyshi/config/database/dbConn.js:4:26)
#11 2.247     at Module._compile (internal/modules/cjs/loader.js:999:30)
#11 2.247     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
#11 2.247     at Module.load (internal/modules/cjs/loader.js:863:32)
#11 2.247     at Function.Module._load (internal/modules/cjs/loader.js:708:14)
#11 2.247     at Module.require (internal/modules/cjs/loader.js:887:19)
#11 2.247     at require (internal/modules/cjs/helpers.js:74:18)
#11 2.247     at Object.<anonymous> (/todo-skyshi/config/model/activity.js:2:12)
#11 2.247     at Module._compile (internal/modules/cjs/loader.js:999:30)
#11 2.247     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
#11 2.261 npm ERR! code ELIFECYCLE
#11 2.264 npm ERR! errno 1
#11 2.271 npm ERR! todo-skyshi@1.0.0 start: `node server.js`
#11 2.271 npm ERR! Exit status 1
#11 2.271 npm ERR!
#11 2.271 npm ERR! Failed at the todo-skyshi@1.0.0 start script.
#11 2.272 npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
#11 2.336
#11 2.337 npm ERR! A complete log of this run can be found in:
#11 2.337 npm ERR!     /root/.npm/_logs/2022-02-13T02_20_56_653Z-debug.log
------
executor failed running [npm start]: exit code: 1

这就像我的数据库参数上的 env,当我想使用这个命令运行时,如何在 docker 中构建可以读取 env 的图像?

docker run -e MYSQL_HOST=172.17.0.1 -e MYSQL_USER=xxxx -e MYSQL_PASWORD=xxxx -e MYSQL_DBNAME=todo -p 8090:3030 agamtheos/todo-skyshi

这是我的 Dockerfile:

FROM node:12-alpine

RUN apk update

RUN mkdir /todo-skyshi
ADD . /todo-skyshi
WORKDIR /todo-skyshi

RUN npm update
RUN ["npm", "start"]

感谢任何答案

【问题讨论】:

    标签: mysql node.js docker


    【解决方案1】:

    ReferenceError: DB_NAME 未定义 #11 2.247 在对象处。 (/todo-skyshi/config/database/dbConn.js:4:26)。

    Abobe 错误清楚地表明您尝试访问的变量未定义。

    docker run 命令 中传递的环境变量名称与代码中使用的不同。 DB_NAME, DB_USERNAME,DB_PASSWORD。 例如

    DB_NAME 可以作为process.env.MYSQL_DBNAME 和其他环境变量访问。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多