小编Gia*_*ini的帖子

我可以在 docker 构建期间使用 RUN --mount=type=bind 保留纱线安装缓存吗?

yarn install我正在尝试在使用 Docker BuildKit 构建 Docker 映像时生成并重用缓存。纱线缓存保留在目录中.yarn/cache,并且永远不应包含在最终映像中(.yarn/cache相对于构建上下文根)。该.yarn/cache目录应该在多个构建之间共享,以便始终从热缓存启动并具有快速yarn install命令(即使我们由于 的更改而导致缓存未命中package.json)。如果我们可以在结束后访问.yarn/cache内容docker build,则可以轻松在多个构建之间共享,例如将其上传到 Amazon S3 或 GCS 存储桶。

我考虑过两种选择:

  1. RUN --mount=type=bind
  2. RUN --mount=type=cache

下面描述为什么这两种方法都不起作用。

(1) 运行 --mount=type=bind

(简化的)Dockerfile 如下所示:

ENV YARN_CACHE_FOLDER ".yarn/cache"
COPY package.json yarn.lock ./
RUN --mount=type=bind,source=.yarn/cache,target=.yarn/cache,rw yarn install --frozen-lockfile
Run Code Online (Sandbox Code Playgroud)

.yarn/cache不幸的是,命令结束后目录中不存在任何数据docker build

rw选项文档中描述了没有保留数据的原因:Allow writes on the mount. Written data will be discarded。如果写入的数据被丢弃,那么第一次生成缓存的工作方式是什么?

(2)RUN --mount=type=cache

或者我考虑使用RUN --mount=type=cache. …

docker dockerfile yarnpkg google-cloud-build docker-buildkit

13
推荐指数
1
解决办法
4431
查看次数

优步API显示汽车位置

有没有办法使用优步API来实时显示汽车的位置,如优步应用程序?阅读手册似乎尚未实现此功能.

api uber-api

4
推荐指数
1
解决办法
1701
查看次数