3.9. 追加のカスタムビルドの手順


定義ファイルの additional_build_steps セクションで、任意のビルドフェーズのカスタムビルドコマンドを指定できます。これにより、ビルドフェーズをきめ細かく制御できるようになります。

prepend_ および append_ コマンドを使用して、メインのビルドステップの実行前または実行後に実行されるディレクティブを Containerfile に追加します。コマンドは、ランタイムシステムに必要なルールに準拠する必要があります。

additional_build_steps で使用できる値のリストは、次の表を参照してください。

Expand
説明

prepend_base

ベースイメージをビルドする前にコマンドを挿入できます。

append_base

ベースイメージをビルドした後にコマンドを挿入できます。

prepend_galaxy

galaxy イメージをビルドする前に挿入できます。

append_galaxy

galaxy イメージをビルドした後に挿入できます。

prepend_builder

Python ビルダーイメージをビルドする前に、コマンドを挿入できます。

append_builder

Python ビルダーイメージをビルドした後に、コマンドを挿入できます。

prepend_final

最終イメージをビルドする前に挿入できます。

append_final

最終イメージをビルドした後に挿入できます。

additional_build_steps の構文は、複数行の文字列とリストの両方をサポートしています。以下の例を参照してください。

例3.1 複数行の文字列エントリー

prepend_final: |
   RUN whoami
   RUN cat /etc/os-release
Copy to Clipboard Toggle word wrap

例3.2 リストエントリー

append_final:
- RUN echo This is a post-install command!
- RUN ls -la /etc
Copy to Clipboard Toggle word wrap

例3.3 任意のファイルを実行環境にコピーする

additional_build_files:
  # copy arbitrary files next to this EE def into the build context - we can refer to them later...
  - src: files/rootCA.crt
    dest: configs

additional_build_steps:
  prepend_base:
    # copy a custom CA cert into the base image and recompute the trust database
    # because this is in "base", all stages will inherit (including the final EE)
    - COPY _build/configs/rootCA.crt /usr/share/pki/ca-trust-source/anchors
    - RUN update-ca-trust
Copy to Clipboard Toggle word wrap

additional_build_files セクションを使用すると、rootCA.crt をビルドコンテキストディレクトリーに追加できます。このファイルをビルドコンテキストディレクトリーにコピーすると、ファイルをビルドプロセスで使用できるようになります。ファイルを使用するには、additional_build_steps セクションの prepend_base ステップで指定した COPY ディレクティブを使用して、ビルドコンテキストディレクトリーからファイルをコピーします。コピーしたファイルに基づいて任意のアクションを実行できます。たとえば、この例では、RUN update-ca-trust を実行して CA 証明書の動的設定を更新します。

3.9.1. 環境変数を使用した実行環境の構築

次のサンプルファイルでは、ビルドプロセスに必要な可能性のある環境変数を指定しています。

この機能を実現するために、additional_build_steps セクションの prepend_base ステップで ENV 変数定義を使用します。

—
additional_build_steps:
  prepend_base:
    - ENV FOO=bar
    - RUN echo $FOO > /tmp/file1.txt
Copy to Clipboard Toggle word wrap

ビルドプロセスの後の段階でも同じ環境変数を使用できます。

3.9.2. Galaxy 設定の環境変数を使用した実行環境の構築

Ansible Builder スキーマ 3 を使用すると、カスタムの Galaxy 設定を指定するなど、複雑な手順を実行できます。この方法を使用すると、認証トークンなどの機密情報を、最終的な実行環境イメージに漏洩することなく、実行環境ビルドに渡すことができます。

次の例では、Ansible Galaxy Server 環境変数を使用します。

additional_build_steps:
  prepend_galaxy:
    # Environment variables used for Galaxy client configurations
    - ENV ANSIBLE_GALAXY_SERVER_LIST=automation_hub
    - ENV ANSIBLE_GALAXY_SERVER_AUTOMATION_HUB_URL=https://console.redhat.com/api/automation-hub/content/xxxxxxx-synclist/
    - ENV ANSIBLE_GALAXY_SERVER_AUTOMATION_HUB_AUTH_URL=https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token
    # define a custom build arg env passthru - we still also have to pass
    # `--build-arg ANSIBLE_GALAXY_SERVER_AUTOMATION_HUB_TOKEN` to get it to pick it up from the env
    - ARG ANSIBLE_GALAXY_SERVER_AUTOMATION_HUB_TOKEN

options:
  package_manager_path: /usr/bin/microdnf  # downstream images use non-standard package manager
Copy to Clipboard Toggle word wrap

ENV ディレクティブを使用して、ANSIBLE_GALAXY_SERVER_LISTANSIBLE_GALAXY_SERVER_AUTOMATION_HUB_URLANSIBLE_GALAXY_SERVER_AUTOMATION_HUB_AUTH_URL などの環境変数を提供できます。詳細は、Ansible ドキュメントの Galaxy User Guide を参照してください。

セキュリティー上の理由から、ANSIBLE_GALAXY_SERVER_AUTOMATION_HUB_TOKEN に機密情報を保存しないでください。ARG ディレクティブを使用すると、ユーザーからの機密情報を入力として受け取ることができます。

ansible-builder コマンドを呼び出すときに -build-args を使用すると、この情報を提供できます。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat