1. Jenkinsの紹介Jenkins はオープンソース ソフトウェア プロジェクトです。Java をベースに開発された継続的インテグレーション ツールです。継続的な反復作業を監視するために使用されます。ソフトウェアの継続的インテグレーションを可能にするオープンで使いやすいソフトウェア プラットフォームを提供することを目的としています。 2. Jenkinsをインストールしてデプロイするダウンロードアドレス: https://jenkins.io/download/ ここからwarパッケージをダウンロードします。バージョン: 1.642.3 LTS .war 1. 環境情報
2. 新しいJenkinsユーザーを作成する[root@osb30 ~]# グループ追加ジェンキンス [root@osb30 ~]# useradd -g jenkins jenkins [root@osb30 ~]# id ジェンキンス uid=501(jenkins) gid=501(jenkins) グループ=501(jenkins) [root@osb30 ~]# echo "wisedu" | passwd --stdin jenkins &> /dev/null 3. Jenkinsのインストール方法Jenkins をインストールするには、Tomcat デプロイメントと Java デプロイメントの起動の 2 つの方法があります。この実験では、Tomcat でのデプロイメントと起動を例に説明します。 (1)Tomcatを使ったデプロイメント a. まず、TomcatとJAVAをインストールし、環境変数を設定します(この手順についてはここでは説明しません。Javaの設定は必須です) ここでjdk 1.8.0_65をインストールしました。 b. 公式サイトからダウンロードしたjenkins.warファイルをtomcatの下のwebappsディレクトリに配置し、tomcatの/binディレクトリに入り、tomcatを起動してjenkinsを起動します。 ここではtomcat8を使用しています。 c. Jenkins を起動すると、webapps ディレクトリの下に Jenkins ディレクトリが自動的に作成されます。アクセス アドレスは http://localhost:8080/jenkins です。 [jenkins@osb30 ~]$ tar zxf apache-tomcat-8.0.30.tar.gz [jenkins@osb30 ~]$ mv jenkins.war apache-tomcat-8.0.30/webapps/ [jenkins@osb30 ~]$ cd apache-tomcat-8.0.30 [jenkins@osb30 apache-tomcat-8.0.30]$ bin/startup.sh Jenkins ホーム ディレクトリ: /home/jenkins/.jenkins が $user.home/.jenkins にあります 起動時にエラーが発生した場合:
解決する: [jenkins@osb30 ~]$ cd apache-tomcat-8.0.30/bin/ [jenkins@osb30 bin]$ vim catalina.sh JAVA_OPTS="-Xms1024m -Xmx1024m -Djava.awt.headless=true" d. Jenkinsにアクセスする http://172.16.206.30:8080/ジェンキンス (2)JavaデプロイメントがJenkinsを起動する jenkins.war が保存されているディレクトリに切り替えて、次のコマンドを入力します。 $ java -jar ジェンキンス.war 起動ポートを変更できます $ java -jar jenkins.war --httpPort=8000 次に、ブラウザに http://localhost:8080 と入力します (Firefox または Chrom を推奨)。localhost は、ローカル IP アドレスまたはコンピューター名にすることができます。 Jenkins を開くことができます。ポートを変更した後、アクセス アドレスのポートも同期的に変更する必要があります。 4. Jenkinsの認可とアクセス制御デフォルトでは、Jenkins にはセキュリティ チェックが含まれていないため、誰でも Jenkins の設定、ジョブを変更し、ビルドを開始できます。当然のことながら、複数の部門が連携して作業する必要がある大規模な企業では、セキュリティ チェックがないと多くの問題が発生します。 Jenkins のセキュリティは、次の方法で強化できます。 Jenkins にアクセスします: http://172.16.206.30:8080/jenkins 「システム管理」->「グローバル セキュリティの構成」をクリックし、「セキュリティを有効にする」をクリックすると、Jenkins の認証とアクセス制御を強化する方法が多数あることがわかります。 ポリシーを表示: 上図に示すように、デフォルトは「すべてのユーザーが何でもできる(制限なし)」です。 「セキュリティドメイン」と「ユーザー登録の許可」で「Jenkins 専用ユーザーデータベース」を選択し、登録後に Jenkins を管理できなくなることを防ぐために、「承認ポリシー」で最初に「すべてのユーザーが何でもできる (制限なし)」をクリックします。この時点で、Jenkins ページを更新すると、右上隅にログイン ボタンと登録ボタンが表示されます。 (1)管理者アカウントを登録する a. 「登録」をクリックし、まず管理者アカウントを登録します。 b. 「システム管理」->「グローバル セキュリティの構成」をクリックし、「承認ポリシー」で「セキュリティ マトリックス」を選択し、ユーザー/グループを追加し、管理者アカウントを追加し、管理者アカウントのすべての権限を追加し、匿名ユーザーに知らせたい機能をチェックします。 [注意]: 匿名ユーザーはここで読み取り権限を有効にする必要があります。有効にしないと、GitHub または Bitbucket の Webhook のその後の自動ビルドに権限が与えられません。 このオプションをチェックして、「保存」をクリックします。 この操作を完了すると、管理者アカウントでログインし、ログインしているユーザーのあらゆる操作権限を取り消すことができます。 以上の操作で、Jenkins の認証とアクセス制御が完了します。 5. Jenkinsシステム構成Jenkins - システム管理 - システム設定にログインし、Jenkins に必要な機能構成を追加します。これには次の側面が含まれます。 (1)JDKの設定 jdk オプションで、「JDK の追加」をクリックし、自動インストールをキャンセルして、jdk エイリアス (任意の名前) を入力します。JAVA_HOME は誰でも知っているはずです。jenkins が配置されているサーバーにインストールされている Java プログラムの HOME の場所を入力するだけです。win7 D:\Java\jdk1.8 linux /usr/lib/jvm/jdk1.7.0_51 など、異なるオペレーティング システムに応じて異なるパスを入力します。 設定後は必ず保存してください。 (2)git/svnバージョン管理を追加する jdk 構成など、使用するバージョンに応じてバージョンを制御するアプリケーションのパスを選択します。 [注意]: バージョン管理リポジトリとして Git を使用する場合、Jenkins にはデフォルトで Git がインストールされません。プラグイン管理インターフェースで Git を選択し、直接「インストール」をクリックする必要があります。 「システム管理」->「プラグインの管理」->「オプションのプラグイン」をクリックし、右上隅の「フィルター」フィールドに git と入力して検索します。 Git クライアント プラグインと Git プラグインを見つけて、それらの前に √ を付け、クリックして直接インストールします。 プラグインをインストールしています。 。 。 インストールが成功したら、Jenkins を再起動します。 [jenkins@osb30 ~]$ cd apache-tomcat-8.0.30 [jenkins@osb30 apache-tomcat-8.0.30]$ bin/shutdown.sh [jenkins@osb30 apache-tomcat-8.0.30]$ bin/startup.sh ;tail -f logs/catalina.out (3)JenkinsにMavenの設定を追加する まず、Jenkins が配置されているホストに Maven がインストールされているかどうかを確認します。 # mvn –バージョン -bash: mvn: コマンドが見つかりません インストールされていない場合は、まず Maven をインストールしてください。 a. CentOSにMavenをインストールする [root@osb30 ~]# cd /usr/local/ [root@osb30 ローカル]# wget http://apache.opencas.org/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz [root@osb30 ローカル]# tar zxf apache-maven-3.3.9-bin.tar.gz [root@osb30 ローカル]# ln -s apache-maven-3.3.9 maven [root@osb30 ローカル]# vim /etc/profile # 次の設定を追加します。 # Maven 構成。 MAVEN_HOME = /usr/local/maven PATH=$MAVEN_HOME/bin:$PATH をエクスポートします [root@osb30 ローカル]# ソース /etc/profile [root@osb30 ローカル]# mvn -version Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00) Maven ホーム: /usr/local/maven Java バージョン: 1.8.0_65、ベンダー: Oracle Corporation デフォルトのロケール: en_US、プラットフォームのエンコーディング: UTF-8 OS 名: "linux"、バージョン: "2.6.32-431.el6.x86_64"、アーキテクチャ: "amd64"、ファミリ: "unix" b.JenkinsでMavenを設定する インストールが完了したら、Jenkins にログインします。システム管理 -> システム設定をクリックします。 3. JenkinsはMavenスタイルのジョブを構築する1. 新しいMavenタスクを作成するJenkins にログインし、「新規」をクリックします。アイテム名を入力し、「Maven プロジェクトのビルド」を選択して、「OK」をクリックします。 2. ビルドタスクの構成3. ソースコード管理構成設定ページに移動し、「ソース コード管理」を見つけます。ここでは svn を使用しているため、プロジェクトが配置されているリポジトリのアドレスを入力します。 4. ビルドトリガーの設定「ソース コード管理」の下に「ビルド トリガー」があります。 「ビルド トリガー」は、完了したビルドの結果に基づいて新しいジョブをトリガーしたり、パラメーターを渡したりできる継続的インテグレーション トリガー プラグインです。デフォルトのオプションは、SNAPSHOT 依存関係がビルドされるたびにビルドです。つまり、コードが更新されるとプロジェクトがビルドされます。 定期的にビルドし、SCM でスケジュールされた自動ビルドを設定できます。両者の違いは次のとおりです。
12 時間ごとにビルドするように設定しました。 5. Mavenビルド設定(1)事前ステップ 「事前手順」オプションは、ビルド前の作業を構成するために使用され、ここでは変更は行われません。 (2)ルートPOMとゴールとオプションを設定する これは Maven プロジェクトなので、ビルド オプションにはルート POM と目標およびオプションの設定があります。ルート POM: プロジェクトの pom.xml ファイルの場所を入力します。注: これは相対的な場所です。ファイルが存在しない場合は、赤いプロンプトが表示されます。 たとえば、私はこうです: (3)ポストステップ Maven プロジェクトが作成された後、自動公開を実現するために、ビルドが完了するたびに war ファイルを Alibaba Cloud ホストに公開する必要もあります。シェルを追加することで自動公開を実装します。 Post ステップの下にある実行シェルを見つけます。 [注意]: Jenkins はユーザー jenkins としてシェル スクリプトを実行します。シナリオによっては、環境変数 PATH に注意してください。 イントラネット内の Jenkins ホストを信頼するように Alibaba Cloud ホストを構成します。 war パッケージはイントラネット サーバー上にあり、公開環境は Alibaba Cloud ホスト上にあるため、war パッケージを scp するときにパスワードを入力する必要がないように、ホストの相互信頼を構成する必要があります。私のイントラネット サーバーの IP は 172.16.206.30 で、外部 IP は 114.55.29.246 です。 [jenkins@osb30 ~]$ ssh-keygen -t rsa -f .ssh/id_rsa [jenkins@osb30 ~]$ ssh-copy-id -i .ssh/id_rsa.pub [email protected] 4. Jenkinsのメール通知設定1. Jenkinsの組み込みメール機能を設定する(1)システム設定を見つける (2)システム管理者のメールアドレスを入力する [注意]: システム管理者のメールアドレスを入力する必要があります。入力しないとメールを送信できず、以下のテストメールも送信できません。 (3)電子メール通知を見つけて、SMTPサーバーのアドレスを入力し、「詳細設定」をクリックして、送信者のアカウントとパスワードを入力します。 (4)「テストメールを送信して設定をテストする」をチェックし、受信者のアカウントを入力します。 この時点ですでに電子メールを送信できます。特定のジョブ構成で、「ビルド設定」を見つけて受信者の電子メール アドレスを入力しますが、ビルドが失敗した場合にのみ電子メールを送信できることがわかります。メール拡張プラグインをインストールしてカスタマイズできます。 2. メール拡張機能プラグインをインストールして使用する(1)メール拡張機能プラグインをインストールする このプラグインは Jenkins バージョン 1.5 以降をサポートしています。 「システム管理」 - 「プラグイン管理」 - 「電子メール拡張プラグインのインストール」に移動します。ビルドの結果に基づいてビルド レポートを送信できます。このプラグインは Jenkins バージョン 1.5 以降をサポートしています。 [注意]: インストール後にメール拡張プラグインを使用すると、組み込みのメール機能を放棄できます。 (2)メール拡張プラグインの設定と使用 「システム構成」→「システム設定」をクリックします。 拡張電子メール通知を見つけて、次の設定を入力します。 【注意】: 上記のユーザー名とパスワードは、「詳細設定」をクリックした後にのみ表示されます。ユーザー名とパスワードを入力する必要があります。そうしないと、メールを送信できません。 下の「保存」をクリックしてください。 次に、ジョブ設定ページに移動してこのプラグインを有効にします。電子メールで送信したいアイテムを見つけてクリックします。 [構成] をクリックし、[ビルド後のアクションの追加] をクリックして、[編集可能な電子メール通知] を選択します。 ビルド ログを添付し、[詳細設定] をクリックします。 トリガーを構成する: より詳しい紹介: http://www.cnblogs.com/zz0412/p/jenkins_jj_01.html 5. ソナー公式ドキュメント: http://docs.sonarqube.org/display/SONARQUBE45/Documentation 1. ソナーの紹介Sonar は、Java ソース コードの品質を管理するために使用される、コード品質管理用のオープン ソース プラットフォームです。プラグイン メカニズムを通じて、Sonar は pmd-cpd、checkstyle、findbugs、Jenkins などのさまざまなテスト ツール、コード分析ツール、継続的インテグレーション ツールを統合できます。これらの結果はさまざまなプラグインを通じて再処理され、コード品質の変化が定量的に測定されるため、さまざまな規模や種類のプロジェクトのコード品質を簡単に管理できます。 継続的インテグレーションツール(Hudson/Jenkins など)とは異なり、Sonar はさまざまなコードチェックツール(FindBugs、PMD など)の結果を Web ページに直接表示するだけでなく、さまざまなプラグインを通じてこれらの結果を再処理し、コード品質の変化を定量的に測定するため、さまざまなサイズや種類のプロジェクトのコード品質を簡単に管理できます。 他のツールのサポートに関しては、Sonar は IDE のサポートを提供するだけでなく、Eclipse や IntelliJ IDEA などのツールで結果をオンラインで表示できるようにします。また、Sonar は多数の継続的インテグレーション ツールのインターフェイス サポートも提供しているため、継続的インテグレーションで Sonar を使用するのに非常に便利です。 さらに、Sonar のプラグインは Java 以外のプログラミング言語のサポートも提供でき、国際化やレポートのドキュメント化も適切にサポートされています。 2. 環境要件http://docs.sonarqube.org/display/SONAR/要件 3. 新しいユーザーを作成する[root@osb30 ~]# グループ追加ソナー [root@osb30 ~]# useradd -g ソナー ソナー [root@osb30 ~]# id ソナー uid=502(ソナー) gid=502(ソナー) グループ=502(ソナー) [root@osb30 ~]# echo "wisedu" | passwd --stdin sonar &> /dev/null 4. JDKをインストールする[sonar@osb30 ~]$ java -バージョン Javaバージョン「1.8.0_65」 Java(TM) SE ランタイム環境 (ビルド 1.8.0_65-b17) Java HotSpot(TM) 64 ビット サーバー VM (ビルド 25.65-b01、混合モード) 5. データベースをインストールして構成する[root@osb30 ~]# mysql -uroot –p mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; mysql> 'sonar' というユーザーを作成します。ID は 'sonar' です。 mysql> 'sonar'@'%' に 'wisedu' によって識別されるすべての権限を GRANT ON sonar.* TO 'sonar'@'%'; mysql> 'wisedu' によって識別される 'sonar'@'localhost' に sonar.* のすべての権限を付与します。 mysql> 権限をフラッシュします。 6. ソナーをインストールするここで使用するバージョンはSonarQube 4.5.7 (LTS *) です。ソフトウェアをsonarユーザーのホームディレクトリにアップロードします。 [sonar@osb30 ~]$ 解凍 -oq sonarqube-4.5.7.zip [sonar@osb30 ~]$ vim sonarqube-4.5.7/conf/sonar.properties 次のフィールドを変更します (データベース情報を構成するだけで、他に変更する必要はありません)。 sonar.jdbc.ユーザー名: sonar sonar.jdbc.パスワード: wisedu sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true # オプションのプロパティ sonar.jdbc.driverクラス名: com.mysql.jdbc.Driver 7. ソナーを起動するSonar はデフォルトで jetty コンテナを統合しており、これを直接起動してサービスを提供することも、スクリプトを通じて war パッケージに組み込み、tomcat コンテナにデプロイすることもできます。 Sonar のデフォルトのポートは「9000」、デフォルトのコンテキスト パスは「/」、デフォルトのネットワーク インターフェイスは「0.0.0.0」、デフォルトの管理者アカウントとパスワードは admin/admin です。これらのパラメータは、構成ファイル sonar.properties で変更できます。このマシンのポート 9000 は他のプログラムによって使用されているため、ここでポートを変更しました。 [sonar@osb30 ~]$ vim sonarqube-4.5.7/conf/sonar.properties ソナーウェブポート=9003 [sonar@osb30 ~]$ sonarqube-4.5.7/bin/linux-x86-64/sonar.sh 開始 ログを表示します: [sonar@osb30 ~]$ tail -f sonarqube-4.5.7/logs/sonar.log 初めて起動するときに初期化ステートメントが表示されます。 8. ソナーを閉じる[sonar@osb30 ~]$ sonarqube-4.5.7/bin/linux-x86-64/sonar.sh を停止します 9. ソナーにアクセスするブラウザにhttp://172.16.206.30:9003/と入力してください デフォルトの管理者アカウントとパスワードは admin/admin です。 10. ソナープラグインSonar はさまざまなプラグインをサポートしています。プラグインのダウンロード アドレスは次のとおりです: http://docs.codehaus.org/display/SONAR/Plugin+Library ダウンロードしたプラグインを ${SONAR_HOME}extensions\plugins ディレクトリにアップロードし、sonar を再起動します。 Sonar は、プラグインのコレクションである Java Ecosystem プラグインをデフォルトで統合します。
11. Jenkinsとの統合Maven 経由で統合することも、Jenkins と直接統合することもできます。ここでは Jenkins と直接統合することを選択します。 (1) メインのMaven設定ファイル(${MAVEN_HOME}/conf/settings.xmlファイルまたは~/.m2/settings.xmlファイル)を変更し、SonarデータベースとSonarサービスアドレスへのアクセスを追加し、次の設定を追加します。 <プロフィール> <id>ソナー</id> <プロパティ> <sonar.jdbc.url>jdbc:mysql://localhost:3306/sonar</sonar.jdbc.url> <sonar.jdbc.driver>com.mysql.jdbc.ドライバー</sonar.jdbc.driver> <sonar.jdbc.username>ソナー</sonar.jdbc.username> <sonar.jdbc.password>ソナー</sonar.jdbc.password> <sonar.host.url>http://localhost:9003</sonar.host.url> <!-- Sonar サーバーのアクセス アドレス --> </プロパティ> </プロフィール> <アクティブプロファイル> <activeProfile>ソナー</activeProfile> </アクティブプロファイル> ... (2)Jenkinsプラグイン管理で、sonar jenkinsプラグインのインストールを選択します。これにより、プロジェクトはビルドされるたびにコード測定のためにsonarを呼び出すことができます。 a. プラグインをインストールする b. システム構成にソナー構成を追加する 次に示すように、システム構成ページに入り、ソナー プラグインを構成します。 次に、下の「保存」をクリックします。 c. ビルドプロジェクトを構成し、ビルド後のアクションを追加します。 ビルドするプロジェクトをクリックし、左側の [構成] をクリックします。 ページの下部にある「ビルド後のアクション」を見つけて、SonarQube を選択します。
【解決する】: ビルドを変更する: 最後に、Jenkins に移動してプロジェクトをビルドし、ビルド後に sonar コンソールを確認します。 12. よくある質問Jenkins がビルドした後、sonar はコードをスキャンしてエラーを報告します。 解決策: sonar JavaScript プラグインをアンインストールします。 6. JenkinsとDockerを組み合わせるここでは Docker Pipeline は使用しません。ビルドが完了したらシェル スクリプトを実行するだけなので、より柔軟です。 1. 展開プロセス
2. 環境の説明
3. 構成 docker は Jenkins マシン上の root ユーザーとして実行され、Jenkins は通常のユーザー jenkins として実行されるため、まず jenkins ユーザーを設定して docker コマンドを使用できるようにする必要があります。 [root@osb30 ~]# visudo jenkins ALL=(root) NOPASSWD: /usr/bin/docker Jenkins マシンでも設定します: # パスワードが平文で表示されるため、「ssh hostname sudo <cmd>」を無効にします。 # 「ssh -t hostname sudo <cmd>」を実行する必要があります。 # #デフォルトはttyが必要です デフォルト:jenkins !requiretty これが設定されていない場合、次のスクリプトを実行するとエラーが報告されます。 + cp -f /home/jenkins/.jenkins/workspace/godseyeBranchForNov/godseye-container/target/godseye-container-wisedu.war /home/jenkins/docker-file/godseye_war/godseye.war + sudo dockerログイン -u jkzhao -p Wisedu123 -e [email protected] 172.16.206.32 sudo: 申し訳ありませんが、sudo を実行するには tty が必要です 172.16.206.32 マシンで構成します。 #visudo # #デフォルトはttyが必要です デフォルト:root !requiretty そうしないと、マシン 172.16.206.32 でスクリプトを実行するときにエラーが報告されます。 [SSH] 実行中... sudo: 申し訳ありませんが、sudo を実行するには tty が必要です docker: 参照形式が無効です。 4. プラグインをインストールする Jenkins にログインし、「システム管理」をクリックし、「プラグインの管理」をクリックして、プラグイン「SSH プラグイン」を検索してインストールします。 Jenkins にログインし、「資格情報」をクリックして、「ドメインの追加」をクリックします。 「システム管理」、「システム構成」をクリックし、「SSH リモート ホスト」を見つけます。 5. 投稿ステップを設定する プロジェクトのその他の構成は変更されません。上記のセクションを参照してください。 [注意]: スクリプトで使用するウェアハウスと認証アカウントは、まず harbor に作成する必要があります。 # Jenkins マシン: コンパイルが完了すると、ビルドによってイメージの新しいバージョンが生成され、リモートの docker リポジトリにプッシュされます # 変数 JENKINS_WAR_HOME='/home/jenkins/.jenkins/workspace/godseyeBranchForNov/godseye-container/target' DOCKERFILE_HOME='/home/jenkins/docker-file/godseye_war' HARBOR_IP='172.16.206.32' リポジトリ = 'godseye_war/godseye' HARBOR_USER='jkzhao' HARBOR_USER_PASSWD='Wisedu123' HARBOR_USER_EMAIL='[email protected]' # 最新の war を docker-file ディレクトリにコピーします。 \cp -f ${JENKINS_WAR_HOME}/godseye-container-wisedu.war ${DOCKERFILE_HOME}/godseye.war # イメージの初期バージョンを削除します。 sudo docker login -u ${HARBOR_USER} -p ${HARBOR_USER_PASSWD} -e ${HARBOR_USER_EMAIL} ${HARBOR_IP} IMAGE_ID=`sudo docker images | grep ${REPOSITORIES} | awk '{print $3}'` if [ -n "${IMAGE_ID}" ];then sudo docker rmi ${IMAGE_ID} フィ # イメージをビルドします。 ${DOCKERFILE_HOME} をコピーします TAG=`日付 +%Y%m%d-%H%M%S` sudo docker build -t ${HARBOR_IP}/${REPOSITORIES}:${TAG} . &>/dev/null # 港湾レジストリにプッシュします。 sudo docker push ${HARBOR_IP}/${REPOSITORIES}:${TAG} &>/dev/null # イメージをプルして公開する HARBOR_IP='172.16.206.32' リポジトリ = 'godseye_war/godseye' HARBOR_USER='jkzhao' HARBOR_USER_PASSWD='Wisedu123' # 港にログイン #docker ログイン -u ${HARBOR_USER} -p ${HARBOR_USER_PASSWD} ${HARBOR_IP} # コンテナを停止し、コンテナを削除します。 CONTAINER_ID=`docker ps | grep "godseye_web" | awk '{print $1}'` if [ -n "$CONTAINER_ID" ]; then docker stop $コンテナID docker rm $コンテナID else #コンテナの起動に失敗した場合は、コンテナを見つけるために docker ps -a を実行する必要があります CONTAINER_ID=`docker ps -a | grep "godseye_web" | awk '{print $1}'` if [ -n "$CONTAINER_ID" ]; then # このマシンでコンテナをプルして実行するのが初めての場合、docker ps -a はこのコンテナを見つけることができません。docker rm $CONTAINER_ID フィ フィ # godseye_web イメージの初期バージョンを削除します。 IMAGE_ID=`sudo docker images | grep ${REPOSITORIES} | awk '{print $3}'` if [ -n "${IMAGE_ID}" ];then docker rmi ${IMAGE_ID} フィ # イメージをプルします。 TAG=`curl -s http://${HARBOR_IP}/api/repositories/${REPOSITORIES}/tags | jq '.[-1]' | sed 's/\"//g'` #最後の sed はタグの前後の二重引用符を削除します docker pull ${HARBOR_IP}/${REPOSITORIES}:${TAG} &>/dev/null # 走る。 docker run -d --name godseye_web -p 8080:8080 ${HARBOR_IP}/${REPOSITORIES}:${TAG} Jenkins+Docker 継続的インテグレーションの実装に関するこの記事はこれで終わりです。Jenkins Docker 継続的インテグレーションに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: CSS でデフォルトのスタイルをクリアし、共通のスタイルを設定する方法
この記事では、WeChatアプレットの具体的なコードを参考までに紹介します。具体的な内容は次のとおり...
目的: ステーションAをステーションBのセカンダリディレクトリとして扱うのように: http://w...
一般的な提案は、WHERE 条件のインデックスを作成することですが、これは実際には一方的です。インデ...
1》ウェブデザインが得意であること2》Webページのデザイン方法を知る3》計画する4. SEOを理解...
*** ハイパーリンクのスタイル設定の例a:link クリックされる前のハイパーリンクの状態a:vi...
目次1. はじめに2. コードの実装2.1 目的分析2.2 実装プロセス2.2.1 エントリーコード...
Docker コンテナのネットワーク障害に対する 6 つの解決策注: 以下の方法は、コンテナ内のパブ...
序文この記事では、Nginx の一般的な、実用的で興味深い構成をいくつか紹介します。この記事を読んだ...
概要Docker 自体の現在のデフォルト ネットワークについては、単一ホスト上の異なる Docker...
これからの道のりは長く困難ですが、私は探求を続けます。また週末がやってきました。引き続き、皆さんと一...
エラー 1290 (HY000) : MySQL サーバーは –secure-file-priv オ...
conda アップデート conda pip で tf-nightly-gpu-2.0-previ...
コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...
この記事では、フォーム検証を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は...
別のライブラリから別のライブラリにデータをインポートする必要がある場合があり、このデータは CSV ...