【发布时间】:2016-08-05 03:43:04
【问题描述】:
我有一个节点应用程序,可以使用 npm run 在本地运行。它使用 express 作为服务器,并使用浏览器同步来显示热重载。
Express 正在使用端口6001
Browsersync 正在使用端口3000 和3001
Docker 文件
FROM node/argon
WORKDIR /usr/src/app
COPY package.json /usr/src/app/
RUN npm install
ENV PATH /usr/src/app/node_modules/.bin:$PATH
USER app
COPY . /usr/src/app
RUN sudo chown -R app /usr/src/app
RUN npm start
EXPOSE 6001
CMD ["npm", "start"]
docker-compose.yml
web:
extends:
file: docker-compose-base.yml
service: web
ports:
- "6001:6001"
environment:
VIRTUAL_HOST: testing.docker
docker-compose-base.yml
web:
build: .
command: npm start
volumes:
- .:/usr/src/app
- /usr/src/app
- /usr/src/app/node_modules
我可以运行docker-compose build,它构建得很好,运行docker-compose up 会输出以下内容:
[BS] Access URLs:
----------------------------
Local: http://localhost:3000
----------------------------
UI: http://localhost:3001
----------------------------
Listening on http://localhost:6001
但是访问http://testing.docker 看起来好像容器从未安装过。运行docker-compose ps 显示没有容器,但运行docker ps 显示容器可用。
我完全不知所措。
【问题讨论】:
-
你使用
docker-compose up启动容器了吗? -
是的,这就是生成“监听”日志的原因。
-
尝试
docker-compose up -d,然后在该目录中尝试docker-compose ps,以及docker ps,看看它们是否返回任何内容。也可以试试curl localhost:6001检查端口映射是否正确。
标签: node.js docker docker-compose