LoginSignup
1
0

More than 5 years have passed since last update.

macOS High Sierra で CouchDB 2.0.0 が動かないので docker で

Last updated at Posted at 2017-09-30

事の発端

普段 CouchDB 2.0.0 を使ってプログラミングしている。 その環境に嬉々として macOS High Sierra をインストールしたところ、 CouchDB が起動しなくなりました。
CouchDB の github に CouchDB 2.1.0 への issue #840 が上がっていて、erlang のバグらしいこと、それの CouchDB がサポートするバージョンのソースを入手し、1行修正の上ビルドし直して適用したらうまくいくかもしれない、との情報があったが、issue を上げた人がまだそれに対して返信していない。この issue のスレッドには、1.6 でも同様の状態になったとコメントしている人もあるので、どうやら 2.0.0 もその憂き目にあった様子。

しかも自分の知識の範疇で erlang をビルドし直した後にどうするかが今ひとつピンとこない。

こりゃ、もう、docker でしょ、ってことで docker 構築です。
最近なんでも docker に頼る自分です。(^^;;;

Docker Image の確定

入れたいバージョン: CouchDB 2.0.0

Docker Hub で検索してみると、Official の 2.0.0 が見当たらない。CouchDB の DOCS で、instillation の章に "Installation via docker" なる節があって、そこを見ると apache/couchdb に tag 2.0.0 があるらしきことが書いてある。これを頼りに、

$ docker pull apache/couchdb:2.0.0
Error response from daemon: manifest for apache/couchdb:2.0.0 not found

となった。latest の 2.1.0 なら pull できるが目的のバージョンではなかった。
いくらかGoogle先生で検索を繰り返し、Short Description に "Official Apache CouchDB Docker image"と書かれた klaemo/couchdbを発見。 ssl を使用する場合の klaemo/couchdb-ssl が、github の apache/couchdb-dockerで紹介されている。この docker image は、Docker Hub のapache/couchdbで、詳細説明へのリンクが示されていて、そこからもリンクされていることを確認した。これらのことから klaemo/couchdb を使うことにした。

Docker Image の pull & run

klaemo/couchdb の Full Description などをみて、以下はすんなりいきました。

リポジトリーからcouchedをpullする
$ docker pull klaemo/couchdb:2.0.0
2.0.0: Pulling from klaemo/couchdb
aa18ad1a0d33: Pull complete
c9c9bce49bac: Pull complete
2cf341bb1e0c: Pull complete
36d2f0a8e0e1: Pull complete
84d05e7ec0a8: Pull complete
70dedd8d9fd5: Pull complete
bb56d024fe18: Pull complete
4dfb5272a814: Pull complete
82c46c798747: Pull complete
cf16d4df85d7: Pull complete
Digest: sha256:7ddcf7c3c2ff7c0725d081840c914ebf6cb4cdf0730d67d15abcc64a0f9c195d
Status: Downloaded newer image for klaemo/couchdb:2.0.0

で、うまくいったようなので実行。

$ docker run --name mycouchdb -p 5984:5984 -d -v $(pwd):/opt/couchdb/data -e COUCHDB_USER=xxx -e COUCHDB_PASSWORD=xxx klaemo/couchdb:2.0.0
d225a0e625b0173ac0bd7455f3ba111916a4c4e76170e45b400ed97a1621f035

ということでうまくいきました。

ちょっと強引(?)なチャレンジ

Mac にインストールしてあった couchbakcup の couchrestore を使って、たまたまとってあったバックアップをリストアすると、うまく利用していた状態が復元されました。

$ cat backup.json | couchrestore --db mydb
================================================================================
Performing restore on http://localhost:5984/mydb using configuration:
{
  "bufferSize": 500,
  "parallelism": 5
}
================================================================================
  couchbackup:restore restored 82 +0ms
  couchbackup:restore finished { total: 82 } +20ms

アプリを起動して、無事動作確認終了。

Mac の CouchDB 2.0.0 は次の場所にデータを作っているらしいので、そこをコピーして docker run するときにそのコピー先のディレクトリを指定してみたが、うまくデータをロードできないというエラーが Fauxton の画面に表示されてデータは参照できなかった。ちょっと強引だった模様。

~/Library/Application\ Support/CouchDB2/var/lib/couchdb/

追記 (2017-10-02 09:24 JST)

Issue #840 にfix版の 2.1.0 のアーカイブファイルへのリンクが公開されました。Issue を登録した人がクイックにテストして問題がなかったようで、Issue #840 はクローズされたようです。ローカルに一応ダウンロードしておくことにしました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0