/var/log/messages

debugging with sixth sense

Docker な Rails 環境にて Assets:precompile

やはり、container は再起動しないと反映されませんでした。当り前ですね。手順的に

$ sudo docker.io stop `sudo docker.io ps -a|grep 'rails:latest'|awk '{print $1;}'`

で止めて

$ sudo docker.io rm `sudo docker.io ps -a|grep 'rails:latest'|awk '{print $1;}'`

で container を削除してから以下で

$ sudo docker.io run -i -t -v /home/fuga/rails_projects/hoge:/app --link redis:redis --link postgres:db --rm rails:latest bash -c "cd /app && RAILS_ENV=production bundle exec rake assets:precompile"

asset pipeline をアレして以下で起動、で反映されてることを確認してます。

$ sudo docker.io run -d -p 3000:3000 -v /home/fuga/rails_projects/hoge:/app --link redis:redis --link postgres:db rails:latest bash -c "cd /app && RAILS_ENV=production bundle exec unicorn -p 3000"

ぶっちゃけこのあたりも script だか alias だかにすべきですね。

止めて削除は以下かと。

#!/bin/bash

CONTAINER=$(sudo docker.io ps -a|grep 'rails:latest'|awk '{print $1;}')
sudo docker.io stop $CONTAINER
sudo docker.io rm $CONTAINER

て良くよく見てみるに docker/scripts 配下に色んなスクリプトが置いてありますね。

Comments