はじめに
Docker composeを用いて、GoAPIコンテナ、mysqlコンテナを立ち上げたときに調べたことをまとめます。
Docker composeとは
Docker Composeとは
Docker Composeは、複数のコンテナで構成されるアプリケーションについて、Dockerイメージのビルドや各コンテナの起動・停止などをより簡単に行えるようにするツールです。
Docker入門(第六回)〜Docker Compose〜
version: '3'
services:
db:
image: mysql-db
container_name: mysql-db
build:
context: .
dockerfile: ./dockerfile/mysql
volumes:
- ./mysql/db:/docker-entrypoint-initdb.d #初期データ
environment:
MYSQL_ROOT_PASSWORD: cafe-password
TZ: "UTC"
ports:
- "127.0.0.1:3307:3306"
api-server:
image: go-api-server
container_name: go-api-server
build:
context: .
dockerfile: ./dockerfile/goapi
ports:
- "127.0.0.1:8080:8080"
depends_on:
- db
app:
build:
context: .
dockerfile: ./dockerfile/app
ports:
- "127.0.0.1:3000:3000"
tty: true
volumes:
- ./src:/app #ホスト:コンテナ
environment:
- WATCHPACK_POLLING=true
#command: sh -c "npm run dev"
各項目の解説
- image
「docker-compose build」を実行したときのimage名を設定 - container_name
「 docker-compose up -d」したときのコンテナ名 - build
context…「docker build」 コマンドを実行したときのカレントディレクトリを設定。ビルドコンテキスト
dockerfile…ビルドコンテキストからのdockerfileの位置を指定
docker-compose.ymlのbuild設定はとりあえずcontextもdockerfileも埋めとけって話 - ports
公開するポート番号を設定。(ホスト:コンテナ) - depends_on
コンテナの依存関係を設定する。 - command
docker-composeで指定するcommandはDockerfileよりも優先される
Linuxのコマンド
- sh
シェルを起動する。-cはオプションで単一コマンドのためにシェルを呼び出すプログラム (例えば、エディター) のときに使用する。