Expected Outcome
Copy the Terraform Enterprise Docker Image to a private Docker Registry or download it locally as a tar file.
Prerequisites
- Terraform Enterprise v202309-1 or later
 - FDO Deployment
 - Skopeo
 - Network access to 
images.releases.hashicorp.com 
Use Case
When performing a Terraform Enterprise deployment in an airgapped environment, images for Air-Gapped (FDO) deployments can be downloaded using Skopeo
Procedure
- Login to the Docker Registries using Skopeo
 
# Login to Hashicorp's Docker Registry echo '<HASHICORP_LICENSE>'| skopeo login --username terraform images.releases.hashicorp.com --password-stdin # Login to the destination private Docker Registry skopeo login --username <registry-username>
- Copy the Terraform Enterprise Docker Image to the private Docker Registry
 
# For additional options refer to Skopeo's Documentation - https://github.com/containers/skopeo/blob/main/docs/skopeo-copy.1.md skopeo copy --override-arch=amd64 --override-os=linux docker://images.releases.hashicorp.com/hashicorp/terraform-enterprise:<vYYYYMM-#> docker://<private_registry_fqdn>/hashicorp/terraform-enterprise:<vYYYYMM-#>
- Alternatively, it is possible to synchronize multiple image tags at once
 
# Create a sync-config.yaml file with the Terraform Enterprise tags, e.g. 
images.releases.hashicorp.com:
  images:
    hashicorp/terraform-enterprise:
      - "v202504-1"
      - "v202503-1" 
# Sync the images 
skopeo sync --override-arch=amd64 --override-os=linux --src yaml --dest docker sync-config.yaml <private_registry_fqdn>/hashicorp/
# Verify the tags are present in the private Docker Registry, e.g. :
skopeo list-tags docker://registry.example.net/hashicorp/terraform-enterprise
{
    "Repository": "registry.example.net/hashicorp/terraform-enterprise",
    "Tags": [
        "v202503-1",
        "v202506-1",
        "v202504-1"
    ]
}- Lastly, if a private Docker Registry is not available, Skopeo can also download the image locally as a tar file which can later be copied to the Terraform Enterprise instance and loaded into the container runtime.
 
skopeo copy --override-arch=amd64 --override-os=linux docker://images.releases.hashicorp.com/hashicorp/terraform-enterprise:<vYYYYMM-#> docker-archive:terraform-enterprise-<vYYYYMM-#>.tar:hashicorp/terraform-enterprise:<vYYYYMM-#>