Docker Compose は MySQL に接続するために SpringBoot プロジェクトをデプロイしますが、そこで遭遇する落とし穴があります。

Docker Compose は MySQL に接続するために SpringBoot プロジェクトをデプロイしますが、そこで遭遇する落とし穴があります。

先ほど、Docker を使用して SpringBoot プロジェクトを簡単にデプロイし、Dockerfile とは何かを紹介しました。如果是鏡像比較多的情況下如何一鍵交付呢?Docker-compose! Docker-compose を理解すると、後で K8s を理解しやすくなります。

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

環境 CentOS 7

//docker-composeをダウンロード
curl -L "https://get.daocloud.io/docker/compose/releases/download/1.27.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

// ファイルに実行権限を追加します。そうしないと、ルートユーザーに権限がありません chmod +x /usr/local/bin/docker-compose

//インストールが成功したか確認する [root@SJS local]# docker-compose --version
docker-compose バージョン 1.27.3、ビルド 4092ae5d

一般的なコマンド

#関連コンテナの構築、作成、起動 docker-compose up -d

#関連するコンテナをすべて停止する docker-compose stop

#すべてのコンテナ情報を一覧表示する docker-compose ps

2. 展開手順

  1. 1. Dockerfile を使用してアプリケーション環境を定義します。これは通常、初期イメージの動作を変更する必要がある場合にのみ必要です。
  2. 2. docker-compose.ymlを使用して、デプロイするアプリケーションサービスを定義し、スクリプトを一度でデプロイできるようにします。
  3. 3. docker-compose upコマンドを使用して、すべてのアプリケーションサービスを一度にデプロイします。

3. SpringBootプロジェクトをデプロイする

プロジェクト全体

ここに画像の説明を挿入

1. Dockerfileを書く

java:8より
# データの保存と永続化のために、Docker コンテナ内にコンテナ ボリュームを作成します。VOLUME /tmp
#ファイルをコピーして解凍するために使用されます(COPY では解凍できません)
#現在の redpacket-backend-1.0.0-SNAPSHOT.jar を docker コンテナのルート ディレクトリにコピーします。ADD redpacket-backend-1.0.0-SNAPSHOT.jar app.jar
#実行プロセス中に app.jar ファイルを作成します RUN sh -c 'touch /app.jar'
環境変数JAVA_OPTS=""
# 渡されたパラメータを使用して Linux コマンドを実行し、jar パッケージを起動します # CMD との違いは、複数の CMD コマンドのうち最後の 1 つだけが有効になり、CMD は docker run 後にパラメータに置き換えられることです # ENTRYPOINT によって実行されたコマンドは追加され、ENTRYPOINT は上書きされません [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

2. docker-compose.ymlファイルを書く

この文書は3つの主要な部分に分かれています

プロジェクト: ymlファイル全体がプロジェクトです サービス: サービスノードはサービスです コンテナ: サービスはコンテナです

バージョン: '3.8'
サービス:
  #mysql サービス名 mysql:
    #使用した画像: mysql:5.7
    コマンド: --default-authentication-plugin=mysql_native_password
    ポート:
      -3306:3306
    環境:
      MYSQL_ROOT_HOST: '%'
      MYSQL_ROOT_パスワード: '123456'
      MYSQL_ALLOW_EMPTY_PASSWORD: 'いいえ'
      MYSQL_DATABASE: 'redpacket'
      MYSQL_USER: 'ルート'
      MYSQL_パスワード: '123456'
    #マウントする必要があるファイルボリューム:
      - /mydata/mysql/データ:/var/lib/mysql
      - /mydata/mysql/log:/var/log/mysql
      - /mydata/mysql/conf:/etc/mysql
    再起動: 常に
    ネットワーク:
      -テストネットワーク
  #SpringBoot プロジェクト サービス redpacket:
    コンテナ名: redpacket
    #指定されたディレクトリにDockerfileをビルドする
    建てる:
      コンテクスト: 。
      dockerfile: Dockerファイル
    依存:
      -MySQLについて
    ポート:
      - 「8090:8090」
    再起動: 常に
    ネットワーク:
      -テストネットワーク
ネットワーク:
  テストネットワーク:

3. ymlファイルのリンク名の変更に注意する

ここに画像の説明を挿入

4. ワンクリックでプロジェクトを開始

プロジェクトのdockerfile、docker-compose.yml、jarパッケージを同じディレクトリに置き、docker-composeを使用して起動します。

ここに画像の説明を挿入

成功した

ここに画像の説明を挿入

4. 落とし穴

使用中に Dockerfile を変更する場合は、一定要把之前的鏡像刪掉!そうしないと、docker-compose up コマンドが成功しても、以前のイメージは再構築されず、新しいコンテナが作成されるだけです。

参考記事:

https://mp.weixin.qq.com/s/iMl9bJ4SxUsNHBbiS5VUcw

https://docs.docker.com/compose/env-file/

https://blog.csdn.net/u011943534/article/details/81392993

これで、MySQL に接続するための SpringBoot プロジェクトの Docker Compose デプロイメントに関するこの記事は終了です。SpringBoot プロジェクトの Docker Compose デプロイメントに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL8 ベースの docker-compose デプロイメント プロジェクトの実装
  • docker-compose を使用して MySQL を実行する方法
  • dockercompose を使用して springboot-mysql-nginx アプリケーションをビルドする
  • docker-compose でデプロイしたときに MySQL にアクセスできなくなる問題の簡単な分析
  • docker compose を使用して elk システムを構築する方法
  • docker-compose を使用して mongodb と mysql を構築する詳細なプロセス

<<:  テキストエリアタグはサイズ変更できず、マウスでドラッグすることもできません

>>:  Redo ログと Undo ログに基づく MySQL クラッシュ回復の分析

推薦する

ソースコード分析からTomcatがサーブレットの初期化を呼び出す方法の詳細な説明

目次導入1. Tomcatを起動するコード2. Tomcatフレームワーク3. コンテナを作成する ...

Webpack5-react スキャフォールディングをゼロから構築するための実装手順 (ソースコード付き)

目次ウェブパック5公式スタート建築ガイド構築を開始する依存する準備が完了したら、プロジェクトの構築を...

Reactコンポーネントのライフサイクル機能についての簡単な説明

React コンポーネントのライフサイクル機能とは何ですか?ライフサイクル関数は、ES6 構文クラス...

tomcat ログ ディレクトリ内のログ ファイルの分析 (概要)

tomcat が起動されるたびに、次のログ ファイルがログ ディレクトリに自動的に生成され、日付順...

Alibaba Cloud ESC サーバー シングルノード MySQL の Docker デプロイメント

1. msyqlの高速バージョンをダウンロードする docker pull hub.c.163.co...

MySQL パーティション関数の詳細な説明と例の分析

まず、データベース パーティショニングとは何でしょうか?以前、MySQL のテーブル パーティショニ...

Bootstrap 3.0 学習ノートボタンスタイル

この記事では主にボタンのスタイルについて説明します。 1. オプション2. サイズ3. 活動状況4....

Linuxパフォーマンス監視コマンドの簡単な紹介

システムでさまざまな IO ボトルネック、メモリ使用量の増加、CPU 使用率の増加などの問題が発生し...

熟練デザイナーの7つの原則(1):フォントデザイン

まあ、あなたはデザインの達人かもしれませんし、あるいはそれは大げさすぎるかもしれませんが、少なくとも...

Linux インストール Redis 実装プロセスとエラー解決

今日、redis をインストールしたところ、今までになかったいくつかのエラーが発生しました。ここで記...

MySQL アカウント情報をエレガントにバックアップする方法

序文:最近、インスタンスの移行の問題に遭遇しました。データの移行後、データベースのユーザーと権限も移...

WindowsX Hyper-V ベースの CentOS システムをインストールする

現在、Linux を使用するほとんどの人は、クラウド サーバーを使用するか、Windows 上に仮想...

MySQLを閉じることができない問題を解決する方法

mysql が閉じない場合の解決策:コンピュータのタスクバーを右クリックしてタスクマネージャーを開き...

HTML テーブルタグチュートリアル (20): 行の背景色属性 BGCOLOR

BGCOLOR 属性を使用して、行の背景色を設定できます。基本的な構文<TR BGcolor...

Dockerのyumソースの設定とCentOS7へのインストールの詳細な説明

ここではCentOS7が使用されており、カーネルバージョンは [root@localhost ~]#...