当前位置: 首页 > 知识库问答 >
问题:

来自同一个Dockerfile的多个docker服务-如何利用缓存

何玺
2023-03-14

我有一系列使用相同基本docker文件的docker服务,例如:

services:
  service_1:
    build:
      context: .
    ...
  service_2:
    build:
      context: .
    ...

Dockerfile上,我运行了一些安装:

FROM base_image

RUN apk add --no-cache \
        g++ \
        git \
...

如何确保只为Dockerfile生成一次?也就是说,在为service_1构建Dockerfile之后,service_2使用缓存结果?

共有1个答案

米迪
2023-03-14

如果在没有任何参数的情况下运行docker compose build,它应该已经使用了您的区域设置缓存。

不过,另一方面,也可能有一些其他的选择,这取决于你的实际使用情况。

如果您只能在compose文件中使用一个定义(所有内容都是相同的),则如下所示:

services:
  app:
    build:
      context: .

您也可以简单地从docker-comush up-d--calapp=5开始,以运行5个实例。

另一个选择是重用图像,如这里所写,尽管我从未尝试过这样做。

services:
  service_1:
    build:
      context: .
    image: base_service
    depents_on:
      - app_base # to make shure it is builded
    ...
  service_2:
    image: base_service
    depents_on:
      - app_base # to make shure it is builded
    ...
 类似资料:
  • 本文向大家介绍Docker-利用dockerfile来搭建tomcat服务的方法,包括了Docker-利用dockerfile来搭建tomcat服务的方法的使用技巧和注意事项,需要的朋友参考一下 在前面的例子中,我们从下载镜像,启动容器,在容器中输入命令来运行程序,这些命令都是手工一条条往里输入的,无法重复利用,而且效率很低。所以就需要一 种文件或脚本,我们把想执行的操作以命令的方式写入其中,然后

  • 我正在计划一个设计,我将从同一个池中获得两个连接(plocal)。仅在一个连接上启动事务,而不在另一个连接上启动事务。我希望在同一过程中使用这两个数据库连接,并使用非事务连接进行模式调用,使用事务连接进行支持事务的记录级调用。这种方法有效吗?

  • 本文向大家介绍Docker容器上用DockerFile部署多个tomcat服务的步骤,包括了Docker容器上用DockerFile部署多个tomcat服务的步骤的使用技巧和注意事项,需要的朋友参考一下 1、 [admin@JD ~]$ cd opt #进入根目录下的opt 里 2、 [admin@JD opt]$ mkdir web #创建Web 文件夹 3、 [admin@JD web]$ c

  • 我RestClient应该使用来自多个服务器的服务,每个服务器具有不同的主机名和凭据。 我知道是线程安全的,并且为每个任务创建不同的连接,但是如何使用不同的凭据来完成呢?凭据不是在创建时提供给RestTemplate的吗?

  • 如何修改此ffmpeg字符串以生成具有不同视频比特率的多个输出?这是为了在yadif=1消耗大量电力时节省时间。而且,无法让它在windows中接受yadif_cuda。 ffmpeg-y-f lavfi-i anullsrc=cl=mono:sample_rate=48000-i“test.mxf”-vf yadif=1-s 1920:1080-c:v h264-nvenc-强制关键帧“expr

  • 我们有一个登录后显示的用户仪表板。仪表板由多个小部件组成。每个小部件从单独的restful服务中提取内容。例如:新闻/邮件/问题/警报。每个小部件在加载到页面上后调用服务。这样就有多个webservice调用。 有没有办法减少多次通话。 它的工作方式是当第一次加载页面时,服务应该在单个调用中返回所有小部件的聚合数据。 每个服务也应该独立可用,以便可以用于刷新单个小部件和其他系统集成。 注意:小部件