我已经为已被docker化的node js应用程序构建了一个docker-compose文件,但是我不知道如何对作为docker容器运行的node js应用程序进行API调用,请帮助我这种担心。
我的DockerFile:
FROM node:10.15-slim
ENV NODE_ENV=production
WORKDIR /app
COPY package.json package-lock*.json ./
RUN npm install && npm cache clean --force
COPY . .
CMD ["node", "./bin/www"]
我的Docker组成文件:
version: '2.4'
services:
express:
build:
context: .
dockerfile: Dockerfile
command: /app/node_modules/.bin/nodemon ./bin/www
ports:
- 3000:3000
volumes:
- .:/app
environment:
- DEBUG=sample-express:*
- NODE_ENV=development
答案 0 :(得分:0)
您需要从运行您的应用程序的Docker公开端口。
假设您的应用程序在docker内部的端口8080
上运行,这是公开该特定端口的方法:
博览会8080
然后,您需要将docker公开的端口映射到您的本地端口。您可以在docker中执行以下操作:
docker run -p 49160:8080 -d docker_image
如果您正在使用docker-compose,您将像这样进行操作:
version: '3'
services:
nodejs:
build:
context: .
dockerfile: Dockerfile
image: nodejs
container_name: nodejs
ports:
- "8080:8080"
更新
假设您要将/api
请求发送到后端服务器。这就是您在nginx conf中要做的事情:
server {
listen 80
location /api {
proxy_pass http://backend:8080/;
}
}
希望对您有帮助。