docker-compose build 根据使用次数构建每个 Dockerfile

克里斯托夫31

我有一个 docker-compose.yml,其中有多个服务使用相同的 Dockerfile(django、celery 等等)当我使用 docker-compose build 时,它会多次构建我的容器。

它使我的“应用更改并重新启动”过程成本高昂。有没有只构建一次 Dockerfile 的好方法?我可以只构建一个容器并希望它更新所有容器吗?

就我而言,我有 5 个 Dockerfile 实例,只需使用不同的命令、不同的卷……

阿尤西亚

使用--buildflag 和docker-compose updocker 来构建所有容器。如果您只想构建一次,那么您可以命名在一个服务和其他服务中构建的镜像,而不是使用 dockerfile,您可以使用新构建的镜像。

version: '3'
services:

  wordpress-site-1:
    image: wordpress:custom
    build:
      context: ./wordpress
      dockerfile: wordpress.dockerfile
    container_name: wordpress-site-1
    links:
      - mysql-database
    depends_on:
      - mysql-database
    ports:
      - 8080:80

  wordpress-site-2:
    image: wordpress:custom
    container_name: wordpress-site-2
    links:
      - mysql-database
    depends_on:
      - mysql-database
      - wordpress-site-1
    ports:
      - 8888:80

注:buildandimage用于第一次服务,仅image用于第二次服务。

这是生成两个 wordpress 容器的示例用法,其中一个是从上下文中指定的 dockerfile 构建的,并将生成的图像命名为 as wordpress:custom,另一个是从图像构建的wordpress:custom容器名称不同,但两个服务中使用的图像相同。一个服务使用构建上下文构建镜像,其他服务使用该镜像。为安全起见,您可以删除任何以前的wordpress:custom图像。因此 wordpress-site-2 不使用缓存图像。

编辑 1:扩展答案以显示如何使用相同的图像构建两个容器。不能使用相同的 container_name。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Dockerfile中使用docker-compose build --build-arg中的参数

当我使用build命令时,Docker compose会忽略我的Dockerfile

Spotify dockerfile-maven-plugin如何使用“ docker-compose build”?

Dockerfile 无法使用“docker-compose-up --build”命令运行容器

使用Docker compose传递Dockerfile的参数

Docker:除了 docker-compose.yml 之外,如何使用 Dockerfile

如何使用Dockerfile进行docker-build?

docker-compose构建args没有传递给Dockerfile

docker-compose 构建上下文 dockerfile envar 图像

Dockerfile与docker-compose VOLUME

使用 Dockerfile 复制代码或使用 docker-compose 安装卷

docker-compose:对多个服务使用多个Dockerfile

使用 docker-compose 或 dockerfile 挂载目录(无需复制)

Docker:Dockerfile与docker-compose.yml

如何从Docker,Dockerfile和Docker Compose开始?

docker build跳过Dockerfile CMD

使用父目录和dockerfile进行构建时docker-compose生成错误

使用 docker-compose 在存储库中构建多个 dockerfile 之一

Docker中的烧瓶:Dockerfile构建和docker-compose中的不同相对导入

docker build 使用了错误的 Dockerfile 内容(错误?)

Docker Compose与Dockerfile-哪个更好?

Dockerfile没有从docker compose传递参数

docker在dockerfile和docker-compose.yml中使用通用配置

Docker-compose可以工作,只是使用Dockerfile的Docker-不能。为什么?

Docker-compose 构建应用程序并复制由 dockerfile 指定的非指定目录内容

Docker-Compose、Dockerfile 和构建映像问题 (php-fpm + pecl + xdebug)

Docker和DockerFile构建

docker / docker-compose build --pull行为

容器在使用Dockerfile时起作用,但在使用docker-compose.yml时不起作用