指定した名前の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 を実行する。

PHPloy を使った FTP サーバーへのデプロイ

いろいろと FTP サーバーへのデプロイツールを探していましたが、PHPloy が今のところの使用感としては良い感じです。

https://github.com/banago/PHPloy

PHPloy は Git と連携しており、php phploy.phar deploy というコマンドを実行すると最後のコミットのワークツリーを FTP サーバーにアップロードしてくれます。最初にデプロイする場合は全てのファイルが転送され、既にデプロイをしたことがある場合は差分がアップロードされます。

デプロイ先の FTP サーバーのユーザー名やパスワードは deploy.ini に記述します。このファイルには複数のデプロイ先を記述することができ、コマンドの実行時にどの環境にデプロイするか指定できます。

また、PHPloy はディレクトリの削除に対応しています。FTP のデプロイツールは他にも dandeliongit-ftp がありますが、これらのツールはディレクトリを削除したコミットを行ったのちにそれをデプロイすると空のディレクトリが残ってしまいます。(動作確認した当時)

日本語の情報が無いようなので、追って記事化したいと思います。