こんにちは、Nanayakusです。
Dockerのデータを永続化する時に、詰まった所があったので紹介します。
「Dockerのデータを永続化!Data Volume(データボリューム)の理解から始める環境構築入門 | Enjoy IT Life」を参考にデータの永久化の設定を行いました。
結論から言うと、インデントがズレていただけでした。
データの永続化をするには、「volumes」を追記する必要がありますが、そのインテンドがズレていました。
version: '3' services: db: image: postgres environment: POSTGRES_PASSWORD: example volumes: - postgresql-date:/var/lib/postgresql/date tty: true web: build: . command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" volumes: - .:/myapp ports: - "3000:3000" depends_on: - db tty: true volumes: postgresql-date: external: true driver: local
これで「$ docker-compose up」をしても、servicesにvoloumesがないとエラーになります。
version: '3' services: db: image: postgres environment: POSTGRES_PASSWORD: example volumes: - postgresql-date:/var/lib/postgresql/date tty: true web: build: . command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" volumes: - .:/myapp ports: - "3000:3000" depends_on: - db tty: true volumes: postgresql-date: external: true driver: local
voloumesのインテンドはservicesと同じ位置でないとエラーになります。