Tôi đang cố gắng xây dựng một tệp docker-compose để triển khai cục bộ ứng dụng NodeJS của tôi kết nối với máy chủ mysql. Tôi đã thử tất cả mọi thứ (đọc rất nhiều hướng dẫn và một số câu hỏi ở đây trong Stackoverflow) nhưng tôi tiếp tục nhận được lỗi ECONNREFUSED. Đây là Dockerfile tôi từ NodeJS:NodeJS + Mysql với Docker Soạn 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
Đây là Mysql Dockerfile tôi:
FROM mysql:latest
ENV MYSQL_ROOT_PASSWORD root
ENV MYSQL_DATABASE playerground
ENV MYSQL_USER root
ENV MYSQL_PASSWORD root
Và đây là của tôi Docker-soạn:
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
Một điều nữa là tập tin cấu hình của tôi từ 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
},
Bạn có thể giúp tôi? Cảm ơn
Cảm ơn. Rõ ràng nó giải quyết được ECONNREFUSED nhưng nó cho tôi một lỗi ER_HOST_NOT_PRIVILEGED. Bạn có bất kỳ ý tưởng về những gì đang xảy ra? Cảm ơn! –
[Câu hỏi này] (http://stackoverflow.com/questions/27868965/docker-mysql-host-not-privileged) có thể có câu trả lời - trông giống như một vấn đề quyền với người dùng MySql. Hãy thử 'GRANT ALL PRIVILEGES ...' cho người dùng db nút của bạn. –
Tôi đã thử với một kịch bản và thêm nó vào Dockerfile của tôi "ADD setup.sql /docker-entrypoint-initdb.d" nhưng nó không hoạt động. Nhưng tôi sẽ cố gắng tiếp tục thử nghiệm ở đây. Cảm ơn rất nhiều!! –