Skip to main content

Use OpenTofu as Docker Image

OpenTofu is available as OCI container images, and distributed via public GitHub Packages registry.

Versions

Images are hosted as packages in the OpenTofu GitHub organization. See the list of available versions here.

The multi platform images are available using the following tags:

  • latest: latest overall version of OpenTofu,
  • Major: a specific major version of OpenTofu,
  • Major.Minor: a specific minor version of OpenTofu,
  • Major.Minor.Patch: a specific patch version of OpenTofu.

To pull platform-specific images (amd64, arm, arm64, 386) use:

  • <Version>-<Platform>: a platform specific version of OpenTofu.

Usage

To pull the image from GitHub Packages registry:

Code Block
docker pull ghcr.io/opentofu/opentofu:latest

To run OpenTofu as a Docker container:

Code Block
# Init providers plugins
docker run \
--workdir=/srv/workspace \
--mount type=bind,source=.,target=/srv/workspace \
ghcr.io/opentofu/opentofu:latest \
init

# Creating plan file
docker run \
--workdir=/srv/workspace \
--mount type=bind,source=.,target=/srv/workspace \
ghcr.io/opentofu/opentofu:latest \
plan -out=main.plan

# Applying plan file
docker run \
--workdir=/srv/workspace \
--mount type=bind,source=.,target=/srv/workspace \
ghcr.io/opentofu/opentofu:latest \
apply "/srv/workspace/main.plan"