1.継続的インテグレーションとは
CIと呼ばれる継続的インテグレーション(継続的インテグレーション)。継続的インテグレーションのアイデアは、コードを1日に複数回バックボーンにマージし、統合してテストすることです。これにより、エラーを早期に発見して修正できます。
継続的インテグレーションの利点は次のとおりです。
- プロジェクト統合の効率を改善するための自動統合展開。
- プロジェクトテスターがより速くテストできるようにします。
- 製品をより早く配達し、製品配達の品質を向上させます。
第二に、継続的インテグレーションプロセス
継続的インテグレーションの基本的なプロセス:
- gitを使用してコードをGitlabにアップロードします。
- コードがプッシュされると、GitlabはJenkinsにプロジェクトをビルドするよう通知します。
- JenkinsはGitlabからコードを取得します。
- Jenkinsはプロジェクト構築タスクを実行し、プロジェクトの画像ファイルを生成します。
- Jenkinsは、生成されたイメージファイルをDockerウェアハウスにプッシュして保存します。
- 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ホームページの左側にある[システム管理]をクリックし、[グローバルツール構成]を選択します。
-
Mavenの構成:
-
JDKの構成:
-
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サービスを再起動します。