現在、ほとんどのプロジェクトが Docker 上にデプロイされ始めていますが、デプロイのプロセスはまだ少し面倒なので、この記事では、IDEA を使用してワンクリックでデプロイする方法を説明したいと思います。 Dockerの設定 設定ファイルを変更する Docker 構成ファイルを開きます。 vim /usr/lib/systemd/system/docker.service 次の行をコメントアウトします。 # ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 新しい行を書いてください: 実行開始=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock 設定ファイルを再ロードして起動します: systemctlデーモンリロード systemctl ドッカーを起動する 次の図に示すように: IDEA を使用した Docker の設定 Dockerプラグインをインストールする Docker情報を設定する 設定で Docker を構成するには、API URL を構成する必要があります。接続が成功すると、以下のように表示されます。 プロジェクト構築 新しいSpringbootプロジェクトを作成する IDEA を通じてプロジェクトを構築するには、何も選択する必要はなく、クリックし続けるだけです。 pomファイルを変更する 最も重要な2つのポイントは次のとおりです。 1. プロパティタグを追加する <docker.image.prefix>デモ</docker.image.prefix> 2. 新しいプラグインタグを追加する <プラグイン> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <バージョン>1.2.1</バージョン> <構成> <イメージ名>${docker.image.prefix}/${project.artifactId}</イメージ名> <dockerディレクトリ></dockerディレクトリ> <リソース> <リソース> <ターゲットパス>/</ターゲットパス> <ディレクトリ>${project.build.directory}</ディレクトリ> <include>${project.build.finalName}.jar</include> </リソース> </リソース> </構成> </プラグイン> 完全な pom ファイルは次のとおりです。 <?xml バージョン="1.0" エンコーディング="UTF-8"?> <プロジェクト xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <モデルバージョン>4.0.0</モデルバージョン> <親> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <バージョン>2.2.1.RELEASE</バージョン> <relativePath/> <!-- リポジトリから親を検索 --> </親> <グループID>com.example</グループID> <artifactId>デモ</artifactId> <バージョン>0.0.1</バージョン> <name>デモ</name> <description>Spring Boot のデモ プロジェクト</description> <プロパティ> <java.version>1.8</java.version> <docker.image.prefix>デモ</docker.image.prefix> </プロパティ> <依存関係> <依存関係> <groupId>org.springframework.boot</groupId> <artifactId>スプリングブートスターター</artifactId> </依存関係> <依存関係> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </依存関係> <依存関係> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>テスト</scope> <除外事項> <除外> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </除外> </除外> </依存関係> </依存関係> <ビルド> <プラグイン> <プラグイン> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </プラグイン> <プラグイン> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <バージョン>1.2.1</バージョン> <構成> <イメージ名>${docker.image.prefix}/${project.artifactId}</イメージ名> <dockerディレクトリ></dockerディレクトリ> <リソース> <リソース> <ターゲットパス>/</ターゲットパス> <ディレクトリ>${project.build.directory}</ディレクトリ> <include>${project.build.finalName}.jar</include> </リソース> </リソース> </構成> </プラグイン> </プラグイン> </ビルド> </プロジェクト> 新しいDockerfileを作成する ルートディレクトリに新しいDockerfileファイルを作成する必要があります #ベースイメージを指定してカスタマイズする FROM java:8 #メンテナー情報 メンテナー zhouzhaodong <[email protected]> #ここでの /tmp ディレクトリは実行時に匿名ボリュームとして自動的にマウントされ、/tmp に書き込まれた情報はコンテナストレージ層 VOLUME /tmp に記録されません。 #コンテキストディレクトリのtarget/demo-1.0.0.jarをコンテナにコピーします。COPY target/demo-0.0.1.jar demo-1.0.0.jar #bash モードで実行して、demo-1.0.0.jar にアクセスできるようにします。#RUN新しいレイヤーを作成し、そのレイヤーでこれらのコマンドを実行します。実行が完了したら、このレイヤーの変更をコミットして新しいイメージを形成します。 bash -c "touch /demo-1.0.0.jar" を実行します。 # ランタイム コンテナによって提供されるサービス ポートを宣言します。これは単なる宣言です。この宣言により、アプリケーションは実行時にこのポートのサービスを開きません。EXPOSE 8080 #コンテナの起動プログラムとパラメータを指定します <ENTRYPOINT> "<CMD>" エントリポイント ["java","-jar","demo-1.0.0.jar"] 新しいコントローラーファイルを作成する pom ファイルに Web 依存関係を追加することを忘れないでください。 @レストコントローラ パブリッククラスtestController{ @リクエストマッピング("/") パブリック文字列テスト(){ 「テストDocker」を返します。 } } Maven パッケージング パッケージをインストールします: jar パッケージを生成します: 新しい構成 新しい Dockerfile 実行構成を作成します。 次の情報を追加し、作成した Dockerfile ファイルを見つけて、ポート マッピングを構成します。 Dockerイメージを生成して実行する 新しく作成された Dockerfile 実行構成を実行するだけです。 操作が成功すると、ログ ウィンドウにプロジェクト操作情報が表示されます。 対応するアドレスにアクセスすると、入力した情報が表示されます。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL でテーブルデータをクリアする 2 つの方法とその違い
序文JavaScript は習得が最も簡単な言語の 1 つであるため、成長と繁栄を続けており、市場に...
1. 理由新しいシステムに MySQL を再インストールする必要があったので、将来詳細を忘れた場合...
一般的に言えば、より完全な結果を得るためには、2 つ以上のテーブルから結果を取得する必要があります。...
目次1. 画像を取得する2. ブローカーサーバーを作成する3. ブローカーを作成する4. Rocke...
目次1. プロジェクトの説明2. Nginxイメージの作成3. MySQLイメージの作成4. PHP...
1. SELECT句を使用して複数のテーブルをクエリするSELECT フィールド名 FROM tab...
序文比較的複雑な大規模システムでは、複雑なロジックで処理する必要があるオブジェクトまたはデータ フロ...
<area> タグは、イメージ マップ内の領域を定義します (注: イメージ マップはク...
最近、会社で DELL R730 サーバーを購入したのですが、偶然次のチュートリアルを見つけたので、...
序文MySQL では、server-id を使用してデータベース インスタンスを一意に識別し、それを...
まず、VMware Workstation 15.1 バージョンをダウンロードします。Thunder...
数日前、友人と Node.js の epoll とリクエスト処理に関する知識を交換しました。今日は、...
仕事のプロジェクトのニーズにより、曲の再生が必要となり、さまざまな資料を参考にして、NetEase ...
パスワードモードPDO::__construct(): サーバーがクライアントに不明な認証方法を要求...