プライベート GitLab モジュールを使用して Go アプリを Docker 化する
プライベート GitLab モジュールを使用して Go アプリを Docker コンテナーに構築する場合、以下をセットアップすることが重要ですSSH 認証を効果的に。参照された質問の問題に対処する改善されたアプローチは次のとおりです。
Updated Dockerfile
GitLab からプライベート パッケージをプルするには、Dockerfile 内の次の行を変更します。
# Allow private repo pull RUN git config --global url."https://my-personal-access-token:[email protected]/".insteadOf "https://gitlab.com/"
SSH構成
次のコマンドを更新して SSH キーを追加し、SSH を使用するように Git を構成します。
RUN mkdir ~/.ssh RUN touch ~/.ssh/known_hosts RUN ssh-keyscan -t rsa gitlab.com >> ~/.ssh/known_hosts
Build Command
Use Docker の実験的な構文を使用し、 --mount=type=ssh オプションを指定して SSH を有効にします。マウント:
DOCKER_BUILDKIT=1 docker build --progress=plain --mount=type=ssh .
SSH 接続のデバッグ
SSH 接続の問題をデバッグするには、ビルド手順の前に次のコマンドを実行します:
RUN ssh -A -v -l git gitlab.com
AppArmorトラブルシューティング
AppArmor が原因でアクセス拒否エラーが発生した場合は、Docker apparmor プロファイル /var/lib/snapd/apparmor/profiles/snap.docker.docker を変更し、次の行を追加します:
/run/user/<uid>/keyring/ssh rw,
ここで
Key Filename
認証に使用される SSH キーが id_rsa などのデフォルト名であることを確認します。 Docker の .ssh/config ファイルのホスト エントリを構成して、カスタム キー名を指定します。
次の手順に従ってください。 Docker コンテナ内で GitLab のプライベート モジュールを利用する Go アプリを構築できるようになります。
以上がSSH 認証でプライベート GitLab モジュールを使用して Go アプリを Docker 化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。