Dockerを使用しないコンテナのビルド
5321 ワード
このポストでは、DockerFilesの詳細について心配しなくても、コンテナを構築する方法をすぐに示します.
Dockerを使用しているパイプラインを設定しているほとんどの開発者は、すでに独自のDockerイメージを構築するという詳細に精通していますが、新しいもののためには、これは少し圧倒的です.あなたが考慮しなければならないことアドバンスキャッシング はセキュリティ に関してベストプラクティスを適用します
軽量の最終的なイメージを持っているマルチステージセットアップ 最新242479182まであなたのベースイメージを維持している
のイメージの再現性
これがすべてあなたに全く新しいならば、コンテナから始めるあなたの最高の賭けは最初のステップとしてBuildPackを学ぶことによってあります.
何
の Docker kanikoビルド実行者 両方とも起動時にDockerFileを使用しますが、Kaninkoは実行するためにDockerデーモンを必要としません.これは、これが建築コンテナで最も好ましい(そして、進んだ)アプローチである理由です.以下に、Auto devopsで始まるアプリケーションを構築する際に異なるアプローチを示します.また、例のGitリポジトリfastify-example-buildpacksでこれらのアプローチを見つけることもできます
GitLabでは、“自動devops”とボックスのビルドパックを使用することができます.“自動devops”を自動的にあなたのプロジェクトを構築し、GitLabレジストリにそれを公開するデフォルトとしてHerokuishビルドを使用します.環境変数
使用しているビルトインについてのコントロールが必要な場合は、エージェントにインストールする必要があるpack CLIを使用できます.これは簡単に次の例で行います.
これで雲の実行に直接アプリを展開することもできます.必要なコマンドは以下の通りです.
カスタムビルドスクリプトはサポートされていないので、アプリケーションをコンパイルする必要があります.たとえば、アプリケーションをパッケージとしてイメージできるようにします.さらに、特定のネイティブの依存関係は、最初の場所でベースイメージから始める引数でありえました.最後に作成された画像は、アプリケーションによって必要とされない様々なユースケースに対応しているため、より大きいです.
Buidpackを起動し、あなたのコンテナーをカスタマイズする必要がある場合は、デフォルトのイメージをあなたのために作成し、完全にDockerFileを使用して好みにカスタマイズを選ぶことができます.
なぜ
Dockerを使用しているパイプラインを設定しているほとんどの開発者は、すでに独自のDockerイメージを構築するという詳細に精通していますが、新しいもののためには、これは少し圧倒的です.あなたが考慮しなければならないこと
軽量の最終的なイメージを持っている
これがすべてあなたに全く新しいならば、コンテナから始めるあなたの最高の賭けは最初のステップとしてBuildPackを学ぶことによってあります.
何
Buildpackは2011年にHerokuバックによって開始されて、現在公式に雲ネイティブコンピューティング財団の一部で、最近、サンドボックスからインキュベーション(see post)に行きました.それはあなたが自動的に必要なツールを構築するソースコードに基づいて検出することができます、それはあなたのコードをイメージを使用する準備に変換します.
岐阜大学
GitLabでは、現在使用されている2つの方法があります.
Docker
自動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を使用して好みにカスタマイズを選ぶことができます.
Reference
この問題について(Dockerを使用しないコンテナのビルド), 我々は、より多くの情報をここで見つけました https://dev.to/gbostoen/build-containers-without-using-docker-bkテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol