| --- |
| page_title: 'Command: providers mirror' |
| description: |- |
| The `terraform providers mirror` command downloads the providers required |
| for the current configuration and copies them into a directory in the local |
| filesystem. |
| --- |
| |
| # Command: terraform providers mirror |
| |
| The `terraform providers mirror` command downloads the providers required |
| for the current configuration and copies them into a directory in the local |
| filesystem. |
| |
| In normal use, `terraform init` will automatically download needed providers |
| from provider registries as part of initializing the current working directory. |
| Sometimes Terraform is running in an environment where that isn't possible, |
| such as on an isolated network without access to the Terraform Registry. In |
| that case, |
| [explicit installation method configuration](/cli/config/config-file#explicit-installation-method-configuration) |
| allows you to configure Terraform, when running on a particular system, to |
| consult only a local filesystem directory where you've created a local mirror |
| of the necessary plugins, and to skip accessing the upstream registry at all. |
| |
| The `terraform providers mirror` command can automatically populate a directory |
| that will be used as a local filesystem mirror in the provider installation |
| configuration. |
| |
| -> `terraform providers mirror` is available only in Terraform v0.13 or later. |
| |
| ## Usage |
| |
| Usage: `terraform providers mirror [options] <target-dir>` |
| |
| A single target directory is required. Terraform will create under that |
| directory the path structure that is expected for filesystem-based provider |
| plugin mirrors, populating it with `.zip` files containing the plugins |
| themselves. |
| |
| Terraform will also generate various `.json` index files which contain suitable |
| responses to implement |
| [the network mirror protocol](/internals/provider-network-mirror-protocol), |
| if you upload the resulting directory to a static website host. Terraform |
| ignores those index files when using the directory as a filesystem mirror, |
| because the directory entries themselves are authoritative in that case. |
| |
| This command supports the following additional option: |
| |
| * `-platform=OS_ARCH` - Choose which target platform to build a mirror for. |
| By default Terraform will obtain plugin packages suitable for the platform |
| where you run this command. Use this flag multiple times to include packages |
| for multiple target systems. |
| |
| Target platform names consist of an operating system and a CPU |
| architecture. For example, `linux_amd64` selects the Linux operating system |
| running on an AMD64 or x86_64 CPU. |
| |
| You can run `terraform providers mirror` again on an existing mirror directory |
| to update it with new packages. For example, you can add packages for a new |
| target platform by re-running the command with the desired new `-platform=...` |
| option, and it will place the packages for that new platform without removing |
| packages you previously downloaded, merging the resulting set of packages |
| together to update the JSON index files. |