首页 > 解决方案 > docker文件中的Mysql连接问题

问题描述

我想创建节点 js 应用程序的 docker 映像。它在运行时出错,我想我必须将 SQL 代码添加到 docker 文件但不知道如何。我不想使用 docker composer,只想将所有内容都放在一个 docker 文件中。

RUN mkdir -p /app

WORKDIR /app


ADD package*.json /app/

RUN cd /app && npm install

COPY  . .

RUN cd /app && npm run build

ENV HOST=0.0.0.0
ENV PORT=3000

ENV MYSQL_CONNECTION_URL=mysql://root@127.0.0.1:3306/db

EXPOSE ${PORT}
CMD [ "npm", "start" ]

> ah-feedback-service@1.0.0 migrate /app
> node ./dist/migrate

Migrating schemas (alter existing schema)
Connection fails: Error: connect ECONNREFUSED 127.0.0.1:3306
It will be retried for the next request.
events.js:182
throw er; // Unhandled 'error' event
^
Error: connect ECONNREFUSED 127.0.0.1:3306
at Object._errnoException (util.js:1026:11)
at _exceptionWithHostPort (util.js:1049:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1174:14)
--------------------
at Protocol._enqueue         (/app/node_modules/mysql/lib/protocol/Protocol.js:144:48)
at Protocol.handshake     (/app/node_modules/mysql/lib/protocol/Protocol.js:51:23)
at PoolConnection.connect (/app/node_modules/mysql/lib/Connection.js:119:18)
at Pool.getConnection (/app/node_modules/mysql/lib/Pool.js:48:16)
at MySQL.connect (/app/node_modules/loopback-connector-mysql/lib/mysql.js:90:17)
at Object.initializeDataSource [as initialize] (/app/node_modules/loopback-connector-mysql/lib/mysql.js:44:28)
at Mysql8DataSource.DataSource.setup (/app/node_modules/loopback-datasource-juggler/lib/datasource.js:493:19)
at Mysql8DataSource.DataSource (/app/node_modules/loopback-datasource-juggler/lib/datasource.js:138:8)
at Mysql8DataSource (/app/dist/datasources/mysql-8.datasource.js:25:9)
at value_promise_1.transformValueOrPromise.args (/app/node_modules/@loopback/context/dist/resolver.js:46:16)
at Object.transformValueOrPromise (/app/node_modules/@loopback/context/dist/value-promise.js:227:16)
at Object.instantiateClass (/app/node_modules/@loopback/context/dist/resolver.js:41:34)
at Binding._setValueGetter [as _getValue] (/app/node_modules/@loopback/context/dist/binding.js:393:59)
at resolution_session_1.ResolutionSession.runWithBinding.s (/app/node_modules/@loopback/context/dist/binding.js:199:29)
at value_promise_1.tryWithFinally (/app/node_modules/@loopback/context/dist/resolution-session.js:69:53)
at Object.tryWithFinally (/app/node_modules/@loopback/context/dist/value-

promise.js:158:18)
npm info lifecycle ah-feedback-service@1.0.0~migrate: Failed to exec migrate script
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! ah-feedback-service@1.0.0 migrate: `node ./dist/migrate`
npm ERR! Exit status 1
npm ERR!

标签: node.jsdocker

解决方案


推荐阅读