数日前、私はDockerfile[1]のHere-Doc構文をテストしましたが、役に立たないことがわかりました。私はただ表面的なだけだった。 Docker公式サイトのドキュメントにあるbuildkit[2]の紹介を再度読みました。これは Docker Engine 23.0 以降のデフォルトのビルダーです。 BuildKitopen_in_new は、従来のビルダーを置き換えるために改良されたバックエンドです。 BuildKit は、バージョン 23.0 以降の Docker Desktop および Docker Engine のユーザーのデフォルトのビルダーです。 つまり、前回の記事で述べた不便さはすべて自然に解消されることになります。 私は、HereDoc は役に立たない構文であるという誤解を注意深く分析し、以下の理由を発見しました。 テスト サーバーの Docker バージョンが低すぎます (20.x)。 ベースイメージを書いてからかなり時間が経っているので、複雑なRUNコマンドやCOPYコマンドはありません。 上記の点を踏まえて、いくつかの最適化を行いました。
結論としては、Here-Doc 構文は本当に素晴らしいということです。 一言で言えば、複数行の構文をサポートするだけでなく、組み込みのシェル スクリプトも直接サポートします。 素晴らしい Dockerfile ヒアドキュメント構文まず、公式 Web サイトのドキュメントに従って、Docker エンジンのバージョンを最新バージョンにアップグレードします。 Ubuntu - docker[3]を例に挙げる
次に、Docker Hub[4]で対応するredis公式dockerfileを見つけます。 RUNコンテンツは&&でリンクされていないものの、;でセグメント化されて管理されていることがわかります。そして\、これはまだ少し不便です。 少し変更すると、(1) をすべて削除します。リンクとして使用されている\を削除し、(2)RUNのインデントをすべて削除します。 重要なポイント: これはシェル スクリプトです。つまり、ローカルテストが完了したら、それを Dockerfile に直接コピーできます。以前は、コマンドを連鎖するには && を使用する必要がありました。
docker buildコマンドを使用してイメージを直接ビルドし、実行結果を確認します。 トラブルシューティング変数の受け渡し問題以下の 2 つのモードに関しては、公式 Web サイトのドキュメントではその理由が説明されていません。これは比較実験結果から推測されただけであり、具体的な実装はまだ研究されていません。 モード 1 bash は EOT の直後にルート化されます。 このモードでは、最初の行の変数 dist を 2 行目の wget で使用することはできません。したがって、wget行によって実際に解析されるコマンドは
モード 2: 複数行コンテンツの最初の行でインタープリター #!/bin/bash が指定されている場合、すべてのコンテンツはシェル スクリプトと見なされます。 このモードでは、wget行によって実際に解析されるコマンドは
期待に応える ビルドキット構成ファイルなし
デフォルトの buildx 構成が見つからない場合は、以下を使用します。 |
<<: Dockerfileファイルを取得するためのDockerイメージ解析
leveloneservers は現在、米国 7.4 向けの大容量ハードディスク ストレージ VPS...
クラウド コンピューティング テクノロジーがさまざまな方向に進化しており、そのすべてがコンピューティ...
月収10万元の起業の夢を実現するミニプログラム起業支援プラン私の上司は最近レッドブルを買うのが好きな...
今日のインターネットの情報爆発では、膨大な量の新しい情報が毎日生成されています。企業コンテンツの配信...
上海の記者タオ・リー先日の中国経済人オブ・ザ・イヤー授賞式で、王建林氏が「近いうちにジャック・マー氏...
dreamhost、毎年恒例のブラックフライデー プロモーション、年間支払い割引 100 ドル (月...
パブリック クラウド全体とエッジでアプリケーションを提供する企業が増えており、Kubernetes ...
Ubuntu をインストールした後、vi から vim へのアップグレード、ソースの変更など、一部の...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますすべてのウ...
最近、Baidu Space を使って SEO 実験を行っており、多くの成果を上げています。 Bai...
11月2日、ByteDanceのインフラストラクチャチームは、NVMe-oF(NVMe over F...
今日、インターネットはユーザーエクスペリエンスにますます注目しています。一部の大規模なウェブサイトは...
ウェブサイトが検索エンジン最適化を行う際、最初に検討するのは間違いなく Baidu です。これは疑う...
一般的に、多くの友人は SEO を学ぶ方法として 2 つしか持っていません。1 つ目はインターネット...
今日、AI クラウド サービスは、データ サイエンティストや開発者を惹きつけ、自社のプラットフォーム...