こんにちは。
本日はdocker-compose.ymlについてのメモです。
概要
以前作成したapp01とdb01の環境を
docker-compose.ymlを使って起動する。
ファイルの配置は以下です。
- docker-compose.yml - Dockerfile.db01 - Dockerfile.app01 - springbootapp01 - demo - target - demo.jar
docker-compose.ymlの作成
一旦、全体を以下に記載します。
- docker-compose.yml
version: '3' networks: default: name: bridge mynetwork01: name: mynetwork01 services: db01: container_name: db01 build: context: . dockerfile: Dockerfile.db01 tty: false ports: - 5432:5432 networks: - mynetwork01 environment: - POSTGRES_USER=mydb - POSTGRES_PASSWORD=postgres - POSTGRES_DB=mydb app01: container_name: app01 build: context: . dockerfile: Dockerfile.app01 tty: false ports: - 8080:8080 networks: - mynetwork01 environment: - POSTGRES_USER=mydb - POSTGRES_PASSWORD=postgres - POSTGRES_DB=mydb - DRIVER_CLASS_NAME=org.postgresql.Driver - DATASOURCE=jdbc:postgresql://db01:5432/mydb
- Dockerfile.db01
FROM postgres:14
- Dockerfile.app01
FROM adoptopenjdk/openjdk11:alpine-jre WORKDIR /app COPY ./springbootapp01/demo/target/demo.jar . CMD ["java", "-jar", "demo.jar"]
大まかな書き方について以下に記載します。
version
そのままですね。
使用するバージョンを指定します。
networks
ネットワークの情報を記載します。
今回は、以前の記事で作成したmynetwork01を指定しています。
services
serviceを定義します。
今回でいうと、db01 と app01 のことです。
ここに起動するコンテナの情報を記載します。
docker-composeのコマンド
docker-compose.ymlの場所に移動して実行してください。
ビルド
以下のコマンドを実行してビルドします。
$ docker-compose build
各サービスが完了したらOKです。
Building db01 [+] Building 0.2s (5/5) FINISHED ... ... Building app01 [+] Building 11.8s (8/8) FINISHED ... ...
起動
以下のコマンドを実行してください。
$ docker-compose up -d
-dオプションは、バックグラウンド起動を指定するオプションです。
以下の表示になったら起動完了です。
Creating app01 ... done Creating db01 ... done
停止
以下のコマンドを実行してください。
$ docker-compose stop
以下の表示になったら停止完了です。
Stopping app01 ... done Stopping db01 ... done
削除
以下のコマンドを実行してください。
$ docker-compose rm
以下の表示になったら削除完了です。
Removing app01 ... done Removing db01 ... done
以上です。