最近、メンバーがテストできるようにプロジェクトをパッケージ化する必要がありますが、パッケージ化された操作は開発に影響を与えます。そのため、 元のプロジェクトが大きすぎたため、大規模なソフトウェア エンジニアリング実験で試してみることにしました。大規模なソフトウェア エンジニアリング実験では、 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. グローバルオブジェクトすべてのモジュールは呼び出すことができます1) global: ブラウザ...
<body style="scroll:no"> <テーブルの...
<br />それぞれのトピックについて、チーム内でメールで議論します。議論が白熱するにつ...
感想:私はバックエンド開発者です。静的 (HTML) ページを取得すると、ページ構造と命名規則が極端...
1. LinuxサーバーのDocker構成ファイルを変更する vim /usr/lib/system...
目次1. はじめに2. 切り替え1. 開発および本番環境の設定ファイルを追加する2. 複数の環境をサ...
この記事では、MacOSでのMySQL 8.0.18のインストールと成功したコマンドライン操作を記録...
この記事では、カスタムツリーコンポーネントを再帰的に実装するVueの具体的なコードを参考までに共有し...
MySQL ログ システムで最も重要なログは、REDO ログとアーカイブ ログです。後者は MySQ...
目次プロセスコミュニケーションプロセス間の双方向通信問題要約するサードパーティのデータ サプライヤー...
rpmインストールパッケージをダウンロードするMySQL公式サイト: https://dev.mys...
構文フォーマット: row_number() over(partition by grouping ...
Linux では、基本的に vi エディタのように「.sh」拡張子を持つテキストの処理と実行を記述す...
システムでさまざまな IO ボトルネック、メモリ使用量の増加、CPU 使用率の増加などの問題が発生し...
序文開発プロセスでは、すべてのデータではなく特定の期間内のデータをクエリするなど、クエリのフィルタリ...