DockerでGit環境を構築して構成するプロセス

DockerでGit環境を構築して構成するプロセス

DockerでGit環境を構成する

仕事上、Docker 環境で GitLab リポジトリを操作する必要があるシナリオに遭遇したため、事前に Docker で Git 環境を構築する必要がありました。

Docker での Git リポジトリの操作は完全に自動化されているため、リポジトリの pull や submit の操作はパスワードなしで実行する必要があります。ここでは SSH を使用してパスワードなしで操作を実行します。

したがって、最初に SSH を設定し、次に Docker 環境を設定します。

SSHキーの設定

まずSSHキーを生成します:

sshエージェント
$(ssh-agent -s) を評価する
ssh-keygen -o -t rsa -b 4096 -C "{ユーザー名}"
ssh-add ~/.ssh/id_rsa //.bashrcに追加

GitLab ページに移動してログインし、「設定」を選択します。

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

左側のナビゲーション バーで SSH キーを選択します。

以前に生成した公開鍵id_rsa.pubファイル (ファイルは~/.ssh/id_rsa.pubにあります) を次の領域にコピーします。

ここに画像の説明を挿入

次に、「キーの追加」をクリックします。

ここに画像の説明を挿入

このようにして、SSH 公開鍵は GitLab ユーザーにバインドされ、今後そのユーザーを使用して Git リポジトリに対してパスワードなしの操作を実行できるようになります。

Docker環境を構成する

まず、秘密鍵を Dockerfile と同じディレクトリにコピーし (プロジェクト内に Dockerfile があると仮定)、Dockerfile を構成します。

# GitLabのSSH環境を設定する
mkdir -p /root/.sshを実行します。
id_rsa /root/.ssh/ をコピーする
実行 echo "StrictHostKeyChecking no" >> /etc/ssh/ssh_config \
    && echo "UserKnownHostsFile /dev/null" >> /etc/ssh/ssh_config
git config --global user.email "[email protected]" を実行します。\ 
    && git config --global user.name "ユーザー名"

このコードを挿入するだけです。user.email と user.name には、以前に GitLab SSH キーを設定したアカウント番号を使用します。

この時点で、Docker 内の Git リポジトリをパスワードなしで操作できます。

起こりうるエラー

以下のエラーがまだ存在する場合:

ここに画像の説明を挿入

これはid_rsa 權限問題,通過在Dockerfile 中加入

chown 1000:1000 /root/.ssh/id_rsa を実行します。

問題は解決しました。

以上で、Docker で Git 環境を構築・設定する手順についての説明は終了です。Docker で Git 環境を構築する方法の詳細については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Docker+K8S+GitLab/SVN+Jenkins+Harbor をベースにした継続的インテグレーション配信環境の構築に関する詳細なチュートリアル
  • Docker ベースの GitLab 環境をデプロイする方法と手順
  • Dockerを使用してクローンリポジトリを使用してGitイメージを構築する
  • Dockerを使用してGitlabを素早くデプロイする方法
  • Docker-compose ワンクリックデプロイ gitlab 中国語版の方法手順
  • Centos7はdockerを使ってgitlabサーバーを構築する
  • Dockerを使用してgitlabを構築する詳細な説明

<<:  HTML コマンドラインインターフェースの実装

>>:  MySQL シリーズ 9 MySQL クエリ キャッシュとインデックス

推薦する

seata docker 高可用性デプロイメントの詳細な紹介

バージョン1.4.2公式ドキュメントドッカーハブ起動する環境変数SEATA_CONFIG_NAMEを...

Google Chromeの自動入力問題に対する完璧な解決策

Google Chrome では、ログインに成功すると、パスワードを記憶するかどうかを尋ねるメッセー...

MySQL における varchar 型と char 型の違い

目次前述のVARCHAR型VARCHAR適用可能な状況CHAR型テストVARCHAR(5)とVARC...

MySQL でのストアド プロシージャと関数の作成の詳細な説明

目次1. ストアドプロシージャ1.1. 基本構文1.2 実行権限を指定してストアドプロシージャを作成...

Centos ベースイメージの作成方法

序文現在、私の会社で使用しているオペレーティングシステムはすべて CentOS7.4 で、アプリケー...

MySql 5.6.36 64 ビット グリーン バージョンのインストール グラフィック チュートリアル

MySQL のインストールについてはインターネット上に多くの記事がありますが、今日ノート PC にイ...

MySQLは適切なストレージエンジンを選択します

データベースに関して最もよく聞かれる質問の 1 つは、現在のビジネス ニーズを満たす MySQL の...

MySQL の悲観的ロックと楽観的ロックの使用例

悲観的ロック悲観的ロックは、データを悲観的であるとみなします。データをクエリするときに、ロックを追加...

Vue.js フロントエンドフレームワークにおけるイベント処理の概要

1. v-onイベント監視DOM イベントをリッスンするには、v-on ディレクティブを使用します。...

Dockerの国内イメージソースを変更する方法

Dockerデーモンのアクセラレータを構成する設定ファイルから Docker を起動し、/etc/d...

DockerでJavaプログラムを起動する方法

シンプルなSpring Boot Webプロジェクトを作成するアイデア ツールを使用して、Sprin...

divの適応高さは残りの高さを自動的に埋めます

シナリオ 1: HTML: <div class="outer"> ...

JSのバイナリファミリーについての簡単な説明

目次概要ブロブBlob の動作BLOB ダウンロード ファイルブロブ画像のローカル表示BLOB ファ...

WeChatミニプログラムがいいねサービスを実装

この記事では、WeChatアプレットの具体的なコードを参考までに紹介します。具体的な内容は次のとおり...

SQL ROW_NUMBER() および OVER() メソッドのケーススタディ

構文フォーマット: row_number() over(partition by grouping ...