如何使用docker在nginx Web服务器上部署我的快速Web应用程序?

时间:2018-01-11 06:22:13

标签: node.js docker nginx docker-compose dockerfile

我一直在尝试将我的快速Web应用程序部署到nginx Web服务器。

这是我的目录结构。

express-app 
     frontend 
         public
             /*all resources, images etc*/
         src 
             /*all js files*/
         views 
             /*html files*/
         package.json
         index.js //server file
         Dockerfile //image for front end
     backend  
         src
             server.js
         package.json
         Dockerfile //image for backend
     proxy
         Dockerfile //??? 
         proxy.conf //???
     docker-compose.yml

我已成功将我的应用程序停靠,它运行正常。但我很困惑如何为nginx和proxy.nginx创建Dockerfile,以便nginx可以用作我的应用程序的Web服务器。用于前端和后端工作的Dockerfiles。

前端的Dockerfile:

FROM node:carbon
RUN mkdir -p /usr/src/frontend
# Create app directory
WORKDIR /usr/src/frontend
COPY package*.json ./
RUN npm install && npm install gulp -g
# Bundle app source
COPY . .
CMD ["gulp","sass","js-global","js-pages"]
EXPOSE 8081
CMD [ "npm", "start" ]

后端的Dockerfile:

FROM node:carbon  
# 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+)
COPY package*.json ./
RUN npm install
COPY . .
ENV MONGODB_URL=mongodb://mongo/db3
ENV BACKEND_HOST_PATH=http://localhost:5000/
EXPOSE 5000
CMD ["npm", "start"]

我正在使用docker for windows。 如何为nginx创建dockerfile和conf文件,以便它充当我的应用程序的Web服务器?

1 个答案:

答案 0 :(得分:0)

我认为有两种方式。

第一, 简单的nginx不是dockernize。 您在docker host中设置了nginx。 而且只是nginx代理。

#front
location / { 
        proxy_pass http://localhost: 8081;
}  

#backend
location / { 
        proxy_pass http://localhost: 8081;
}  

第二, 如果你想使用关于nginx的dockernize。

docker network create test
docker run --name nginx --network=test
docker run --name front --network=test
docker run --name backend --network=test

你执行以上命令。 nginx容器连接前端,后端按名称; 这就像主机文件。

你知道吗? 我明白你想要什么吗?

相关问题