【发布时间】:2018-08-17 19:24:56
【问题描述】:
我有一个托管 Node 应用程序的 docker 容器。我正在尝试使用以下 URL https://localhost:8000 连接应用程序,但连接被拒绝。我使用docker-compose up -d 命令运行它。
这是我运行docker-compose ps时得到的响应
Name Command State Ports
-----------------------------------------------------------------------------
freeswitch-console_console_1 nodemon start Up 0.0.0.0:8000->8000/tcp
我的 docker-compose 文件是
version: '3'
services:
console:
build: .
ports:
- "8000:8000"
image: console:cp
volumes:
- .:/usr/src/app
- /usr/src/app/node_modules
我的 Dockerfile 是
FROM node:10
# Create app directory
WORKDIR /usr/src/app
# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
RUN npm install -g nodemon
COPY package*.json ./
RUN npm install
# If you are building your code for production
# RUN npm install --only=production
# Bundle app source
COPY . .
EXPOSE 8000
CMD [ "nodemon", "start" ]
我尝试了以下命令,但它也不起作用:
docker run -p 8000:8000 console:cp nodemon index.js
更多细节
docker-compose version 1.22.0, build f46880f
Docker version 18.06.0-ce, build 0ffa825
MacOSX 10.13.6 (High Sierra)
有什么想法吗?提前致谢。
【问题讨论】:
-
运行时服务器的输出是什么?
-
对不起,我更新了原来的问题。
-
你能验证节点应用程序实际运行并绑定到8000端口吗?
-
我会运行这个命令
docker run -p 8000:80 nginx只是为了确定它是否是操作系统的问题,如果它是你的应用程序的问题,则不允许暴露。 -
@gesellix 是的,它是:server.listen(8000, '0.0.0.0', function(){ console.log("server running at localhost:8000/") });
标签: docker docker-compose containers dockerfile