プロジェクトの継続的インテグレーションと展開(1)

1.継続的インテグレーションとは

CIと呼ばれる継続的インテグレーション(継続的インテグレーション)。継続的インテグレーションのアイデアは、コードを1日に複数回バックボーンにマージし、統合してテストすることです。これにより、エラーを早期に発見して修正できます。

継続的インテグレーションの利点は次のとおりです。

  1. プロジェクト統合の効率を改善するための自動統合展開。
  2. プロジェクトテスターがより速くテストできるようにします。
  3. 製品をより早く配達し、製品配達の品質を向上させます。

第二に、継続的インテグレーションプロセス

ここに画像の説明を挿入

継続的インテグレーションの基本的なプロセス:

  1. gitを使用してコードをGitlabにアップロードします。
  2. コードがプッシュされると、GitlabはJenkinsにプロジェクトをビルドするよう通知します。
  3. JenkinsはGitlabからコードを取得します。
  4. Jenkinsはプロジェクト構築タスクを実行し、プロジェクトの画像ファイルを生成します。
  5. Jenkinsは、生成されたイメージファイルをDockerウェアハウスにプッシュして保存します。
  6. Jenkinsはミラーインスタンスを作成し、インスタンスを開始します。

三、環境への備え

3.1Jenkinsをインストールする

3.1.1画像のダウンロード

# 下载镜像
docker pull jenkinsci/blueocean

# 启动容器
docker run --name jenkins -d -u root -p 8889:8080 --privileged=true -v jenkins-data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /home/jenkins:/home docker.io/jenkinsci/blueocean

3.1.2Jenkinsにログインします

最初にJenkinsにログインします。Jenkinsを初めて実行するときは、Jenkinsのロックを解除する必要があります。最初にロック解除パスワードを見つける必要があります。

# 进入jenkins
docker exec -it jenkins bash

# 查看密码
cat /var/jenkins_home/secrets/initialAdminPassword

パスワードをコピーして入力ボックスに貼り付けたら、[続行]ボタンをクリックします。
ここに画像の説明を挿入

3.1.3SSHプラグインをインストールします

Jenkinsホームページの左側にある[システム管理]をクリックし、[プラグイン管理]を選択します。
ここに画像の説明を挿入
「詳細」を選択して、アップグレードサイト情報を変更します。
ここに画像の説明を挿入
一般的に使用されるサイトは次のとおりです。

http://mirror.xmission.com/jenkins/updates/update-center.json
http://mirrors.shu.edu.cn/jenkins/updates/current/update-center.json
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json

さらに、jenkinsが外部ネットワークにアクセスできるようにするには、Dockerの構成を変更する必要があります。

sudo vi /etc/docker/daemon.json

DNSパラメータを追加します。

{
    
    
   "registry-mirrors": [
    "http://hub-mirror.c.163.com"
   ],
   "dns":["8.8.8.8","114.114.114.114"]
}

設定が完了したら、dockerを再起動します。

SSHプラグインをインストールする手順は次のとおりです。

ステップ1:インストールするオプションのプラグインからSSHプラグインを選択します。
ここに画像の説明を挿入
インストールが成功すると、「インストール済み」でSSHプラグインを表示できます。
ここに画像の説明を挿入
手順2:リモートSSHサービスのアカウントとパスワードを構成します。

Jenkinsホームページの左側にある[資格情報]の下の[システム]をクリックします。
ここに画像の説明を挿入
「グローバル資格情報」をクリックします。ここに画像の説明を挿入
左側の[資格情報の追加]をクリックしてから、リモートSSHのユーザー名とパスワードを入力し、[保存]ボタンのインターフェイスをクリックします。
ここに画像の説明を挿入
手順3:SSHサイトを構成します。

Jenkinsホームページの左側にある[システム管理]をクリックし、[システム構成]を選択します。
ここに画像の説明を挿入
上記のインターフェイスでリモートsshサーバーのIPとポートを構成し、手順2を選択して資格情報を設定します。

3.1.4グローバルツール構成

Jenkinsホームページの左側にある[システム管理]をクリックし、[グローバルツール構成]を選択します。
ここに画像の説明を挿入

  1. Mavenの構成:
    ここに画像の説明を挿入

  2. JDKの構成:
    ここに画像の説明を挿入

  3. Gitの構成:
    ここに画像の説明を挿入

3.2Gitlabをインストールする

3.2.1Gitlabをインストールする

まず、redis、postgresql、およびgitlabミラーをプルします。

# 拉取镜像
docker pull sameersbn/redis
docker pull sameersbn/postgresql
docker pull gitlab/gitlab‐ce

イメージをプルした後、redis、postgresql、およびgitlabコンテナーをそれぞれ作成します。

# 创建postgresql容器
docker run --name postgresql -d --privileged=true -e 'DB_NAME=gitlabhq_production' -e 'DB_USER=root' -e 'DB_PASS=root' -e 'DB_EXTENSION=pg_trgm' -v /home/zhongliwen/opt/postgresql/data:/var/lib/postgresql sameersbn/postgresql

# 创建redis容器
docker run --name redis -d --privileged=true -v /home/zhongliwen/opt/redis/data:/var/lib/redis redis

# 创建gitlab容器
docker run --name gitlab -d --link postgresql:postgresql --link redis:redisio --hostname 192.168.31.20 -p 10022:22 -p 8899:80 -e 'GITLAB_PORT=8899' -e 'GITLAB_SSH_PORT=10022' -e 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' -e 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string' -e 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string' -e 'GITLAB_HOST=192.168.31.20' -e 'SMTP_AUTHENTICATION=login' -v /home/zhongliwen/opt/gitlab/data:/home/git/data docker.io/gitlab/gitlab-ce

gitlabコンテナーを開始するには、ヘルスチェックが必要です。これには比較的長い時間がかかります。起動が成功したら、ブラウザでhttp://192.168.31.20:8899にアクセスします。インターフェイスは次のとおりです。
ここに画像の説明を挿入

3.2.2GitLabでプロジェクトを作成する

[新しいプロジェクト]ボタンをクリックして、新しいプロジェクトを作成します。
ここに画像の説明を挿入
プロジェクト名を入力し、[プロジェクトの作成]ボタンをクリックします。
ここに画像の説明を挿入
作成が完了すると、作成したばかりのプロジェクト情報がホームページに表示されます。

3.2.3GitLabからプロジェクトをチェックしてください

ステップ1:IdeaでGitコマンドを構成します。
ここに画像の説明を挿入
Gitファイルディレクトリの色を設定します。
ここに画像の説明を挿入
ステップ2:gitを使用してプロジェクトをチェックアウトします。
ここに画像の説明を挿入
Gitウェアハウスのプロジェクトアドレスを入力します。
ここに画像の説明を挿入
ステップ3:コードをGitLabに送信します。

git add *
git commit -m "备注"
git push

3.3Dockerプライベートウェアハウスを構成する

# 创建docker私有仓库
docker run --name docker-registry -d -p 5000:5000 registry

作成が成功した場合、ブラウザでhttp://192.168.31.20:5000/v2/_catalogと入力すると、インターフェイスは次のように表示されます。

{"repositories":[]}

上記の応答結果は、Dockerプライベートウェアハウスにミラーがないことを意味します。

デフォルトでは、docker-registryはhttpsが画像を送信することのみを許可します。httpをサポートする場合は、docker構成ファイルを変更する必要があります。

vi /etc/docker/daemon.json

insecure-registriesパラメーターを追加します。

{
    
    
   "registry-mirrors": [
    "http://hub-mirror.c.163.com"
   ],
   "dns":["8.8.8.8","114.114.114.114"],
   "insecure-registries":["192.168.31.20:5000"]
}

変更が完了したら、dockerサービスを再起動します。

おすすめ

転載: blog.csdn.net/zhongliwen1981/article/details/105896002