Docker For MacでPostgreSQL9.5系の環境を作ってみた!
こんばんは。opiyoです。
brew
でインストールするとなんだかPostgreSQL9.6系がインストールされてしまうのだけど、本番環境と同じバージョンをローカルに使いたくてウズウズしていたのだが...
Docker
使えば良いじゃんってアドバイス貰ったので教えてもらった
Docker For Macのインストール
https://www.docker.com/docker-mac
docker-compose.ymlを作る
docker-compose.ymlの場所を作る
$ mkdir -p ~/compose/postgresql95/ $ vi docker-compose.yml
PostgreSQL9.5を配置する場所を作る
$ mkdir ~/postgres95
docker-compose.ymlを修正
postgresql: image: postgres:9.5.8-alpine environment: POSTGRES_USER: taku POSTGRES_INITDB_ARGS: "--encoding=UTF8 --no-locale" LANG: ja_JP.UTF-8 ports: - "5432:5432" volumes: - /Users/taku/postgres95:/var/lib/postgresql/data #「/Users/taku/postgres95」の箇所を、さっき作った場所を指定する restart: always
やることは、
POSTGRES_USER
を各自設定するvolumes
のパスをさっき作った場所を指定する
image
の部分には、こちらのサイトに書いてあるように好きなバージョンを書けばおk
https://hub.docker.com/r/library/postgres/tags/
自動起動されているpostgresqlを止める
本当は9.6系と9.5系を共存させたいのだけど、上手くいかないので既にPostgreが動いている場合は止める。
私の場合は、brew
でインストールしてたので簡単だった。
$ brew services list Name Status User postgresql started taku $ brew services stop postgresql $ brew services list Name Status User postgresql stopped
パスを通す
$ sudo vi ~/.bash_profile export PGHOST=localhost $ env | grep HOST PGHOST=localhost
これは教えてもらうがままにやったけど、何してるのかいまいち分かってないぞ。
構築と起動
$ docker-compose up -d
でpsql -l -p5432
とかやればアクセスできるはず!
めちゃくちゃ簡単でした。
その他Dockerコマンド
ステータス
$ docker ps
停止
$ docker stop CONTAINER_NAMES
コンテナに入る
$ docker exec -it CONTAINER_NAMES /bin/bash
こんな感じ。