前回の記事では、Docker を使用して、コンパイルされた jar パッケージをイメージに組み込む Spring Boot アプリケーションを構築しました。 この記事では、Spring-Boot をデータベースとともに Docker サービスのセットとして実行します。 ここでは、自分の操作を記録しているだけです。実行コード全体については、「参考資料」の参考資料 1 の内容を参照してください。 主な手順:
シンプルなSpringbootアプリケーションを構築する サイトにアクセスする IP アドレスの数をカウントする Web アプリケーションを作成します。 そしてそれを MySQL データベースに保存します。ここでは、jpa を使用してデータベースにアクセスします。 頼る <親> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <バージョン>2.0.0.RELEASE</バージョン> </親> web、jpa、mysql、tset ライブラリの依存関係 <依存関係> <依存関係> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </依存関係> <依存関係> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </依存関係> <依存関係> <グループID>mysql</グループID> <artifactId>mysql-コネクタ-java</artifactId> </依存関係> <依存関係> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>テスト</scope> </依存関係> </依存関係> 設定ファイル spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=ルート spring.datasource.driver クラス名 = com.mysql.jdbc.Driver spring.jpa.properties.hibernate.hbm2ddl.auto=更新 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect spring.jpa.show-sql=true コアコード @レストコントローラ パブリッククラスVisitorController{ オートワイヤード プライベートVisitorRepositoryリポジトリ。 @リクエストマッピング("/") パブリック文字列インデックス(HttpServletRequest リクエスト) { 文字列 ip = request.getHeader("X-Real-IP"); if(ip== null || "".equals(ip)) { ip = リクエスト.getRemoteAddr(); } 訪問者 visitor = repository.findByIp(ip); if(訪問者 == null) { 訪問者 = 新しい訪問者(); 訪問者IPを設定します。 訪問者.setTimes(1L); } それ以外 { 訪問者.setTimes(訪問者.getTimes()+1); } リポジトリ.save(訪問者); "ip:"+visitor.getIp()+" "+visitor.getTimes()+" 回を返します。"; } } エンティティクラス @実在物 パブリッククラスVisitor{ @ID @生成された値 プライベートな Long ID; @列(nullable=false) プライベート 長時間; @列(nullable=false) プライベート文字列 ip; // get、set メソッドは省略} リポジトリ レイヤー コードは、jpa 関連コンテンツを参照します。 ローカル データベースが開かれ、パスワードが上記で設定されます。mvn spring-boot:run で実行すると、IP の数が表示されます。IP の数は、統計ごとに自動的に増加します。 Docker Compose 設定ファイル 次のように新しい docker-compose.yaml ファイルを作成します。 バージョン: '3' サービス: nginx: コンテナ名: v-nginx イメージ: nginx:1.13 再起動: 常に ポート: - 80:80 -443:443 ボリューム: - ./nginx/conf.d:/etc/nginx/conf.d マイスク: コンテナ名: v-mysql イメージ:mysql/mysql-server:5.7 環境: MYSQL_DATABASE: テスト MYSQL_ROOT_PASSWORD: ルート MYSQL_ROOT_HOST: '%' ポート: - 「3306:3306」 ボリューム: - ./mysqldata:/var/lib/mysql 再起動: 常に アプリ: 再起動: 常に ビルド: ./app 作業ディレクトリ: /app ボリューム: - ./app:/app - ~/.m2:/root/.m2 さらす: - 「8080」 依存: - nginx -MySQLについて コマンド: mvn clean spring-boot:run -Dspring-boot.run.profiles=docker 主にこの設定ファイルについて説明し、ファイルシステムに関連する設定を追加します。 services には、nginx、mysql、app の 3 つのサービスがあります。 nginx でのボリューム設定の目的は、コンテナ内のデフォルトの nginx 設定ファイルに書き込んだ nginx 設定ファイルを直接上書きすることです。 MySQL でのボリューム構成の目的は、MySQL データ ファイルをローカルの mysqldata ディレクトリにマップすることです。コンテナを削除してもデータは残ります。 アプリの下のボリューム構成の機能: 最初の行はコード ファイルをコンテナーにマッピングします。 2 行目は、Maven リポジトリ ファイルをローカル リポジトリ ファイルにマッピングします。コンテナを削除した後、依存パッケージを再度ダウンロードせずに再度ビルドできます。 このコマンドは、Docker プロファイルを使用して、コンテナー内でプロジェクトをコンパイルして実行します。 ファイルを追加する必要があります
サーバー{ 聞く 80; 文字セット utf-8; access_log オフ; 位置 / { proxy_pass http://app:8080; proxy_set_header ホスト $host:$server_port; proxy_set_header X-Forwarded-Host $server_name; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } 場所 /static { access_log オフ; 有効期限は30日です。 エイリアス /app/static; } } デプロイメント検証 ファイル全体をサーバーにコピーし、 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: RedisとMySQLの違いを簡単に説明してください
>>: jsはポップアップウィンドウをクリックすることでポップアップログインボックスを実装します
1. ソフトウェアの紹介バーチャルボックスVirtualBox は、無料のオープンソース仮想マシン ...
カルーセルアニメーションは、ページの外観とインタラクティブなパフォーマンスを向上させることができます...
この記事の例では、WeChatアプレットで画像コントロールを選択するための具体的なコードを参考までに...
目次1. FastDFS の概要1. はじめに2. FastDFSストレージ戦略3. FastDFS...
目次背景複合インデックスを理解する左端一致原則フィールド順序の影響複合インデックスは単一のインデック...
問題を見つける最近、仕事で問題が発生しました。InnoDB タイプの SQL ファイルを実行すると、...
目次リナックス1. SWAPとは2. swappiness は何を調節しますか? 3. スワップ操作...
Magento を頻繁に変更する場合、element.style に遭遇することがあります。 これは...
目次1. 効果図(複数列) 2. 通常セレクター: mode = selector、複数列セレクター...
背景事業が発展するにつれ、会社の事業内容や規模は拡大し続け、ウェブサイトには大量のユーザー情報やデー...
ミラーを探すDocker Hubのウェブサイトからイメージを検索できます。Docker Hubのウェ...
1. 制限の基本的な実装一般的に、クライアントは、pageNo (ページ番号) と pageSize...
目次Dockerイメージのダウンロードmysqlとnacosを起動する独自のJavaプロジェクトを変...
今夜の夕食後にノートパソコンの電源を入れたところ、問題が発生しました。通常、コンピューターがスリープ...
1. ビッグデータとHadoopビッグデータについて研究し学ぶには、当然 Hadoop から始める必...