最近、メンバーがテストできるようにプロジェクトをパッケージ化する必要がありますが、パッケージ化された操作は開発に影響を与えます。そのため、 元のプロジェクトが大きすぎたため、大規模なソフトウェア エンジニアリング実験で試してみることにしました。大規模なソフトウェア エンジニアリング実験では、 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. Vueプロジェクトのパッケージ化開発されたvueプロジェクトに次の名前を入力し、パッケージ化し...
nginx バージョン 1.11.3次の構成を使用すると、検証は無効になり、クロスドメインの問題が依...
ステップ1:setting.pyでデータベースを変更する # データベースを構成する DATABAS...
目次親コンポーネントリストボックスリストコンポーネントボタンコンポーネント PageButton昨年...
この記事の例では、フォーム検証機能を実装するためのjsの具体的なコードを参考までに共有しています。具...
目次質問:答え:現実:知識ポイント結論は:要約する質問: MySQLフィールド、unsigned i...
<br />ブラウザが次世代のXHTMLを処理できるようになる前に、このよりリッチなコン...
Docker の作成Docker Compose は、複数の Docker コンテナを定義して実行す...
序文ご存知のとおり、デフォルトでは、Alibaba Cloud にインストールされている MySQL...
目次JavaScript イベント:よく使用されるイベント:イベントアクション要約するJavaScr...
目次負荷分散に nginx を使用するための 2 つのモジュール:アップストリームはロードノードプー...
1. トランザクションとは何ですか?データベース トランザクション (略称: トランザクション) は...
1. ショートカットCtrl + Shift + Pを使用してコンソールを呼び出します 2、「スニペ...
1. OpenSSL公式サイト公式ダウンロードアドレス: https://www.openssl....
1. Compose の紹介Compose は、マルチコンテナ Docker アプリケーションを定義...