Rails + puma?
你微信多少
所以呢?
本质上是帮你更清楚的认识应用所需的运行环境,维护一个没有“无用”组件的环境
由于镜像传输是分层 + 压缩的,对于持续构建的项目,镜像大小真没太大区别,比如你的镜像,只有 COPY 之后的两层会在 pull 时更新,前面的都是有缓存的(部署新机器例外)
我之前的做法是预打包一个足够简单又足够通用的基础镜像,公司所有 Rails 项目都基于它来打包,以保证快速扩容时可以在集群的任何一台机器上快速部署
我始终觉得镜像正确的进化方式是“是不是足够简单”,以避免环境变得复杂而难以维护,体积小只是顺手而为之
irb 打印一下 ElfTools::VERSION
Dokcer 镜像减肥的重点应该是『简』而不是『小』,单纯的追求容量的减小并不会带来什么提升或收益
反倒是花些时间理清镜像中,哪些是编译依赖,哪些是运行依赖,哪些是必须的,再适度优化,利用好镜像层的缓存,我觉得会更有意义
搜 ttyd 搜到了 ruby-china 差点以为自己打开方式错了
厉害 厉害
你确定这是一个正常的 gbk 字符么?用编辑器以 gbk 编码打开 aa.log 这个文件看看呢
你的问题其实涉及到两个方面:1. 线上日志处理、2. 线上异常查询
如果你需要的是如何优雅的找到线上异常信息,可以考虑 sentry 一类的服务,exception-track 这个 gem 也值得试一下,特别好用,吐血推荐
如果你是觉得日志写在磁盘上很麻烦,每次查个日志要登好几台机器,还要各种 tail head grep awk wc sort uniq …… 那么你可以搭个 ELK 了,或者考虑一下云服务商的日志服务
Gitlab -> Gitlab-runner -> Swarm
不过我觉得 Rails 项目少量更新代码没必要 redeploy,于是直接找了个小工具 docker_swarm_helpers 去做热重启,我只能说——灰快。需要重新打镜像的时候,通过打 tag 去触发重新部署的流程
另外关于 Swarm 的管理,推荐 Portainer,至少不用再纠结 docker-compose.yml 文件放哪儿了
第一眼看成了 RPG
一般说“很多坑”估计是缺了几个小功能,追问一下就知道了,如果真有坑的话,他会用“特别坑”来提醒你 😄😄 我这边用着很好,配合 portainer 爽歪歪,关键是不折腾啊
曾花了整整一周去折腾如何在混合云上搭一个人 K8S 集群,最后还是放弃了,swarm 真香
哈哈哈 说明你有一个月没有打开自己博客了
完了 没货了怎么办,我也想要签名版
@southwolf 我一直想回这个,居然没有一个人提到 shallow,但是发现评论已经关闭了
2 秒 也很慢呐 趁它启动的时候 狂按 Ctl+T 看看负载呢
至于 env irb 稍微快一点 https://unix.stackexchange.com/questions/103467/what-is-env-command-doing 根据这篇文章的说法,你的默认环境里的 irb 是不是个 alias?
楼主 gem 还在维护么,想增加一个 腾讯云短信 的实现,直接发 PR?
阿里云啊
我说呢 @chunlea 最近也开始用 docker 做开发环境了
@Rei 开发环境的数据库 redis 之类的你也是直接丢在同一个容器里的么
雄哥?
这明明是代码没写好 单行超过 120 个字符了吧
上周才开始写的代码 很高效啊
你在 create 里面 render 了 new.html.erb,这个 template 需要 @customers
,但是你的 create 方法里并没有提供这个变量,所以报了 NilClass
def create
@orderinfo = Orderinfo.new(orderinfo_params)
respond_to do |format|
if @orderinfo.save
format.html { redirect_to @orderinfo, notice: 'Orderinfo was successfully created.' }
format.json { render :show, status: :created, location: @orderinfo }
else
@customers = Customer.all # 提供 @customers 给 new.html.erb
format.html { render :new }
format.json { render json: @orderinfo.errors, status: :unprocessable_entity }
end
end
end
去掉关联就能保存是因为 belongs_to 会要求 presence validated,如果 customer 并不是必须的可以指定 belongs_to :customer, optional: true
为什么有这样的结论?函数名就是变量啊
他们直接抛弃了 RESTful
应该是业务目前还够简单,controller 还没成长为裹脚布
这不只是 Rails 的问题吧,现在的『全栈框架』部署起来差不多都这个样子,毕竟涉及的东西就有这么多
其实也没有多复杂,只是楼主可能没有仔细去看 Rails 部署相关的文章,走了很多弯路
社区缺一篇相关的 Wiki 倒是真的