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 クエリ キャッシュとインデックス

推薦する

Centos7 に yum を使用して MySQL をインストールし、リモート接続を実現する方法

Centos7はyumを使用してMySQLをインストールし、リモート接続を実現する方法です。MySQ...

React ページ ターナーの実装 (フロント エンドとバックエンドを含む)

目次フロントエンド上記のアイデアに従って、ページめくり機能を設計して記述します。バックエンド(Jav...

Linuxのlocateコマンドの使い方

01. コマンドの概要実際には、locate コマンドは find -name の別の書き方ですが、...

MySQL の基本ステートメントを最適化するための 10 の原則の概要

序文データベースの応用において、プログラマーは継続的な実践を通じて多くの経験を積んできました。これら...

Windows 8.1 で MySQL5.7 のルート パスワードを忘れた場合の解決方法

【背景】最近勉強中に非常に恥ずかしいことに遭遇しました。MySQL のパスワードを忘れてしまい、My...

円形/扇形メニューを2分で実装する方法を教えます(基本バージョン)

序文このプロジェクトでは円形のメニューが必要です。オンラインで検索しましたが、適切なものが見つからな...

dockerでifconfigが利用できない問題を解決する

最近、docker を学習していたときに、docker コンテナ内のネットワーク状態を照会するために...

JS を使用して要素が配列であるかどうかを判断する例

検証できるデータの種類は次のとおりです a = [1,2,3,4,5,6]とします。 b = [とし...

Windows 上の Docker にさまざまなソフトウェアをインストールする詳細なプロセス

1. MySQLをインストールする # docker で mysql をダウンロード docker ...

Vueコンポーネントの再利用と拡張の詳細な説明

目次概要延長は必要ですか?スロットJavaScript ユーティリティ関数拡張コンポーネントの複数の...

MySQL での数値のフォーマットの詳細な説明

最近、仕事の都合で、MySQL で数字をフォーマットする必要がありましたが、インターネット上にはほと...

Ubuntu環境でのPHP関連のパスと変更方法

Ubuntu環境におけるPHP関連パスPHP パス /usr/bin/php phpize5 /us...

30分でReact Hooksを包括的に理解できます

目次概要1. 使用状態1.1 3つの概念に関する質問1.2 例1.3 注記2. リデューサーを使用す...

要素の読み込み効果を実現するための純粋なHTML+CSS

これは Element UI の読み込みコンポーネントのエフェクトです。かっこいいですね。実装してみ...

VMwareを使用したPermeateレンジシステムのインストール手順の詳細説明

1. 背景私たちは時々社内研修を行っており、実験環境をよく利用しています。最初はdockerコンテナ...