On my production server, which is hosted on digital ocean, if that helps, Ubuntu 12.04, I have RoR 4 and rake 10.1.1.
When I deploy, I run rake assets:precompile
, and I've noticed a strange issue where if I have a rails console
session open when I do this, I get the following output
~# rake assets:precompile
~# Killed
It's mainly annoying, but the reason I want it resolved is when hiring new developers, there will be deploy/console conflict nightmare.
Thanks,
Brian
Your precompile process is probably being killed because you are running out of RAM. You can confirm this by running top
in another ssh session. To fix this, create a swap file that will be used when RAM is full.
Create SWAP Space on Ubuntu You will probably end up needing some swap space if you plan on using Rails on Digital Ocean 512MB RAM droplet. Specifically, you will run out of RAM when compiling the assets resulting in the process being quietly killed and preventing successful deployments.
To see if you have a swap files:
sudo swapon -s
No swap file shown? Check how much disk space space you have:
df
To create a swap file:
Step 1: Allocate a file for swap
sudo fallocate -l 2048m /mnt/swap_file.swap
Step 2: Change permission
sudo chmod 600 /mnt/swap_file.swap
Step 3: Format the file for swapping device
sudo mkswap /mnt/swap_file.swap
Step 4: Enable the swap
sudo swapon /mnt/swap_file.swap
Step 5: Make sure the swap is mounted when you Reboot. First, open fstab
sudo nano /etc/fstab
Finally, add entry in fstab (only if it wasn't automatically added)
# /etc/fstab
/mnt/swap_file.swap none swap sw 0 0
Save and exit. You're done adding swap. Now your rake assets:precompile
should complete without being killed.
Rake assets:precompile
is a memory eating process.
So make sure you have enough RAM before using that command
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With