我的任务是对 Angular 应用程序进行 docker 化并使用 Nginx 为其提供服务。
我已将 Angular 项目构建到 dist 文件夹中,并希望将此文件夹与其他不同的微服务一起移动到构建容器中的 nginx->html 目录。
这就是我的 docker 项目的结构
|-dist/
|-Dockerfile
|-dockerignore
|-default.config
Run Code Online (Sandbox Code Playgroud)
FROM nginx
#Remove default nginx website
RUN rm -rf /usr/share/nginx/html/*
COPY ./dist /usr/share/nginx/html
COPY ./nginx.conf /etc/nginx/conf.d/default.conf
Run Code Online (Sandbox Code Playgroud)
在这个目录的顶部是一堆其他服务,需要与 Angular 应用程序一起运行,这些应用程序都按预期运行。使用以下 docker-compose.yml 文件
version: '3.2'
services:
adminportal:
build: ./adminPortal
ports:
- "80:80"
volumes:
- "/usr/share/nginx/html:/usr/share/nginx/html"
- "/etc/nginx/conf.d:/etc/nginx/conf.d"
Run Code Online (Sandbox Code Playgroud)
当我使用 docker build 构建此容器并运行时,它按预期运行“将 dist 内容复制到正确的文件夹并将配置复制到正确的目录”。但如果使用 构建docker-compose up --build,一切都会正常运行,不会返回错误,但它不会将文件复制到各自的 nginx 文件夹。