使用nginx编写docker和多级dockerfile
我遇到了一个问题,我的Docker文件在Docker compose之外运行良好,但在Docker compose中使用时,我的Nginx目标没有正确安装在使用nginx编写docker和多级dockerfile,docker,nginx,docker-compose,Docker,Nginx,Docker Compose,我遇到了一个问题,我的Docker文件在Docker compose之外运行良好,但在Docker compose中使用时,我的Nginx目标没有正确安装在/usr/share/Nginx/html中 docker-compose.yml version: "3.7" services: web: build: context: ./web dockerfile: Dockerfile-development volumes: - ./w
/usr/share/Nginx/html
中
docker-compose.yml
version: "3.7"
services:
web:
build:
context: ./web
dockerfile: Dockerfile-development
volumes:
- ./web:/web
- ./web/node_modules/
env_file:
- .env-web
nginx:
build:
context: ./web
dockerfile: Dockerfile-development
target: nginx
volumes:
- ./web/nginx/default.conf:/etc/nginx/conf.d
- ./web/build:/usr/share/nginx/html
ports:
- "80:80"
depends_on:
- web
dockerfile开发
FROM node:9.8.0 as web
ARG APP_ENV=development
WORKDIR /web
COPY package.json /web/package.json
RUN npm install
COPY . /web
RUN npm run build-development
FROM nginx:1.14 as nginx
COPY --from=web /web/build /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
因此,如果我在Docker compose外部构建并运行Docker文件开发
,一切正常,Nginx启动,但如果我使用Docker compose up
,图像构建并运行时不会出现错误,但在容器中找不到Nginx
编辑
我发现问题在于运行
webpack的build development
——watch
。这导致nginx根本不运行。我可以在后台运行带有watch标志的两个网页包,并且让docker继续构建和运行nginx容器吗?请注意,docker compose up
不会重建您已经存在的图像。如果显式运行docker compose build
?在运行docker compose up
之前,您还需要运行docker compose down
,以删除任何现有的容器。请注意,如果我抓取您的示例并创建docker compose build
图像,nginx
完全按照您的预期提供。好,现在我明白了为什么nginx一开始不起作用了。我的构建阶段web
正在进行webpack--watch
,它最终只是在前台运行,从未退出过,而nginx也从未构建过。谢谢拉尔克斯!