Dockerのコンテナの中に入ってbash使いたい

これで出来た

sudo docker exec -ti hoge bash

exec はコンテナにログインするためだけにあるのではなく、起動中のコンテナに 別のプロセスを注入する コマンドである。

だそうだ。ちなみにこの状態では確か使えるコマンドに制限があったってかなんか使えなかったりしてエラーがでるんだけど、それが以下のやつ。そもそも入らなくてもいいような設計をしなきゃいけないってことだとは思うんだけど。

まあとりあえず動けば今はよし。ちなみに注入ってことでそのままコマンドを実行することもできるのかもしれない。未検証なのでやってみて。

sudo docker exec -ti hoge egrep -rl 'fuga' ./

Phalconでログを作成する

かなりシンプル

$logger = new \Phalcon\Logger\Adapter\File('../../tmp/logs/example.log');
$logger->log('通常のログを残す');
$logger->error("エラーログを残す");

ちなみにログは先程の方法でもいけるが、第一引数がtypeになっているので不具合を回避するために以下のようなメソッドを使った方がいいと思う。

<?php
$logger->log(\Phalcon\Logger::CRITICAL, 'example');
$logger->log(\Phalcon\Logger::EMERGENCY, 'example');
$logger->log(\Phalcon\Logger::DEBUG, 'example');
$logger->log(\Phalcon\Logger::ERROR, 'example');
$logger->log(\Phalcon\Logger::INFO, 'example');
$logger->log(\Phalcon\Logger::NOTICE, 'example');
$logger->log(\Phalcon\Logger::WARNING, 'example');
$logger->log(\Phalcon\Logger::ALERT, 'example');

ログの出力結果

[Thu, 26 Feb 15 09:22:23 +0900][CRITICAL] example
[Thu, 26 Feb 15 09:22:23 +0900][EMERGENCY] example
[Thu, 26 Feb 15 09:22:23 +0900][DEBUG] example
[Thu, 26 Feb 15 09:22:23 +0900][ERROR] example
[Thu, 26 Feb 15 09:22:23 +0900][INFO] example
[Thu, 26 Feb 15 09:22:23 +0900][NOTICE] example
[Thu, 26 Feb 15 09:22:23 +0900][WARNING] example
[Thu, 26 Feb 15 09:22:23 +0900][ALERT] example

ロギング — Phalcon 1.3.1 ドキュメント

PhalconのVoltでPHPでいうところのあれはどうする表

PHPでいうところのあれはPhalconのVoltではどれなの表。trimとかできないかと思ってControllerでやってたぜ。

Volt PHP
e htmlspecialchars()
escape htmlspecialchars()
escape_css
escape_js
escape_attr
trim trim()
left_trim ltrim()
right_trim rtim()
striptags strip_tags()
slashes
stripslashes stripslashes()
capitalize ucfirst()
lower strtolower()
upper strtoupper()
length count()
nl2br nl2br()
sort asort()
keys array_keys()
join implode()
format sprintf()
json_encode json_encode()
json_decode json_decode()
abs abs()
url_encode urlencode()
default
convert_encoding

これが動いているってわけじゃなくてPHPでいうところのあれはどれなのってことね。例えば実際eなんかは\Phalcon\Escaper->escapeHtmlが動いている。詳しくは公式のドキュメントを見るよろし。

Volt: テンプレートエンジン — Phalcon 1.3.1 ドキュメント

Dockerで自前のSSL証明書を使っているサーバーからイメージを取得する

Dockerでコンテナを立ちあげたい

sudo docker run -ti docker.example.local:5000

HTTPや自前のSSL証明書の場合は "If this private registry supports only HTTP or HTTPS with an unknown CA certificate..." といったエラーが発生して止まる。これを解決するにはこのようにして /etc/sysconfig/docker に存在するOPTIONSに言われた通りの記述を追加するだけでいい。

OPTIONS=--selinux-enabled -H fd:// --insecure-registry docker.example.local:5000

時期によってOPTIONSのところが変わってたりするみたいだけど、とりあえず今現在はこれで行けるようだった。また変わってもいい感じで追加すればいいと思う。

追記

2015/04あたりで久しぶりにdocker入れなおしたら設定方法変わってた。INSECURE_REGISTRYっていう項目が新しく出来た感じなんかね

OPTIONS='--selinux-enabled'
DOCKER_CERT_PATH=/etc/docker
INSECURE_REGISTRY='--insecure-registry example.com:5000'
GOTRACEBACK='crash'

24時間営業してる郵便局がある

渋谷近くの郵便局が24時間営業してるようだ。以下のゆうゆう窓口ってやつを見てくれ。土日祝もお構いなしに営業しているようだ。

こっちが普通の郵便局。私はこのタイプしか知らなかった。

私の家の近くに自転車でいける距離にも営業時間が長いところがあって、さすがに日曜日は営業していなかったが土曜日とかに使えると助かるし、日曜日にどうしてもとなれば電車で行けるところに24時間営業の郵便局があるのでそこを利用できることを知ったぜ。

以下では全国で通常よりも長い時間営業している郵便局が一覧になっていた。

24時間営業している郵便局一覧(東京・大阪・福岡など47都道府県を完全網羅) | 通販と宅配便の情報サイトとりせどどっとこむ

TERM environment variable not setの対応

$TERMの中身を見る

echo $TERM

xtermではなければxtermを入れる。bashでそのまま実行すればいい。

export TERM=xterm

正直なぜ$TERMの中身がxtermではなくなっていたのかなど詳しくは私は知らない。たまたまのケースだったので今回はこれで対応しておいた。

MacにHomebrewでMySQLをインストール

Homebrewでインストールするのが早い

brew update
brew install mysql

インストール後インストール先のパスが表示されるので.bash_profileでパスを通す

vi ~/.bash_profile

通し方はこれ。exportを使って既存のパスも維持する。

export PATH=~/path:$PATH

Vimのインデント可視化プラグインvim-indent-guidesのインストール

f:id:hoge:20150220004919p:plain

インストール

NeoBundleを使ってのインストールをする。以下を.vimrcに追加する。

NeoBundle 'nathanaelkane/vim-indent-guides'

インデントの設定

.vimrcに以下の設定を追加

let g:indent_guides_enable_on_vim_startup=1
let g:indent_guides_start_level=2
let g:indent_guides_auto_colors=0
autocmd VimEnter,Colorscheme * :hi IndentGuidesOdd  ctermbg=235
autocmd VimEnter,Colorscheme * :hi IndentGuidesEven ctermbg=234
let g:indent_guides_color_change_percent = 30
let g:indent_guides_guide_size = 1

インデントの色指定について

IndentGuidesOddとIndentGuidesEvenで奇数と偶数のインデントに色を付けられる。色の指定はctermbgでやっているんだが、ここが16進数表記ではない。指定できる色については下記で一覧にされているので自分で色を指定したいなら参考にされたし。

色々やってみたけど偶数は薄く、奇数は濃いって感じが一番綺麗なんじゃないかと思った。

Vimでjsonファイルのダブルコーテーションが非表示になる問題

私の環境ではYggdroot/indentLineというプラグインを使っていることが原因となっていた。非表示にする方法は調べても見つからなかったし、これじゃなきゃ困るというわけでもなかったので代わりに別のインデントプラグインに差し替えた。差し替えたプラグインは以下。