【发布时间】:2017-04-20 09:17:11
【问题描述】:
我在我的 Windows 10 Pro 机器上正确安装了 Docker CE 副本。
我正在尝试使用docker-compose 运行一个简单的节点应用程序,并且能够在 docker 中运行时动态更新代码。我按照this website 构建它,我的代码可以在here 找到。
当我在本地运行代码时导航到localhost:8080,我得到了我的网页。当我通过 Docker 运行它时,我从我的网络浏览器(相同的 url)得到“这个页面不工作”。我已经确保在 Docker 中运行之前停止本地运行,以免端口越界。
我的 Dockerfile:
FROM node:6.10.2
RUN useradd --user-group --create-home --shell /bin/false app
ENV HOME=/home/app
COPY package.json npm-shrinkwrap.json $HOME/diet-program/
RUN chown -R app:app $HOME/*
USER app
WORKDIR $HOME/diet-program
RUN npm install
EXPOSE 8080
CMD ["npm", "run", "dev"]
我的 docker-compose.yml:
version: '2'
services:
diet-program:
build: .
ports:
- "8080:8080"
volumes:
- .:/home/app/diet-program
- /home/app/diet-program/node_modules
dev 命令映射到:webpack-dev-server --content-base src --inline --hot
【问题讨论】:
-
你需要将
VOLUME /home/app/diet-program添加到Dockerfile中。这将创建挂载点 docker compose 将用户挂载您的应用程序源目录。 -
顺便说一句,您的实际问题是什么?您的端口设置看起来不错。您看到了什么让您认为它不起作用?
-
抱歉不清楚:当我使用 Docker 运行它时,我看不到我的网页,但当我在本地运行时,我可以看到它。 docker-compose 构建似乎和 docker-compose up 一样正常工作。
标签: node.js docker docker-compose webpack-dev-server