問題タブ [docker-in-docker]
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 Build 内で ECR からプルできません
AWS CodeBuild を使用して、Docker Build の一部として ECR からイメージをプルしようとすると、認証情報の問題が発生します。
コンテキストについては、セットアップは次のとおりです。
Codebuild は、私たちが作成した内部 Docker ツールを呼び出しています。このツールは、docker ビルドを実行します。これを理解しやすくするコマンドの例:
「ourtoolscript」は、一連の環境変数を設定し、最後に指定したコマンドで docker run を呼び出す単なる bash スクリプトです。
問題
このツール内で docker ビルドを実行しようとしています。ローカルで動作し、ビルドのために ECR からイメージをプルしない他のレポでも動作します。
これを行っているので、タグ付けのすべてのロジックとすべてがツール内のスクリプトであり、それをすべてのレポに適用するだけです。そのため、ツールの外部で docker build を実行すると言うのは、受け入れられる解決策ではありません。
docker ファイルが "FROM" の ECR からプルすると、次のエラーで失敗します。
私が試したこと:
- https://docs.aws.amazon.com/codebuild/latest/userguide/troubleshooting.html#troubleshooting-versionsの手順を実行する
- 最初にツール内から docker pull を実行すると、うまくいきます。しかし、それは私たちが続けられることではありません
- ツールの外部で docker build を実行すると、機能します。
私が知っていること:
- CodeBuild が提供する資格情報は、問題なくツールに取り込まれています。問題なく引っ張ったり押したりできるので
- ECR イメージからビルドしていない場合は、問題なくビルドできます
- docker build がプルを行う方法と、単純な「docker pull」が機能する方法とでは何かが異なります
- 単純な「 docker build 」を実行すると。ツールの外部でビルド引数なし。それはうまくイメージを引き出します。したがって、これらの変数を使用して間違った道を進んでいると思います。
その他の情報:
私の docker build コマンド (いくつかの余分なものが削除されました):
docker - GitLab-ci Docker ビルド内で外部 bash スクリプトを実行する
docker:stable イメージを使用する gitlab-ci.yml から外部 (ローカル マシン上) の bash スクリプトを実行したいと考えています。gitlab docker イメージの外にある startup.sh を実行したいと思います。これは可能ですか、それともより良いオプションがありますか?
gitlab-ci.yaml
バッシュスクリプト