問題タブ [dockerhub]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - パスワードなしの Docker Hub ログイン
それで、私は何かを理解しようとしていますが、今のところ何も見ていません。
Docker ハブ アカウントをセットアップし、CI サーバーからプライベート リポジトリにプッシュし、本番環境のボックスからプルしたいと考えています。
しかし、私が見る限り、これを行う唯一の方法は、すべてのマシンにアクセスしてパスワードを入力することです。これは、Web ログインに使用するものと同じです。
そんなはずないですよね?見逃したものはありますか?
docker - Dockerfile からの docker pull と docker build の長所と短所は何ですか?
私は約 1 か月間 docker をいじっていましたが、今ではいくつかのイメージがあります。最近、そのうちの 1 つを他の人と共有したいと思い、そのイメージ X を DockerHub にプッシュして、彼が私のリポジトリからプルできるようにしました。
ただし、これは時間の無駄のようです。ここで費やした合計時間は、私が docker push を実行した時間と、彼が docker pull を実行した時間です。そのイメージ X をビルドするのに必要な Dockerfile を彼に送信した場合、コストは Dockerfile を作成する時間、テキスト ファイルを渡す時間、および彼が docker build を実行する時間になります。私のDockerfilesをうまく維持してください。
それが私の質問です。これら 2 つのアプローチの長所と短所は何ですか? Docker Inc. が DockerfileHub サービスではなく DockerHub サービスを開始することを選んだのはなぜですか?
提案や回答をいただければ幸いです。どうもありがとう!
git - 複数のプライベート リポジトリを使用した Dockerhub 自動ビルド
自動 dockerhub ビルド中に複数のプライベート git リポジトリに接続する方法はありますか? 私たちはgolangアプリを構築しており、ビルドの一部として他のプライベートリポジトリを「取得する」必要があります。現時点では、ドッカーがそれらに接続できず、ターゲットのプライベートリポジトリのみに接続できないため、失敗します。
デプロイ キーは Dockerhub 経由でインストールされるため、メイン リポジトリは問題ありませんが、その後のプライベート リポジトリのインポートは失敗します。
私が見ることができるこれを回避する1つの方法は、イメージをローカルでビルドし、それをdockerhubに「docker push」してから、dockerhubと自動ビルドシステムの目的を無効にするデプロイ側でプルダウンすることです。もう 1 つは、基本イメージに ssh キーを焼き込むことですが、これはあまりお勧めできません。
sshキーをイメージに焼き付けたり、ローカルに構築したりすることを伴わない、これに対する解決策を誰かが持っていますか?
どうもありがとう。
docker - Docker イメージを新しい Docker ハブ アカウントにプッシュすると失敗する
イメージをプッシュする Docker Hub アカウントを変更する必要があります。以前はファイルdocker login
を更新してから、次を実行しました( 、、および実際の値の一般的なプレースホルダーとして機能します):.dockercfg
account
image
tag
docker push account/image:tag
すぐに次のエラーが表示されます。
docker ハブのプライベート リポジトリにプッシュしようとしていますが、認証が一致することを再確認しました。なぜこれが失敗するのですか?どうすれば修正できますか?
docker - プライベート リポジトリを Docker Hub にプッシュすると失敗する: メタデータのアップロード中に HTTP コード 504 が発生する
プライベート リポジトリを Docker ハブにプッシュしようとしていますが、次のエラーが繰り返し発生します。
メタデータのアップロード中の HTTP コード 504: 値の先頭を検索する無効な文字 '<'
このリポジトリは以前に正常にプッシュされました。しかし、今日はこのエラーで終わります。どうすればうまくプッシュできますか?
アップデート
10回くらいやってやっと押した。それらの失敗の原因は何だろうか。
docker - docker タグを自動的に作成することは可能ですか?
マスターにコミットするたびに、または新しい git タグを作成するたびに、docker イメージをバージョン管理したいと考えています。自動化された Docker レジストリを使用することは可能ですか? これまでのところ、特定のブランチでのビルドのみを見つけることができましたが、新しい git タグをプッシュするたびに DockerHub に新しい docker タグを作成するように指示する方法が見つかりませんでした
deployment - Docker は毎回ビルド/プッシュします - 継続的な展開には実用的ですか?
1 日に 5 ~ 10 回デプロイする場合、デプロイするたびに Docker イメージを完全に再構築してプッシュすることは本当に実用的ですか?
CircleCI のContinuous Integration and Delivery with Dockerに記載されている利点を認めます。つまり、次のとおりです。
Elastic Beanstalk では、ビルドされたイメージの代わりに Dockerfile と関連するソース コードをデプロイすることもできますが、CircleCI でイメージを事前にビルドし、その上で何らかの形式の検証を実行すると、ビルド環境を削除するため、デプロイをより決定論的にすることができます。テストと本番の間で異なる変数として。
ただし、すべての依存関係とソース コードを含めると、完全にビルドされた webapp イメージは 1 GB 近くになります。ビルド間で実質的に 99% が変わらない場合、最大 200GB/月 (つまり、毎日 10 コミット、継続的にデプロイ) をデプロイすることが実際的であるかわかりません。つまり、機能を追加するために変更された HTML、JS、または CSS の 1,000 分の価値があるだけかもしれません。Docker イメージにほとんど変更されないソフトウェアが含まれ、残りはバンドルの一部として圧縮されるアプローチを好みます。これにより、自己完結型の展開ファイルが作成されますが (ダウンロードを必要とする依存関係がなくなります)、ビルド時間と帯域幅が大幅に削減されます。
docker - docker パブリック リポジトリにプッシュするときに手動で「最新」のタグを付ける必要がありますか?
画像があるとしますme/mystuff:v0.0.1
リポジトリにプッシュすると、次のようになります。
latest
は作成されず、別のマシンからプルすると、不平を言うでしょう。
の場合、見つからないというエラーが発生します。me/mystuff:latest
latest タグを追加して、パブリック リポジトリに明示的にプッシュできます。
次に、別のマシンから:
latest が存在するため動作します。
また、最新版が存在すると、新しい番号付きバージョンがプッシュされたときに自動更新されないこともわかっています。
手動で最新のタグを付けて、最新の番号付きバージョンを自動的に指すようにするこの手順をどうにかしてなくすことはできますか?
それとも、開発バージョン (vN.NN のみでタグ付け) を本番バージョン (最新のタグ付け) から分離できるようにするなどの理由がありますか?