2015年3月5日 星期四

[Docker][教學] 使用Vagrant建立PostgreSQL環境(上)

enter image description here

開始使用docker後,現在都盡量將環境建立在docker上方便環境的設定以及移轉.最近想把postgresql移轉到docker上,但是怎樣都不成功(我的環境是OSX).試過官方的版本postgres,也有非官方的版本Painted-Fox/postgresql,搞了整整兩天經歷過無數次的失敗,才學到的血淚教訓–放下boot2docker,立地成佛

由於docker是run在linux kernel上,osx原生是不支援docker的,因此需要另外安裝boot2docker,也就是另外一個vm來模擬linux的環境,在其中才能使用docker.boot2docker是在環境中建立一個tiny linux
enter image description here
剛開始我直接pull Painted的postgresql(https://github.com/Painted-Fox/docker-postgresql)
enter image description here
下載好後執行
$ docker run -d --name="postgresql"\
             -p 127.0.0.1:5432:5432 \
             -v /tmp/postgresql:/data \
             -e USER="super"\
             -e DB="database_name"\
             -e PASS="$(pwgen -s -1 16)"\
             paintedfox/postgresql
接著用docker logs posgresql查看生成的狀況
enter image description here
居然出現迴圈!! 怎麼回事!!
這邊也有人提出一樣的問題,試了幾種解法都只會出現更多問題.
另外一個UTC FATAL: could not access private key file "/etc/ssl/private/ssl-cert-snakeoil.key": Permission denied 是來自AUFS ISSUE(https://github.com/nimiq/docker-postgresql93/issues/2)也是各種解法試過了還是會出現其他問題…以下的動作不斷做花了我兩天時間…
  • 改Dockerfile
  • build images
  • docker run
  • docker logs
  • docker ps
  • rm containers
    後來我決定放棄萬惡的根源…boot2docker…