gpt4 book ai didi

ruby-on-rails - 抽取 Assets :precompile gets killed when there is a console session open in production

转载 作者:数据小太阳 更新时间:2023-10-29 06:30:27 26 4
gpt4 key购买 nike

在我托管在 digital ocean 上的生产服务器上,如果有帮助的话,Ubuntu 12.04,我有 RoR 4 和 rake 10.1.1。

当我部署时,我运行 rake assets:precompile,我注意到一个奇怪的问题,如果我在执行此操作时打开了一个 rails console session ,我得到以下输出

~# rake assets:precompile
~# Killed

主要是很烦人,但我希望解决这个问题的原因是在雇用新开发人员时,会有部署/控制台冲突噩梦。

谢谢,

布莱恩

最佳答案

您的预编译进程可能被终止,因为您的内存不足。您可以通过在另一个 ssh session 中运行 top 来确认这一点。要解决此问题,请创建一个在 RAM 已满时使用的交换文件。

在 Ubuntu 上创建 SWAP 空间如果您计划在 Digital Ocean 512MB RAM droplet 上使用 Rails,您可能最终需要一些交换空间。具体来说,您将在编译 Assets 时耗尽 RAM,导致进程被悄悄终止并阻止成功部署。

查看是否有交换文件:

sudo swapon -s

没有显示交换文件?检查您有多少磁盘空间:

 df

创建交换文件:

第 1 步:为交换分配文件

sudo fallocate -l 2048m /mnt/swap_file.swap

第 2 步:更改权限

sudo chmod 600 /mnt/swap_file.swap

第三步:格式化交换设备的文件

sudo mkswap /mnt/swap_file.swap

第四步:启用交换

sudo swapon /mnt/swap_file.swap

第 5 步:确保在重新启动时已安装交换区。首先,打开fstab

sudo nano /etc/fstab

最后,在 fstab 中添加条目(仅在未自动添加的情况下)

# /etc/fstab
/mnt/swap_file.swap none swap sw 0 0

保存并退出。您已完成添加交换。现在你的 rake assets:precompile 应该完成而不会被杀死。

关于ruby-on-rails - 抽取 Assets :precompile gets killed when there is a console session open in production,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22272339/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com