我一直在尝试将我的快速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服务器?
答案 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容器连接前端,后端按名称; 这就像主机文件。
你知道吗? 我明白你想要什么吗?