COPY不适用于docker-compose,但可以与docker build一起使用

时间:2019-07-03 16:44:09

标签: angular nginx docker-compose

我的任务是将有角度的应用程序码头化,并与Nginx一起使用。

遵循了很多博客示例和教程,但是似乎没有帮助。 我已经将angular项目构建到了dist文件夹,并希望将此文件夹连同其他不同的微服务一起移到已构建容器中的nginx-> html目录中。

这就是我的docker项目的结构         -dist         -Docker文件         -dockerignore         -default.config

Dockerfile

FROM nginx

删除默认的nginx网站 运行rm -rf / usr / share / nginx / html / *

复制./dist / usr / share / nginx / html

复制./nginx.conf /etc/nginx/conf.d/default.conf


在该目录的顶部还有一堆其他需要与angular应用程序一起运行的服务,这些应用程序均按预期运行。使用以下docker-compose.yml文件

docker-compose.yml

版本:“ 3.2”
服务:
  管理员入口:
    版本:./adminPortal
    端口:
      -“ 80:80”
    卷:
      -“ / usr / share / nginx / html:/ usr / share / nginx / html”
      -“ /etc/nginx/conf.d:/etc/nginx/conf.d”

当我使用docker build构建此容器并运行时,它按预期运行“将dist内容复制到正确的文件夹并将配置复制到正确的dir”。 但是,如果使用docker-compose up --build进行构建,则一切运行正常,不返回错误,但不会将文件复制到各自的nignx文件夹中。

谢谢。 :(

1 个答案:

答案 0 :(得分:1)

我遇到了类似的问题,我解决了将 --build 参数传递给 docker-compose 命令的问题,如下所示:

docker-compose up --build

通过这种方式,您将强制 docker-compose 构建您的镜像。就我而言,docker-compose.yml 文件如下所示:

version: '3'
services:
  nginx:
    ports:
      - "80:80"
      - "443:443"
    build:
      context: .
      dockerfile: Dockerfile