- Terraform Enterprise
- 2.1.x (latest)
- 2.0.x
- 1.2.x
- 1.1.x
- 1.0.x
- v202507-1
- v202506-1
- v202505-1
- v202504-1
- v202503-1
- v202502-2
- v202502-1
- v202501-1
- v202411-2
- v202411-1
- v202410-1
- v202409-3
- v202409-2
- v202409-1
- v202408-1
- No versions of this document exist before v202408-1. Click below to redirect to the version homepage.
- v202407-1
- v202406-1
- v202405-1
- v202404-2
- v202404-1
- v202402-2
- v202402-1
- v202401-2
- v202401-1
- v202312-1
- v202311-1
- v202310-1
- v202309-1
- v202308-1
- v202307-1
- v202306-1
- v202305-2
- v202305-1
- v202304-1
- v202303-1
- v202302-1
- v202301-2
- v202301-1
- v202212-2
- v202212-1
- v202211-1
- v202210-1
- v202209-2
- v202209-1
- v202208-3
- v202208-2
- v202208-1
- v202207-2
- v202207-1
- v202206-1
Build and deploy a custom worker image
This topic describes how to build and deploy a custom worker image so that you can add custom tools or logic to your Terraform run environments.
Introduction
Terraform Enterprise performs Terraform runs in ephemeral containers using a built-in tfc-agent container image by default. To add custom tools or logic to your Terraform run environment, you must build a custom image and configure Terraform Enterprise to use it.
Terraform Enterprise also uses the custom image for agent jobs that perform VCS ingress. On Kubernetes, Terraform Enterprise adds the CA bundle from TFE_TLS_CA_BUNDLE_FILE to agent pods only when you use the default image. If your VCS server uses a certificate issued by a private CA, include that CA certificate in your custom image.
Requirements
The base image must be hashicorp/tfc-agent:1.6.0 or later.
Dockerfile
Build your custom image using the below Dockerfile.
FROM hashicorp/tfc-agent:latest
# Switch the to root user in order to perform privileged actions such as
# installing software.
USER root
# Install sudo. The container runs as a non-root user, but people may rely on
# the ability to apt-get install things.
RUN apt-get -y install sudo
# Permit tfc-agent to use sudo apt-get commands.
RUN echo 'tfc-agent ALL=NOPASSWD: /usr/bin/apt-get , /usr/bin/apt' >> /etc/sudoers.d/50-tfc-agent
# Switch back to the tfc-agent user as needed by Terraform agents.
USER tfc-agent
Agent
Update the environment variable TFE_RUN_PIPELINE_IMAGE in your yaml file:
TFE_RUN_PIPELINE_IMAGE: registry.example.com/example/tfc-agent:custom-tag