ゆるい感じのプログラムを書きたい。

プログラムの敷居を下げて、多くの人が開発出来るように色々書いていきます!

Dockerセットアップ 第6弾

docker-knowledgeの書き込み先をPostgresに変更

1.完成形のdocker-compose.ymlファイルの内容を確認

  • 以下のdocker-compose.ymlを元に準備する。
version: '3'
#swarm-mode対応http://docs.docker.jp/engine/swarm/index.html
services:
   app:
      image: koda/docker-knowledge:latest
      #コンテナ名を明示的に指定する
      container_name: docker-knowledge
      volumes:
         - /usr/local/etc/knowledge/webapps:/usr/local/tomcat/webapps
      ports:
         - 8080:8080
      restart: always
      tty: true     
      #dbが起動してからappが起動する.
      depends_on:
         - db

   proxy:
      image: nginx:latest
      #コンテナ名を明示的に指定する
      container_name: reverse-proxy
      volumes:
         - /usr/local/etc/knowledge/html:/usr/share/nginx/html
         - /usr/local/etc/knowledge/nginx/conf.d/:/etc/nginx/conf.d    
      ports:
         - 80:80
      restart: always
      tty: true

   db:
      image: postgres:latest
      #コンテナ名を明示的に指定する
      container_name: postgres
      
      #コンテナの環境変数を追加する。
      #build オプションと合わせて指定すると、build中は enviroment で指定した
      #環境変数は見えないことに注意。
      #build に変数を渡す場合は args オプションで指定する。
      environment:
         - POSTGRES_USER=postgres
         - POSTGRES_PASSWORD=admin123
         - POSTGRES_DB=docker_knowledge
      volumes:
         - /usr/local/etc/knowledge/postgres/data:/var/lib/postgresql/data
      restart: always
      tty: true


2.postgresの環境設定

下記のdocker-hubのEnvironment Variablesを参照 docker-hub postgres

environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=admin123
      - POSTGRES_DB=docker_knowledge


3.postgresのデータ保存先をマウント設定

  • environmentを用いて環境変数を設定する。

  • 1.ホストにpostgresのフォルダを作成

#nginxフォルダを作成
mkdir /usr/local/etc/knowledge/postgres

+ 2.docker-composeのdocker-compose.ymldbvolumesを以下のように設定しマウントさせる。

volumes:
    - /usr/local/etc/knowledge/postgres/data:/var/lib/postgresql/data
  • 3.上記1から2を行い、コンテナ再起動を行うと設定が反映される
docker-compose -f  [ymlファイル名] up -d


Dockerの起動後のログ確認について

以下のような時にログが見たい場合のコマンドです。

  • docker起動後にエラーで起動できない時
  • 起動しても画面が表示出来ない。
  • 起動後の動作確認を行いたい。
sudo docker logs -t <dockerID or dockerName>

#ログ確認コマンド:例
sudo docker logs -t postgres



参考サイト

PostgreSQL 9.3 の JSON サポートについて(長いよッ) - Qiita

Dockert調査 ~ログ編~ - Qiita