HerokuのDBをDockerにリストアする

久々にメモ。
前やったのに忘れていしまっていた。

docker-compose.ymlの例

yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
version: '2'
services:

  app:
    build: ./
    container_name: my_app
    environment:
      RAILS_ENV: 'development'
    ports:
      - '3000:3000'
    volumes:
      - my-app-sync:/var/www:rw
    volumes_from:
      - my_app_datastore
    links:
      - db
    # For pry
    # https://github.com/docker/compose/issues/423#issuecomment-141995398
    tty: true
    stdin_open: true

  db:
    build: containers/postgres
    container_name: my_app_db
    environment:
      POSTGRES_PASSWORD: 'password'
    ports:
      - '5432:5432'
    volumes:
      - my-app-sync:/var/www:rw
    volumes_from:
      - my_app_datastore

  datastore:
    build: containers/datastore
    container_name: my_app_datastore
    volumes:
      - /datastore

# For docker-sync
volumes:
  my-app-sync:
    external: true

  • -d my_db ローカルのDB(Docker)
  • -h db のオプションは docker-compose で設定している。 localhost じゃないので注意。
bash
1
2
3
4
$ docker-compose start
$ docker-compose run db pg_restore --verbose --clean --no-acl --no-owner -h db -U postgres -d my_db /var/www/your_dump_file

=> password きかれる

DBのコンテナで docker-sync のボリュームを指定している。
でないとファイルを参照できない。

yml
1
2
    volumes:
      - my-app-sync:/var/www:rw

参考

https://medium.com/@tomsowerby/mysql-backup-and-restore-in-docker-fcc07137c757#.5e1v8rrjk

何かありましたらコメントをどうぞ

comments powered by Disqus

人気の記事

950 Points チリ出身のギタリストが弾くドラゴンボールZがむちゃくちゃかっこいい…
774 Points Wordpress + Heroku + PostgreSQL + Amazon S3 = ¥0 / 無料でサイト運営
700 Points Rubyのチートシート 変数 / クラス / モジュール
524 Points Rubyのチートシート / アクティブサポート
451 Points 紙のデザイナーがウェブ開発できるようになるまでに必要なこと
435 Points Rails / Google Analyticsのデータを使って分析や管理画面のためのグラフをつくる
323 Points RailsとHerokuでノーティフィケーションをプッシュする / PusherとTurbolinksの兼ね合い
222 Points Rails / RSpec テスト書いたことない メンドクサイ(n´Д`)という時のチートシート
193 Points Rails / Ajaxを使って画面遷移しない一時保存機能をつける
193 Points Protractorでスクレイピングしてみた