数日前、私は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イメージ解析
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスどのような状況でメモ取り...
近年、クラウド コンピューティングは、俊敏性、拡張性、コストなどの利点により、企業が IT 変革を実...
ブログは、企業に顧客とのよりカジュアルでパーソナライズされたコミュニケーション方法を提供します。SE...
最近、多くのブロガーが去っていくのを見ました。グループでチャットしているとき、彼らは次のように話して...
VMWARE 仮想化環境の普及に伴い、ますます多くの VMWARE ベースのアプリケーションをバック...
月収10万元の起業の夢を実現するミニプログラム起業支援プラン著者丨ルーティン編集部出典: Opera...
[[262812]] PTC (NASDAQ: PTC) は、産業用接続プラットフォームの KEPS...
Kubernetes ネットワークを使用すると、k8s ネットワーク内での通信を構成できます。フラッ...
2、3年前に戻ってみれば、バスや地下鉄に乗るのにアリペイを使っている人を見て人々は驚いたかもしれませ...
2018 年を通して、私はミニ プログラムが新しい軌道なのか、あるいは配当があるのかと悩んでいま...
[51CTO.com からのオリジナル記事] Red Hat は、コミュニティ主導のアプローチで信頼...
今年の感謝祭、ブラックフライデー、サイバーマンデーは合計でほぼ1週間続き、遅くとも11月28日午後4...
12月22日午前、昨晩の百度沸点祝賀会で、百度の2013年検索ランキングが発表された。「天気」という...
SEO とは何ですか? 多くの友人が不満を言うのを聞いたことがあります。なぜランキングのために一生懸...
アリババはシングルチップAIパフォーマンス記録を破り、再び世界トップのAI評価を獲得した。北京時間4...