docker-composeの書き方メモ

とりあえず初心者なりに、用語を調べながらなんとかdocker-composeを理解できそうです。

これからも使うことになるので、メモとして説明を入れながら書いてみました。

version: '3' #docker-composeのバージョン指定

services: #各コンテナの設計を書いていくよ

  web: #Webコンテナを書いていくよ
  
    build: . 
    #buildにはDockerfileに記述したことを元にするという指定
    
    ports:
      - "3000:3000" 
    #3000のポートが来たら3000のポートのコンテナを使用する
    
    command: bundle exec rails s -p 3000 -b '0.0.0.0' 
    #コンテナ起動時に実行されるコマンド、
    #-pでリッスンするポート番号の指定(3000)、
    #-bで0.0.0.0を指定しているのでコンテナの全てのインターフェイスでリッスンする。

    volumes: #ボリュームの指定。パスは相対パス。
    
      - .:/myapp 
      #カレントディレクトリ(ドットで指定)を/myappにバインドマウントアップしている
      
      - bundle:/usr/local/bundle 
      #bundleという名前のボリュームを/usr/local/bundleに作成する
      
    depends_on: #webが起動する前にdbを起動するようにする。依存関係の定義。
      - db
      
  db: #DBコンテナを書いていくよ
  
    image: mysql:5.7 
    #イメージにはこれを使うよ
    
    environment: 
    #DBの環境変数の設定
    
      MYSQL_ROOT_PASSWORD: "password" 
      #DBのパスワード
      
    ports: 
      - '3306:3306'
      #3006のポートが来たら3006のポートのコンテナを使用する
      
    volumes: 
      - mysql_data:/var/lib/mysql
      #ボリュームの指定
      
volumes: #こんな感じにトップレベルでボリュームを指定することで、名前のあるボリュームになる。
  bundle:
  mysql_data: