【发布时间】:2015-04-30 22:12:12
【问题描述】:
我这辈子都想不通。我觉得我真的很接近,但我只是还没有到那里。这是我的 Dockerfile:
FROM ubuntu:14.04
MAINTAINER Oscar Godson
RUN apt-get update
RUN apt-get install -y nodejs-legacy
RUN apt-get install -y npm
RUN apt-get install -y mysql-server
RUN apt-get install -y mysql-client
COPY . /src
WORKDIR /src
RUN service mysql start;\
mysql -u root < /src/bin/demo-data.sql;\
npm install
EXPOSE 4000
CMD ["node", "index.js"]
如果我进入交互模式并在最后的 RUN service... 行中进入 bash,我可以看到 mysql 正在运行,演示数据已导入并且一切正常,包括使用 node index.js 启动我的 Node 应用程序。如果我再尝试做另一个RUN 或CMD 你在下面看到它不再可以访问MySQL。就像它停止运行一样。
我收到Error: connect ECONNREFUSED 的错误,当它关闭或数据不存在时发生。从我玩它来看,如果我在启动它的RUN 之后尝试访问它,MySQL 似乎没有运行。
附:这里的 MySQL DB 纯粹用于开发。在生产中,我们使用 AWS RDS,这就是为什么它使用 root 没有任何密码并以这种方式导入数据。
【问题讨论】:
标签: mysql linux node.js ubuntu docker