6
我正在嘗試構建一個docker-compose文件以在本地部署連接到mysql服務器的NodeJS應用程序。我已經嘗試了一切(在Stackoverflow中閱讀了很多教程和一些問題),但是我一直在收到ECONNREFUSED錯誤。 這是從的NodeJS我Dockerfile:NodeJS + Mysql與Docker Compose 2
##Nodejs
FROM node:latest
RUN useradd --user-group --create-home --shell /bin/false app
ENV HOME=/home/app
COPY package.json npm-shrinkwrap.json $HOME/playerground/
RUN chown -R app:app $HOME/*
USER app
WORKDIR $HOME/playerground
RUN npm cache clean && npm install --silent --progress=false
USER root
COPY . $HOME/playerground
RUN chown -R app:app $HOME/*
USER app
這是我的MySQL Dockerfile:
FROM mysql:latest
ENV MYSQL_ROOT_PASSWORD root
ENV MYSQL_DATABASE playerground
ENV MYSQL_USER root
ENV MYSQL_PASSWORD root
這是我的搬運工,撰寫:
version: '2'
services:
db:
build: ./database
ports:
- "3307:3306"
playerground:
build:
context: .
dockerfile: Dockerfile
command: node_modules/.bin/nodemon --exec npm start
environment:
ENVIRONMENT: development
ports:
- "9090:9090"
links:
- db
volumes:
- .:/home/app/playerground
- /home/app/playerground/node_modules
的另一件事是從我的NodeJS配置文件:
//Database
'development' : {
'host' : process.env.HOSTNAME || 'localhost',
'user' : 'root',
'password' : 'root',
'database' : 'playerground'
},
//Server
'development' : {
'host' : process.env.HOSTNAME || '127.0.0.1',
'port' : 3000
},
你能幫助我嗎? 謝謝
謝謝。顯然它解決了ECONNREFUSED,但它給我一個ER_HOST_NOT_PRIVILEGED錯誤。你有什麼想法嗎?謝謝! –
[這個問題](http://stackoverflow.com/questions/27868965/docker-mysql-host-not-privileged)可能有答案 - 看起來像MySql用戶的權限問題。嘗試'授予所有特權...'爲您的節點數據庫用戶。 –
我已經試過了一個腳本,並將它添加到我的Dockerfile「ADD setup.sql /docker-entrypoint-initdb.d」但它沒有工作。但我會盡力在這裏繼續測試。非常感謝!! –