Menu Close

2.6.2. カスタムビルドアーティファクトの作成



  1. 空のディレクトリーからはじめ、以下の内容を含む Dockerfile という名前のファイルを作成します。

    # In this example, `/tmp/build` contains the inputs that build when this
    # custom builder image is run. Normally the custom builder image fetches
    # this content from some location at build time, by using git clone as an example.
    ADD dockerfile.sample /tmp/input/Dockerfile
    ADD /usr/bin
    RUN chmod a+x /usr/bin/
    # /usr/bin/ contains the actual custom build logic that will be run when
    # this custom builder image is run.
    ENTRYPOINT ["/usr/bin/"]
  2. 同じディレクトリーに、dockerfile.sample という名前のファイルを作成します。このファイルはカスタムビルドイメージに組み込まれ、コンテンツビルドによって生成されるイメージを定義します。

    RUN touch /tmp/build
  3. 同じディレクトリーに、 という名前のファイルを作成します。このファイルには、カスタムビルドの実行時に実行されるロジックが含まれます。

    # Note that in this case the build inputs are part of the custom builder image, but normally this
    # is retrieved from an external source.
    cd /tmp/input
    # OUTPUT_REGISTRY and OUTPUT_IMAGE are env variables provided by the custom
    # build framework
    # performs the build of the new image defined by dockerfile.sample
    buildah --storage-driver vfs bud --isolation chroot -t ${TAG} .
    # buildah requires a slight modification to the push secret provided by the service
    # account to use it for pushing the image
    cp /var/run/secrets/ /tmp
    (echo "{ \"auths\": " ; cat /var/run/secrets/ ; echo "}") > /tmp/.dockercfg
    # push the new image to the target for the build
    buildah --storage-driver vfs push --tls-verify=false --authfile /tmp/.dockercfg ${TAG}