【发布时间】:2018-11-09 18:34:23
【问题描述】:
这是我的 db.js 文件
let connection = mysql.createConnection({
host: process.env.DATABASE_HOST || '127.0.0.1',
user: 'root',
database: 'bc2k19',
password: 'joeydash',
port: 33060
});
这是我的 docker-compose.yml 文件
version: '3.2'
services:
app:
build: ./app
ports:
- "3000:3000"
depends_on:
- db
environment:
- DATABASE_HOST=db
db:
build: ./db
ports:
- "3306:3306"
这是我的 mysql dockerfile
FROM mysql:latest
ENV MYSQL_ROOT_PASSWORD joeydash
ENV MYSQL_DATABASE bc2k19
ENV MYSQL_USER joeydash
ENV MYSQL_PASSWORD joeydash
ADD setup.sql /docker-entrypoint-initdb.d
这是我的应用程序的 dockerfile
# Use Node v4 as the base
image.
FROM node:latest
# Add everything in the current directory to our image, in the 'app' folder.
ADD . /app
# Install dependencies
RUN cd /app; \
npm install --production
# Expose our server port.
EXPOSE 3000
# Run our app.
CMD ["node", "/app/bin/www"]
我不知道为什么每次我尝试做 docker-compose up 并连接它都会显示
Error: connect ECONNREFUSED 127.0.0.1:3306
app_1 | at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1117:14)
它就像连接未设置但已设置
【问题讨论】:
-
你也应该在这里分享你的撰写文件
-
(但这不是完全正确...您的代码显然错误地尝试连接到 127.0.0.1,但您有
DATABASE_HOST=db环境变量设置应该是通过了。你代码中的端口错了,还和报错信息中的端口不匹配?)
标签: docker docker-compose