

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 本地缓存
<a name="caching-local"></a>

本地缓存将缓存本地存储在构建主机上，并且仅可用于该构建主机。对于大中型构建构件，这是一个很好的选择，因为构建主机上的缓存立即可用。如果您不经常构建，这不是最好的选择。这意味着构建性能不受网络传输时间的影响。

如果您选择本地缓存，则必须选择以下一个或多个缓存模式：
+ 源缓存模式用于缓存主要和辅助源的 Git 元数据。创建缓存后，后续构建仅拉取两次提交之间发生的更改。对于具有干净工作目录和源为大型 Git 存储库的项目，此模式是一个不错的选择。如果您选择此选项，并且您的项目不使用 Git 存储库（AWS CodeCommit、 GitHub、E GitHub nterprise Server 或 Bitbucket），则该选项将被忽略。
+ Docker 层缓存模式缓存现有 Docker 层。对于构建或拉取大型 Docker 映像的项目，此模式是一个不错的选择。它可以防止因从网络中拉取大型 Docker 映像而导致的性能问题。
**注意**  
您只能在 Linux 环境中使用 Docker 层缓存。
必须设置 `privileged` 标志以使您的项目具有所需的 Docker 权限。  
默认情况下，为非 VPC 构建启用 Docker 进程守护程序。如果您想使用 Docker 容器进行 VPC 构建，请参阅 Docker 文档网站上的[运行时权限和 Linux 功能](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities)并启用特权模式。此外，Windows 不支持特权模式。
在使用 Docker 层缓存之前，您应考虑安全影响。
+ 自定义缓存模式用于缓存您在 buildspec 文件中指定的目录。如果您的构建方案不适合另外两种本地缓存模式之一，则此模式是一个不错的选择。如果您使用自定义缓存：
  + 只能指定目录进行缓存。不能指定单独的文件。
  + 用于引用缓存目录的符号链接。
  + 缓存目录在下载项目源代码之前链接到您的构建。如果缓存项目具有相同的名称，则它们会覆盖源项目。使用 buildspec 文件中的缓存路径指定目录。有关更多信息，请参阅 [buildspec 语法](build-spec-ref.md#build-spec-ref-syntax)。
  + 避免在源和缓存中使用相同的目录名称。本地缓存的目录可能会覆盖或删除源存储库中具有相同名称的目录。

**注意**  
`LINUX_GPU_CONTAINER` 环境类型和 `BUILD_GENERAL1_2XLARGE` 计算类型不支持本地缓存。有关更多信息，请参阅 [构建环境计算模式和类型](build-env-ref-compute-types.md)。

**注意**  
当您配置为使用 VPC 时 CodeBuild ，不支持本地缓存。有关 VPCs 与一起使用的更多信息 CodeBuild，请参阅[AWS CodeBuild 与亚马逊 Virtual Private Cloud 一起使用](vpc-support.md)。