Py学习  »  docker

多级Docker构建的工件缓存

Pavel • 4 年前 • 809 次点击  

我有这样的码头工人

# build-home
FROM node:10 AS build-home
WORKDIR /usr/src/app
COPY /home/package.json /home/yarn.lock /usr/src/app/
RUN yarn install
COPY ./home ./
RUN yarn build

# build-dashboard
FROM node:10 AS build-dashboard
WORKDIR /usr/src/app
COPY /dashboard/package.json /dashboard/yarn.lock /usr/src/app/
RUN yarn install
COPY ./dashboard ./
RUN yarn build

# run
FROM nginx
EXPOSE 80
COPY nginx.conf /etc/nginx/nginx.conf
COPY --from=build-home /usr/src/app/dist /usr/share/nginx/html/home
COPY --from=build-dashboard /usr/src/app/dist /usr/share/nginx/html/dashboard

这里构建两个react应用程序,然后将构建的工件放入nginx。为了提高构建性能,我需要缓存 dist 文件夹 build-home build-dashboard 构建阶段。 为此我创建了一个 volume 在里面 docker-compose.yml

...
  web:
    container_name: web
    build:
      context: ./web
    volumes:
      - ./web-build-cache:/usr/src/app
    ports:
      - 80:80
    depends_on:
      - api

我在这个阶段停了下来,因为我不明白怎么加 体积 创建者 docker-compose 第一个是 建造家园 阶段,添加后 体积 构建仪表板 . 也许我应该创建一个两个卷,并将每个卷附加到每个构建阶段,但是如何做到这一点呢?

更新:

Initial build.

家庭应用程序:

  1. 安装模块:100.91S
  2. 构建应用程序:39.51s

仪表板应用程序:

  1. 安装模块:100.91S
  2. 构建应用程序:50.38s

总时间:

real    8m14.322s
user    0m0.560s
sys     0m0.373s

Second build (无代码或依赖项更改):

家庭应用程序:

  1. 安装模块:使用缓存
  2. 构建应用:使用缓存

仪表板应用程序:

  1. 安装模块:使用缓存
  2. 构建应用:使用缓存

总时间:

real    0m2.933s
user    0m0.309s
sys     0m0.427s

Third build (第一个应用程序中的代码变化很小):

家庭应用程序:

  1. 安装模块:使用缓存
  2. 构建应用程序:50.04s

仪表板应用程序:

  1. 安装模块:使用缓存
  2. 构建应用:使用缓存

总时间:

real    0m58.216s
user    0m0.340s
sys     0m0.445s

Initial build 无Docker的家庭应用:89.69s

real    1m30.111s
user    2m6.148s
sys     2m17.094s

Second build 没有Docker的家庭应用程序 迪特 文件夹存在于磁盘上(无代码或依赖项更改):18.16s

real    0m18.594s
user    0m20.940s
sys     0m2.155s

Third build 没有Docker的家庭应用程序 文件夹存在于磁盘上(代码变化很小):20.44s

real    0m20.886s
user    0m22.472s
sys     0m2.607s

在Docker容器中,应用程序的第三次构建要长2倍。这表明,如果第一次生成的结果在磁盘上,则其他生成的完成速度更快。在Docker容器中,第一个之后的所有程序集只要第一个就执行,因为没有 迪特 文件夹。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38672
 
809 次点击  
文章 [ 2 ]  |  最新文章 4 年前