Docker公式イメージで開発用RDBをゲットだぜ(PostgreSQL編)
- 2016/08/16
- murave
- Docker
- PostgreSQL
まえがき
Laravelでの開発時にデプロイ先はMySQLなのに手を抜いて手元の開発機ではSQLiteを使っていたら痛い目にあったりしました、muraveです。
SQLiteって結構ルーズにつかえてしまうので手元の開発でSQLite使っててMySQL運用のサーバーにデプロイするとエラーがバンバンというのが昨日から連続発生中。
— murave (@murave) 2016年7月14日
開発環境にあまり影響を与えずにサクッと開発用のRDB(Relational Database)を建てられると素敵ですね。Docker公式イメージを活用すると出来そうです。
RDBというデッカイ単語を使っていますが、自分がよく使うPostgreSQL、MySQL、MariaDBなどについて調べようと思います。MySQLとMariaDB自体はほぼ同じ扱い方ができるRDBですが、公式イメージでの扱いはどうなんでしょうね。
記事にまとめながら試していこうと思います。Docker for Macを使用しており、今回はPostgreSQLです。
Docker for Mac のDockerホストに入るには
どうしたらいいんだろう?
と方法を探していたら以下のページにscreenコマンドでttyに接続すれば良いとの情報がありました。
Docker for Mac プライベートベータを早速使ってみた! – paiza開発日誌
試してみます。
$ screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
この後、Enterすると表示が出て、moby login: にrootを入力してEnterでDockerホストに入ることができました。
添付の画像は私の場合の表示ですが、screenの設定がカスタマイズされているのでおそらく他の方とは異なります。
screen常用者の端末ではカスタマイズされていて他の人には使えないのも常ですので操作方法については別途調べるなどしてください(Ctrl-a ?でヘルプをみることができますがそもそもCtrl-aが変更されていることが多く、例にもれず私もCtrl-zにしてあります)。
私は導入していないのですがtmuxなどでも良いでしょう。たぶん。tmuxについては下記、shunの記事などをどうぞ。
OS X に byobu で tmux 環境をお手軽構築 [2015 冬版]
絶対忘れるのでメモでした。
ConoHaでDocker Machine、2016年夏
Docker for Mac からベータが取れて久しいですが、インストールしたまま放置状態でしたので勉強中です。
とりいそぎ手元の開発環境構築で使いたいのですが、最近よく開発用に利用している ConoHa で Docker Machine していました。なぜか。
Docker for Mac vs. Docker Toolbox を読みますと、Docker for Mac を手元で使う分には Docker Machine を意識する必要すらなくなっているようですが、docker-machineコマンドも含まれてはいたので調べていたらそういうことになっていたのでした。
docker-machineコマンドでConoHa上にDockerのHostをVMレベルからcreateしたりstopしたりrmしたりできるようになったわけですがいまのところあまり使い道が思いつきません。ConoHaだとVM(サーバー)止めてても課金が止まらないんですよねぇ。
検証用や確認用に一時的にHostを立ち上げて(create)終わったらすぐ消す(rm)、とかでしょうか。
せっかくですし、すぐに忘れてしまいそうなので引っかかった箇所のメモを残しておこうと思います。
セミナー「宿泊業における顧客満足と効率性を両立させる方法」を聞きました
こちら県主催の長崎県内で宿泊業を営む事業者及び支援機関向け「長崎県宿泊業生産性向上促進セミナー」のスタートアップセミナーでした。
http://www.pref.nagasaki.jp/object/event-koza/event/249247.html
「対象外じゃないの?」とおっしゃるあなたのお気持ち、わかります。
が、民泊の運用サポートを行うソフトを作ってまして、一応、支援機関枠ということで一つよろしくお願いします。
対象の中小宿泊業から見ると敵対勢力をサポートしている気もしますが、技術は中立ですよ?
Laravel 5.1 でログ出力、その後 (出力レベル設定、クエリ出力)
2017/2/1
不具合があったので『Laravel 5.1 でログ出力、それから (ログメールドライバー動作不良対処、クエリ出力の調整)』のほうを見て下さい
少し前に書いた『Laravel 5.1 で実行ユーザー毎にログ出力』という記事の続き的なものです。
環境も変わらず Laravel Framework version 5.1.35 (LTS) です。
前回のあらすじ
「ログ出力時に実行ユーザー名ベースでログファイルを作るようにすればログファイルの権限絡みのエラーを回避できるし何処から起動された処理かわかりやすくなって良くない?」と思ったボク。AppServiceProviderのboot()でloggerを差し替えつつも「ここでやっちゃっていいのかしら」という戸惑いを感じたりもして…
で、戸惑ってましたが実行準備の一貫としてAppServiceProviderでやってて問題なさそうかなと思ってます。ツッコミもこなかったし。
今回は実際に開発で使っていて
・デバッグフラグ(app.debug)を落とした状態ではINFO以上のログのみ出力
・デバッグフラグ(app.debug)を立てた状態では発行されたクエリをDEBUGログで出力
という機能追加をしたので、その紹介です。
RoundCubeの容量円グラフを出す
- 2016/07/15
- aikawa
RoundCubeでフォルダ一覧の下に、円グラフで何パーセントとか出ますよね。あれですあれ。
単に表示させたいだけなので、MailDir++形式で全体を設定するだけです。
Postfix側のVDA設定とかユーザ別設定とかは除外。
いつも通り、こちらで使ったのを再利用。
設定するファイル
quotaで設定して、imap_quotaでIMAP経由で取得出来るようです。
- /etc/dovecot/conf.d/10-mail.conf に追加
mail_plugins = quota
- /etc/dovecot/conf.d/90-quota.conf に追加
plugin{
quota_rule = *:storage=10M
}
plugin{
quota = maildir:User quota
}
- /etc/dovecot/conf.d/20-imap.conf に追加
mail_plugins = $mail_plugins imap_quota
後は再起動するだけ。
service dovecot restart
PostgreSQL8.1で2カラムの日付検索にインデックスを使う
- 2016/06/24
- aikawa
QNAP ファームウェア4.2.1 で起動スクリプトを追加して dhcpd を自由に設定する
- 2016/06/21
- murave
- QNAP TurboNAS
「NAS(ナス)とNIC(肉)の相性は最高だネ」 夏野菜ジョークでハートキャッチ! muraveです。
QNAP TurboNAS で既存のファイルサーバー(Samba)を置き換えるための準備をしています。
このサーバーは DHCP Server の役割も担っているので NAS の選定時、機能が載っているという確認はしていました。
ところがいざ仕入れてセットアップと動作確認を進めると
「DHCP Server (dhcpd) の設定画面が NAS の IP より後ろしか range の設定できないという仕様でク◯だ!」
「設定した『既定のゲートウェイ』を再起動時に無視して自分のIPを設定しやがって◯ソとかいうレベルじゃなくバグってんじゃねーか!」
などありまして、大変困ってしまったのでした。 あまり使われてないんですかね。
置き換えするサーバーが居るネットワークはなぜか真ん中あたりにゲートウェイが居るし、range だって複数設定したいんだよ!
ということで、回避方法を調べていたところ dhcpd の設定ファイルを書き換えてから kill -HUP する独自の起動スクリプト(autorun.sh)を追加するという方法にたどり着きました。
Laravel 5.1 で実行ユーザー毎にログ出力
2017/2/1
不具合があったので『Laravel 5.1 でログ出力、それから (ログメールドライバー動作不良対処、クエリ出力の調整)』のほうを見て下さい
Laravel Framework version 5.1.35 (LTS) についての記事です。
muraveです。あんまりにもあんまりな記事(「PHP カンファレンス福岡 2016 で思ったこと」)を上げて反省しましたのでPHPお役立ち記事を書きたいと思います。
CLIコマンドを作ることができるフレームワーク、CakePHPなどもですが、ログ出力時にWebとCLIで実行したユーザーが異なり、権限がらみのエラーが発生したりしがちです。
そもそもログを調べる時、WebとCLIは別ファイルになってた方が良くないです?
Twilioの隠しコマンド
- 2016/06/14
- suganuma
隠しコマンドというか、公式ドキュメントには掲載されていませんが、知ってると結構役にたつと思われる情報です。
<Dial>動詞のsequential属性です。
通常、 <Dial>動詞に複数の名詞(<Client>や<Number>)をネストすると一斉に呼び出しを行いますが、sequential=”true”とすると、1件ずつ呼び出しを行います。
<Dial timeout="30" sequential="true">
<Client>client_1</Client>
<Number>+819012345678</Number>
</Dial>
上記の場合、最初にclient_1クライアントの呼び出しを行い、client_1クライアントがオフラインまたはタイムアウトで出ない場合のみ、電話番号+819012345678に発信を行います。


