最近、メンバーがテストできるようにプロジェクトをパッケージ化する必要がありますが、パッケージ化された操作は開発に影響を与えます。そのため、 元のプロジェクトが大きすぎたため、大規模なソフトウェア エンジニアリング実験で試してみることにしました。大規模なソフトウェア エンジニアリング実験では、 docker-compose
アプリケーション コンテナは
サービスは必要な spring-bootをビルドする
#### Spring-Bootプロジェクトをopenjdk:8-jdk-alpineからビルドします # dockerコンテナ内のプロジェクト作業ディレクトリWORKDIR /appを設定します # Maven 実行可能プログラムをコンテナーにコピーします COPY mvnw 。 コピー .mvn .mvn # pom.xml ファイルをコピーします。COPY pom.xml 。 # すべての Maven 依存関係をインポートする RUN ./mvnw dependency:go-offline -B # プロジェクトのソースコードをコピーします COPY src src # アプリケーションをパッケージ化します RUN ./mvnw package -DskipTests 実行 mkdir -p target/dependency && (cd target/dependency; jar -xf ../*.jar) #### アプリケーションを実行できる最小の Docker コンテナを openjdk:8-jre-alpine から設定します ARG 依存関係 = /app/target/dependency # ビルドステージからプロジェクトの依存関係をコピーする コピー --from=build ${DEPENDENCY}/BOOT-INF/lib /app/lib コピー --from=build ${DEPENDENCY}/META-INF /app/META-INF コピー --from=build ${DEPENDENCY}/BOOT-INF/classes /app エントリポイント ["java","-cp","app:app/lib/*","com.xiang.airTicket.AirTicketApplication"] Docker-compose 統合プロジェクト サービス spring-boot コンテナの構築が完了したら、
バージョン: '3.7' # サービスを定義する: # spring-boot サービス アプリ サーバー: 建てる: context: . #docker-compose.yml を基準にして Dockerfile をビルドするためのパスを設定します dockerfile: Dockerファイル ポート: - "8080:8080" # ローカルポート8080をコンテナポート8080にマップする restart: always 依存: -db # 依存するサービスを最初に構築する必要があります - redis environment: #環境変数を設定します SPRING_DATASOURCE_URL: jdbc:mysql://db:3306/airTicket?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false SPRING_DATASOURCE_USERNAME: ルート SPRING_DATASOURCE_パスワード: 123456 SPRING_REDIS.HOST: redis ネットワーク: # ネットワーク接続 mysql および redis - バックエンド デシベル: イメージ:mysql:5.6 ポート: - 「3306:3306」 再起動: 常に 環境: MYSQL_DATABASE: 航空券 MYSQL_USER: htx MYSQL_パスワード: 123456 MYSQL_ルート_パスワード: 123456 ボリューム: -dbデータ:/var/lib/mysql ネットワーク: - バックエンド レディス: 画像: redis コマンド: [ "redis-server", "--protected-mode", "no" ] ホスト名: レディス ポート: - 「6379:6379」 ネットワーク: - バックエンド ボリューム: dbデータ: ネットワーク: バックエンド: spring-boot の起動が成功したことを示すログが表示されたら、正常に構成されています。 フォローアップ 今回はバックエンドのみ構築しました。フロントエンドの 参考リンク: Spring Boot、Mysql、React docker compose の例 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
目次1. Cocos Creatorでのオーディオ再生の基本1. 基本2. 一般的な方法2. Coc...
CSS は、スクロールを許可しながらスクロール バーを非表示にするために Overflow を設定し...
Vim は強力なフルスクリーン テキスト エディターであり、Linux/UNIX で最も一般的に使用...
目次1. ルートナビゲーション2. 履歴状態管理API (1)ハッシュチェンジイベント(2)ポップス...
Nginx (エンジン x) は、IMAP/POP3/SMTP サービスも提供する高性能 HTTP ...
MySQL には読み取りと書き込みを分離するアーキテクチャが多数あります。Baidu のそれらのほと...
目次1. 概要2. 属性1. 数学演算子2. 比較演算子3. ブール演算結論1. 概要BigInt ...
コードをコピーコードは次のとおりです。 <フレームセット cols="*,1280,...
mysql が閉じない場合の解決策:コンピュータのタスクバーを右クリックしてタスクマネージャーを開き...
1. 仮想化 vcenter に入り、ブラウザでログインし (クライアントは設定する場所を見つけませ...
p>「サービス」で手動で起動すると、 コンソールから起動します: 次に、...\MySQL S...
1. シェルスクリプトを作成する vim バックアップdb.sh 次のようにスクリプトを作成します。...
Firefox、Opera、その他のブラウザは Webdings フォントをサポートしていません。回...
MySQL データベース インデックスが B+ ツリーを使用する理由をさらに分析する前に、データ構...
この記事では、Docker で構築された Laravel および Vue プロジェクトの開発環境を紹...