指定した名前のDockerコンテナが存在すればdocker stopコマンドを実行する
sudo docker ps -a --filter "name=app" | awk 'BEGIN{i=0}{i++;}END{if(i>=2)system("sudo docker stop app")}'
--fileter "name=app"
はdocker ps -a
の結果の中からコンテナ名がapp
であるものだけを表示するオプション。sudo docker ps -a --filter "name=app"
で出力された行数を awk でカウントし、2行以上であればapp
コンテナが存在するものとしてsudo docker stop app
を実行する。
全てのDockerイメージを削除する
sudo docker images -q | xargs sudo docker rmi
全てのDockerコンテナを削除する
sudo docker ps -aq | xargs sudo docker rm
- コンテナは停止している必要がある。
-a
オプションは全てのコンテナを表示する。-q
オプションはコンテナIDのみを表示する。
Capistrano のタスク間で共有できる変数
set :hoge, capture("pwd")
変数 hoge
に capture("pwd")
の実行結果が格納される。この hoge
は別のタスクからでも fetch(:hoge)
と書くとアクセスすることができる。
Cygwin でデスクトップに移動しやすくするエイリアス
下記を.bashrc
に書くとデスクトップに移動しやすくなります。
alias desktop='cd $USERPROFILE/Desktop'
PHPloy を使った FTP サーバーへのデプロイ
いろいろと FTP サーバーへのデプロイツールを探していましたが、PHPloy が今のところの使用感としては良い感じです。
https://github.com/banago/PHPloy
PHPloy は Git と連携しており、php phploy.phar deploy
というコマンドを実行すると最後のコミットのワークツリーを FTP サーバーにアップロードしてくれます。最初にデプロイする場合は全てのファイルが転送され、既にデプロイをしたことがある場合は差分がアップロードされます。
デプロイ先の FTP サーバーのユーザー名やパスワードは deploy.ini
に記述します。このファイルには複数のデプロイ先を記述することができ、コマンドの実行時にどの環境にデプロイするか指定できます。
また、PHPloy はディレクトリの削除に対応しています。FTP のデプロイツールは他にも dandelion や git-ftp がありますが、これらのツールはディレクトリを削除したコミットを行ったのちにそれをデプロイすると空のディレクトリが残ってしまいます。(動作確認した当時)
日本語の情報が無いようなので、追って記事化したいと思います。
qrank を WordPress から Flight に移行した
Flight への移行
qrank では WordPress をフレームワークとして使っていましたが、ランキングデータの保存をすべて外部のサーバーで行うようにしたので、WordPress の役割はルーティングとビューだけになってしまいました。となると WordPress である必要はなくなったので、DB を使用しなくてもよい軽量のフレームワークを探したところ、Flight というフレームワークが見つかりました。Flight 自体が提供している機能は非常にシンプルで学習コストも低く助かりました。単純なウェブサイトを作る分には充分ではないかと思います。
Bootstrap の導入
PHP のフレームワークの移行にあたり、ほとんどのコードを書き直す必要がありましたので、ついでに今更ながら Bootstrap を導入しました。Bootstrap が提供しているグリッドシステムは汎用性が高く、これだけでも利用価値はあるのではないかと思います。グリッドシステムに従っていればスマートフォンで見ても、それなりにレスポンシブにしてくれるため良いです。
結果
Flight を使ったフロントエンド側ではルーティングとビューと多少のコントローラーだけを扱えばよく、ランキングデータを提供するサーバー側と役割が分離されたためメンテナンス性が高まりました。
qrank | Qiitaの人気記事ランキング
http://qrank.wbsrv.net/