LoginSignup
0
0

More than 1 year has passed since last update.

【サーバ構築】Dockerでspring-bootのサービスを起動する

Last updated at Posted at 2022-11-29

はじめに

javaの実行環境用のコンテナをDockerで作成して、warファイルにしたspring-bootのサービスを起動してみました。

設定ファイル

docker-compose.yml
version: '3.6'
services:
  java:
    build: ./docker/java
    ports:
      - 8080:8080
    tty: true
    volumes:
      - .:/usr/src
    command: java -jar /usr/src/WebApp-1.0-SNAPSHOT.war

build: ./docker/java
⇒Dockerfileの場所を指しています。コンテナを立ち上げる際に、読み込んでそうです。
command: java -jar /usr/src/WebApp-1.0-SNAPSHOT.war
⇒コンテナを立ち上げた後に、コマンドを実行してくれます。(今回はwarファイルを起動してくれます。)
 ※commandは記載しなくてもコンテナが起動した後にdocker-compose exec サービス名 bashでコンテナ内に入ってwarファイルが格納されているディレクトリで直接実行してもいけます。

Dockerfile
FROM openjdk:18

javaのバージョンを指定しています。今回は18にしました。
バージョンによっては起動時にエラーになるので注意してください。

ディレクトリ構成

      /usr/ap
           |
           |-WebApp-1.0-SNAPSHOT.war
           |-docker
           |   |-java
           |      |-Dockerfile
           |-docker-compose.yaml

java

簡易APIを実装しました。
今回はpackageビルドjarファイルではなく、warファイルを生成するようにしました。
pom.xmlで設定できます。デフォルトはjarだと思います。

起動方法

docker-compose.yamlが格納されているディレクトリ内でdocker-compose up -dです。
コンテナが起動しているかはdocker psで確認できます。

最後に

Dockerのコンテナ内の環境でsystemdとかserviceコマンドは使えなさそうです。
なのでサービスに登録して実行みたいなことができないかもしれません。
ただ、コンテナで立ち上げたサービスはOSもしくはコンテナからログアウト(sshの接続を切る)してもサービスは常駐してくれます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0