最近、メンバーがテストできるようにプロジェクトをパッケージ化する必要がありますが、パッケージ化された操作は開発に影響を与えます。そのため、 元のプロジェクトが大きすぎたため、大規模なソフトウェア エンジニアリング実験で試してみることにしました。大規模なソフトウェア エンジニアリング実験では、 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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
障害に遭遇すると、障害の根本的な原因を考えるのではなく、障害を解決する方法を考えることがよくあります...
background-image は、おそらくすべてのフロントエンド開発者がキャリアの中で少なくとも...
目次forループwhileループdo-while ループループのネストトラバーサルメソッド~のために...
この記事では、二次リンク効果を実現するためのReactの具体的なコードを参考までに共有します。具体的...
Dockerネットワーク管理とコンテナIP設定に基づいてNginxロードバランシングを実装するすべて...
目次最初に要約: 🌲🌲 序文: 🍬🍬公開🍬🍬 🍬🍬グローバル🍬🍬 🍬🍬ボールボックス🍬🍬 🎉🎉🎉結論...
mysql の IN はインデックスを無効にしますか?しませんよ! 結果をご覧ください: mysq...
HTML コードを書くとき、最初の行は DOCTYPE にする必要がありますが、DOCTYPE は通...
Mysql8.0.12 解凍版のインストール方法をテストしましたので、ご参考までに1. ダウンロー...
インストール手順は省略します( yum -y install nginx;を使用して直接インストール...
最近、同社は、下図に示すように、h5 ページ操作を完了するという要件を提示しました。 ネットで入手で...
目次自動インクリメント ID を更新する理由は何ですか?質問解決方法これは私が知っている問題ですが、...
ajax の parsererror エラー (バックグラウンドからフロントエンドに送信される js...
少し前に、「ORACLE でコミットされていないトランザクションの SQL ステートメントを見つける...
序文この記事では、Windows 10 システムで MySQL を完全に削除してアンインストールする...