尝试访问容器上的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运行webapp来运行我的webapp,用于自定义目的。在此容器中,我执行下一个cmd
pm2 start app.js --env environment_variables
它在http://localhost:3000上运行NodeJS App 在docker内部
我试图通过浏览器http:// {DOCKER_IP}:3000进行检查,但无法正常工作。
我将永远感谢您对这个麻烦的任何答复。
我们使用nginx将服务从docker proxy_pass传递到外部世界。
我们这样做是因为我们需要docker_network上的其他服务来侦听此服务。
这里是来自nginx的配置
server {
listen 80;
server_name domain.local;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}