【发布时间】:2020-05-23 00:24:29
【问题描述】:
我在尝试访问容器上的 NodeJs 应用时遇到了问题。
简历: 我自定义了自己的映像以在我的容器上运行 pm2 和环回。 我将我的应用程序配置为监听 docker 网络中另一个容器上的 mongodb。 这很好用。 我创建了 docker-compose.yml 文件,如下所示:
version: '3.5'
services:
webapp:
expose:
- "3000"
ports:
- "3000:3000"
volumes:
- ${NODEJS_PATH}:${NODEJS_PATH_DESTIONATION}
image: ${CUSTOMIZED_IMAGE}
networks:
default:
ipv4_address: ${NODEJS_IP}
db:
image: mongo:4.2.6
container_name: mongodb
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD}
MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE}
volumes:
- ${MONGO_SCRIPT_PATH}:${MONGO_SCRIPT_DESTINATION_PATH}
networks:
default:
ipv4_address: ${MONGO_INITDB_IP}
networks:
default:
external:
name: ${CUSTOMIZED_NET}
我现在使用 docker-compose run webapp 运行我的 webapp 以进行自定义。 在这个容器内我执行下一个 cmd
pm2 start app.js --env environment_variables
它在 http://localhost:3000 上运行 NodeJS 应用程序在 docker 内
我尝试从浏览器 http://{DOCKER_IP}:3000 进行检查,但它不起作用。
如果能解决这个问题,我将永远感激不尽。
【问题讨论】:
-
先检查,去掉
network标签,放上network_mode: "host"然后运行,尝试访问localhost:3000 -
谢谢你的回答,它按你说的方式工作。
标签: node.js docker docker-compose