Dockerでspringcloudプロジェクトをデプロイする方法

Dockerでspringcloudプロジェクトをデプロイする方法

Dockerイメージのダウンロード

1. nacosをダウンロードする

docker pull nacos:[バージョン番号]

2. MySQLをダウンロードする

docker pull mysql:[バージョン番号]

3. docker-composeをインストールする

Linux では、次のコマンドを使用してダウンロードする必要があります。

# インストール curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

ダウンロード速度が遅い場合、またはダウンロードに失敗した場合は、提供されている docker-compose ファイルを使用できます: docker-compose-Linux_jb51.rar

/usr/local/bin/ディレクトリにアップロードし、ファイルの権限を変更します。

# 権限を変更する chmod +x /usr/local/bin/docker-compose

基本自動補完コマンド:

# 完全なコマンド curl -L https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

ここでエラーが発生した場合は、hosts ファイルを変更する必要があります。

echo "199.232.68.133 raw.githubusercontent.com" >> /etc/hosts

許可が拒否されました

永久に閉店:

vim /etc/sysconfig/selinux
SELINUX=enforcing を SELINUX=disabled に変更しました

VMを再起動します

mysqlとnacosを起動する

1. mysqlを起動します。

MySQL固有の設定

2. nacosを起動します。

docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server:1.4.1

3. nacosとファイアウォールを再起動します。

docker restart nacos //nacosを再起動する
systemctl restart firewalld.service //ファイアウォールを再起動します

4. 設定を変更する

デフォルトでは、Linux は docker-compose によってマウントされたデータ ボリュームに読み取りおよび書き込み権限を与えません。mysql データ ボリュームを正常にマウントするには、selinux を無効にする必要があります。

vim /etc/sysconfig/selinux
SELINUX=enforcing を SELINUX=disabled に変更しました
VMを再起動します

独自のJavaプロジェクトを変更する

1. nacos アドレスを表示します。

docker inspectでコンテナの IP アドレスを表示し、独自の SpringCloud プロジェクトを変更して、サブプロジェクトの nacos アドレスをコンテナの IP アドレスに変更します。

mysqlの接続アドレスを変更する nacosとmysqlアドレスサブモジュールを使用して構成ファイルを変更します: bootstrap.yml

ここに画像の説明を挿入

MySQL 8.8.15を使用する場合、多くの変更があります。

データソース:
 URL: jdbc:mysql://192.168.88.130:3306/tb_user?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false&allowMultiQueries=true&allowPublicKeyRetrieval=true
 ユーザー名: root
 パスワード: 123456
 driver-class-name: com.mysql.cj.jdbc.Driver //mysql 5.x を使用する場合は、cj を追加しないでください。

パック

Maven パッケージング ツールを使用して、プロジェクト内の各マイクロサービスをapp.jarにパッケージ化します。

ここに画像の説明を挿入

ここに画像の説明を挿入

Linuxシステムをアップロード

パッケージ化されたapp.jarをcloud-demo1内の対応するサブディレクトリにコピーします。
cloud-demo1のディレクトリ構造: モジュールごとに個別のフォルダを作成します

ここに画像の説明を挿入

docker-compose.ymlファイルの内容: 必要に応じて設定します

ここに画像の説明を挿入

その他のモジュール:

ここに画像の説明を挿入

Linuxをアップロード

ここに画像の説明を挿入

起動する

cloud-demo1ディレクトリに入る: 開始

docker-compose up -d //dockerを起動する logs -f xxx //ロ​​グを表示する

発生した問題:

パッケージ化に失敗しました:

親プロジェクトのビルドを削除します。

    <!--<ビルド>
        <プラグイン>
            <プラグイン>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </プラグイン>
        </プラグイン>
    </ビルド>
-->

バージョンが高すぎます

[root@localhost cloud-demo1]# docker-compose up -d
建物タイプサービス
不明なフラグ: --iidfile
「docker build --help」を参照してください。
エラー: サービス 'typeservice' のビルドに失敗しました: ビルドに失敗しました

ここに画像の説明を挿入

その他のエラー

failed to req API:/nacos/v1/ns/instance after all servers([127.0.0.1:8848]) tried:

解決策: まずnacosを再起動し、次にファイアウォールを再起動しますsystemctl restart firewalld.service

MySQL ログの表示permission denied

原因分析: Linux はデフォルトで docker-compose によるデータボリュームのマウントを禁止しているため、権限を付与する必要があります。

解決策: vim /etc/sysconfig/selinuxファイルを変更し、 SELINUX=enforcing 改為SELINUX=disabled変更して、仮想マシンを再起動します。

これで、Docker でワンクリックで springcloud プロジェクトをデプロイする方法についての記事は終了です。Docker で springcloud をデプロイする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Spring Cloud での Docker デプロイメントに jib を使用する詳細な手順

<<:  Vue3 ベースのスクリプト設定構文 $refs の使用

>>:  よくある CSS のヒントと経験談 11 選

推薦する

MySQL 5.7 クラスタ構成手順

目次1. サーバーAのmy.cnfファイルを変更する2. サーバーBのmy.cnfファイルを変更する...

HTMLハイパーリンクタグAのTARGET属性の詳細な説明

ハイパーリンク <a> タグはリンク ポイントを表します。これは英語の単語「anchor...

フロントエンドアプリケーションのjenkins+gitlab+nginxデプロイメント

目次関連する依存関係のインストールドッカーDockerでJenkinsをインストールするDocker...

OCSP を有効にすると、https 証明書の検証効率が向上し、Let's Encrypt SSL 証明書へのアクセスが遅くなる問題が解決されます。

ここ数日、ウェブサイトを初めて開いたときにアクセスが非常に遅いのですが、その後はページが正常に開きま...

jQuery ツリービュー ツリー構造アプリケーション

この記事では、jQueryツリービューツリー構造のアプリケーションコードを例として紹介します。具体的...

ウェブフロントエンド開発の細部

1 選択タグは閉じられている必要があります <select></select>...

複数のドメイン名に対する Nginx リバース プロキシを使用した HTTP および HTTPS サービスの実装

現在、Nginx は、Web サービスを提供するために、Windows ベースの IIS と Lin...

CentOS7 に MySQL をオフラインでインストールする詳細なチュートリアル

1. 元のmariadbを削除します。削除しないとmysqlをインストールできません。 mariad...

海外の無料写真素材サイトベスト9

良い画像素材のウェブサイトを見つけるのは難しいです。特に無料です。良い写真には非常に目を引く視覚効果...

6ull が Linux ドライバ モジュールをロードできない問題の解決方法

目次0x01 ドライバーモジュールのロードに失敗しました0x02 ソリューション要約する0x01 ド...

JavaScript におけるシリアル操作と並列操作

目次1. はじめに2. es5メソッド3. 非同期関数のシリアル実行4. 非同期関数の並列実行5. ...

フォームの読み取り専用属性と無効な属性についての簡単な説明

フォーム内の読み取り専用および無効な属性1. 読み取り専用:サーバーは、ユーザーがデータを変更するこ...

CentOS7 で Jenkins+Maven+Git 継続的インテグレーション環境を構築する方法

この記事では、Spring boot + Maven プロジェクトのデプロイメントを例に、Code ...

無効にしてHTMLフォーム入力を送信した後にフォーム値が取得されない問題を解決する方法

フォーム入力ボックスの入力をdisable属性に設定して送信すると、入力ボックスの値を取得できなくな...