Dockerを使用しないコンテナのビルド


このポストでは、DockerFilesの詳細について心配しなくても、コンテナを構築する方法をすぐに示します.

なぜ


Dockerを使用しているパイプラインを設定しているほとんどの開発者は、すでに独自のDockerイメージを構築するという詳細に精通していますが、新しいもののためには、これは少し圧倒的です.あなたが考慮しなければならないこと
  • アドバンスキャッシング
  • はセキュリティ
  • に関してベストプラクティスを適用します
    軽量の最終的なイメージを持っている
  • マルチステージセットアップ
  • 最新242479182まであなたのベースイメージを維持している

  • のイメージの
  • 再現性
    これがすべてあなたに全く新しいならば、コンテナから始めるあなたの最高の賭けは最初のステップとしてBuildPackを学ぶことによってあります.



    Buildpackは2011年にHerokuバックによって開始されて、現在公式に雲ネイティブコンピューティング財団の一部で、最近、サンドボックスからインキュベーション(see post)に行きました.それはあなたが自動的に必要なツールを構築するソースコードに基づいて検出することができます、それはあなたのコードをイメージを使用する準備に変換します.

    岐阜大学


    GitLabでは、現在使用されている2つの方法があります.
    Docker
  • Docker
  • kanikoビルド実行者
  • 両方とも起動時にDockerFileを使用しますが、Kaninkoは実行するためにDockerデーモンを必要としません.これは、これが建築コンテナで最も好ましい(そして、進んだ)アプローチである理由です.以下に、Auto devopsで始まるアプリケーションを構築する際に異なるアプローチを示します.また、例のGitリポジトリfastify-example-buildpacksでこれらのアプローチを見つけることもできます

    自動devpsでビルドパック


    GitLabでは、“自動devops”とボックスのビルドパックを使用することができます.“自動devops”を自動的にあなたのプロジェクトを構築し、GitLabレジストリにそれを公開するデフォルトとしてHerokuishビルドを使用します.環境変数AUTO_DEVOPS_BUILD_IMAGE_CNB_ENABLEDをGitlabエージェントで使用することで、これをオーバーライドできます.これにより、クラウド固有の基盤の一部であるBuildPackを使用できます.今のところ、これはまだgitlab上でベータ版にありますが、彼らはこれが現在のHerokuishビルドの代替になると予想します.
    include:
    - template: Auto-DevOps.gitlab-ci.yml

    variables:
    AUTO_DEVOPS_BUILD_IMAGE_CNB_ENABLED: 'true'

    パックCLIを使用したビルドパック


    使用しているビルトインについてのコントロールが必要な場合は、エージェントにインストールする必要があるpack CLIを使用できます.これは簡単に次の例で行います.
    docker:
    stage: build
    services:
    - docker:19.03.12-dind
    variables:
    DOCKER_HOST: tcp://docker:2375
    DOCKER_TLS_CERTDIR: ''
    image: docker:19.03.12
    before_script:
    - wget https://github.com/buildpacks/pack/releases/download/v0.13.1/pack-v0.13.1-linux.tgz
    - tar xvf pack-v0.13.1-linux.tgz
    - rm pack-v0.13.1-linux.tgz
    script:
    - ./pack build $IMAGE_NAME --builder gcr.io/buildpacks/builder
    これは明示的にGoogleによって提供されるビルドパックを使用します.あなたはGithubでこれらについての詳細情報を見つけることができます

    Googleクラウドプラットフォームでビルドパック


    これで雲の実行に直接アプリを展開することもできます.必要なコマンドは以下の通りです.
    gcloud beta run deploy --source=[DIRECTORY] [CLOUD_RUN_SERVICE]

    下方


    カスタムビルドスクリプトはサポートされていないので、アプリケーションをコンパイルする必要があります.たとえば、アプリケーションをパッケージとしてイメージできるようにします.さらに、特定のネイティブの依存関係は、最初の場所でベースイメージから始める引数でありえました.最後に作成された画像は、アプリケーションによって必要とされない様々なユースケースに対応しているため、より大きいです.

    概要


    Buidpackを起動し、あなたのコンテナーをカスタマイズする必要がある場合は、デフォルトのイメージをあなたのために作成し、完全にDockerFileを使用して好みにカスタマイズを選ぶことができます.