Spec-Zone.ru › OpenTofu 1.10

Сборка образа Docker с OpenTofu

Важное изменение

Ранее OpenTofu предоставлял официальные образы Docker, которые можно было использовать напрямую. Начиная с OpenTofu 1.10, прямая работа с официальными образами больше не поддерживается. Теперь на этой странице описано, как создать собственный образ Docker с OpenTofu.

Если вы ранее использовали docker run ghcr.io/opentofu/opentofu, вам потребуется создать собственный образ, следуя приведенным ниже инструкциям.

Создание собственного образа​

Если вам нужен OpenTofu в контейнере Docker, потребуется создать собственный образ. Это можно сделать двумя способами:

  1. Использовать многоэтапную сборку, чтобы скопировать двоичный файл tofu из минимального образа OpenTofu в свой образ.
  2. Использовать автономный сценарий установки, чтобы установить tofu в образ контейнера.

Способ 1: использование многоэтапной сборки​

Минимальные образы OpenTofu содержат только двоичный файл tofu по пути /usr/local/bin/tofu. Эти образы можно использовать в многоэтапной сборке, чтобы скопировать двоичный файл в собственный образ.

Доступные теги минимальных образов:

  • ghcr.io/opentofu/opentofu:minimal — последняя версия
  • ghcr.io/opentofu/opentofu:1-minimal — последняя версия 1.x
  • ghcr.io/opentofu/opentofu:1.9-minimal — последняя версия 1.9.x
  • ghcr.io/opentofu/opentofu:1.9.1-minimal — конкретная версия

Пример Dockerfile с использованием Alpine Linux:

Блок кода
FROM ghcr.io/opentofu/opentofu:minimal AS tofu

FROM alpine:3.20

# Copy the tofu binary from the minimal image
COPY --from=tofu /usr/local/bin/tofu /usr/local/bin/tofu

# Add any other tools or dependencies you need
RUN apk add --no-cache git curl

# Your application setup
WORKDIR /workspace

Пример с использованием Ubuntu:

Блок кода
FROM ghcr.io/opentofu/opentofu:minimal AS tofu

FROM ubuntu:24.04

# Copy the tofu binary
COPY --from=tofu /usr/local/bin/tofu /usr/local/bin/tofu

# Install dependencies
RUN apt-get update && apt-get install -y \
    git \
    curl \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /workspace

Способ 2: использование сценария установки​

Также можно использовать сценарий установки OpenTofu, чтобы установить двоичный файл непосредственно в образ контейнера.

Шаг 1: загрузка сценария установки​

Сначала загрузите сценарий установки, следуя инструкциям по автономной установке, и поместите его рядом с Dockerfile.

Шаг 2: установка OpenTofu в образ​

Пример Dockerfile с использованием сценария установки:

Блок кода
FROM alpine:3.20

# Copy the installation script
COPY install-opentofu.sh /tmp/install-opentofu.sh

# Install dependencies needed for the script
RUN apk add --no-cache bash curl gpg gpg-agent

# Run the installation script
RUN chmod +x /tmp/install-opentofu.sh && \
    /tmp/install-opentofu.sh --install-method standalone --install-path /usr/local/bin && \
    rm /tmp/install-opentofu.sh

# Add your other dependencies
RUN apk add --no-cache git

WORKDIR /workspace

Для образов на основе Ubuntu:

Блок кода
FROM ubuntu:24.04

# Copy the installation script
COPY install-opentofu.sh /tmp/install-opentofu.sh

# Install dependencies
RUN apt-get update && apt-get install -y \
    curl \
    gpg \
    && rm -rf /var/lib/apt/lists/*

# Run the installation script
RUN chmod +x /tmp/install-opentofu.sh && \
    /tmp/install-opentofu.sh --install-method standalone --install-path /usr/local/bin && \
    rm /tmp/install-opentofu.sh

# Add your other dependencies
RUN apt-get update && apt-get install -y \
    git \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /workspace

Проверка образа​

После сборки образа убедитесь, что OpenTofu установлен правильно:

Блок кода
docker build -t my-opentofu-image .
docker run --rm my-opentofu-image tofu --version

Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.10/intro/install/docker/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API