• Rails 8.1 发布 at 2025年10月22日

    已第一时间更新,从 8.0.3 升上来,没有发现任何问题。

  • Crystal China at 2025年09月09日

    网站内容全部读完了,收获颇丰,感谢分享。最近刚好在研究,它在实现自举之前,是怎么用 ruby 调用 llvm 的。

  • 主要是看 Linux 驱动是否完全支持,性能完全没问题,装完内存占用才 1.x g

  • 必卡,已经试过。最佳就是 monterey,再往上就卡。

  • 我现在想把我的老 MacBook Pro 2016 也装了:

    • 这机器只能支持到 macOS Monterey
    • 最新版本的 Docker 都不给装了
    • Homebrew 很多包也不支持了,例如 vips、openssl,搞得我自己手动编译的
    • Xcode 也不能装新版
    • iOS 模拟器只支持到 iOS 14

    基本已废

    但这个机器 Wifi 在 Linux 下驱动有问题:

    https://github.com/Dunedan/mbp-2016-linux?tab=readme-ov-file#wi-fi

  • 不是更新,是 Windows 不要了,老机器啥也干不了了。 直接换 DHH 的发行版,跑 Linux,顺畅的很,资源消耗也极低。

  • 按道理,IP 变不变,并没有关系。代码中,使用的是docker-compose.yml中的这个名字。

  • Rails 的课,等我必须做的一些课,先全部做完了的。有时间了也想录一套。

    毕竟我是非常喜欢用的,而且我主项目一直全都是 Rails 开发。

  • 重点还是学习 Rails 开发,起码先把项目跑起来的。环境想折腾的,等有点经验了再慢慢搞。

    另一个大问题,是为了解决设备兼容性。我这台 MacBook Pro (15-inch, 2016),最高只能装 monterey。基本已经没有办法安装 vips,我编译折腾了数小时也没搞定。

    虽然我也有新设备,我还有个 mac mini m4,但是带出门太不方便了。有了这个,不管啥机器都不用操心环境了。

  • database.yml 里,改为 host: mysql 就可以连啊,直接用docker-compose.yml里配置的名字。

    如果你的不能,我不确定哪里出问题了,我一直都是这么用的,并没有碰到过啥问题。

  • 我安利无数人试试 ruby。但 90% 的人都是 windows,装个环境就直接劝退了。

  • 是啊,环境安装劝退了五成人。😇

  • 兄弟们,Github Star 点起来。😀 😀 😀

  • 尝鲜 Omakase at 2024年11月04日

    刚装完 Ubuntu,做了点基础配置,然后就忍不住卸载了。麻利的滚回 macOS。

  • 感谢指正。

    1 反复安装是什么毛病就不清楚了,我没有对默认 dockerfile 做很大的修改。2 的 dockerfile 与 1 的基本没差别。但是 2 里,再也没出现反复安装 gem 的情况了。

    1 里,我还有个问题,会卡死在 RubyZip 3.0,必须安装 ruby 3.2.4,或以下版本才行。

    2 里,我已经升到 3.3.5 最新版了,并开启了 yjit。

    总而言之,言而总之。用 2 就对了,这次的版本对单机部署也很友好。之前在 1 里。为了实现单机部署,额外自己加了好多配置。

  • 感谢一下啊,用 docker logs 容器id ,这个方法对我帮助很大。

    在反复尝试下,我终于成功了。现在说明下碰到的问题:

    问题一:Docker

    国内这网络环境,DockerKamal是装不上去的。镜像也是不可能拉取下来的。请先用 SSH 连上服务器,自己把Docker配置好

    安装 Docker

    curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
    

    配置 docker 镜像

    vim /etc/docker/daemon.json
    
    {
      "registry-mirrors": [
        "https://docker.rainbond.cc"
      ]
    }
    

    重启 Docker

    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

    问题二:thruster

    thruster是必须安装的,Let's Encrypt 的 SSL 证书需要在这里实现。

    gemfile里增加

    gem "thruster", require: false
    

    增加/bin/thrust文件

    #!/usr/bin/env ruby
    require "rubygems"
    require "bundler/setup"
    
    load Gem.bin_path("thruster", "thrust")
    

    Dockerfile,最底下改为

    EXPOSE 80
    CMD ["./bin/thrust", "./bin/rails", "server"]
    

    使用了以后,会在80端口启动项目。

    问题三:SSL 问题

    打开production.rb,强制 SSL 需要关闭,如果开启无法启动容器。

    config.force_ssl = false
    

    虽然在config/deploy.yml中,增加了 SSL 相关配置,但是启动会失败。

    proxy:
      ssl: true
      host: clwy.cn
    

    猜测可能是由于初次刚启动,thruster申请的证书还没成功运行,项目就强制 HTTPS 了,导致kamal检测失败。

    问题四:容器之间互相访问

    不能用ip,更不能用localhostkamal2,创建了个叫做kamal的网络,并把所有容器都加入进去了。

    进入服务器上,docker ps,可以看到自己运行的容器

    • 例如项目中使用redis,那你代码中的地址,就应该是redis://clwy-redis:6379/0
    • 要使用数据库,请求地址就是clwy-db

    其他

    Kamal 2的变更较大,请想升级的朋友们,一定要做好测试。我先用虚拟机测(使用局域网桥接 ip),然后又搞了个临时服务器测试,最终才部署到正式服务器。

    同时,我使用Kamal 2,利用在deploy.yml中的配置,已将其他服务已经更新到最新版本了

    • PostgreSQL 17
    • Redis 7.2.5
    • Meilisearch v1.10.2

    相对于Kamal 1,最大的特点是部署速度变快了。之前用Kamal 1,初次部署需要一个小时以上,它会反复的安装gem,而且越安装越慢。之后再部署,只要不改gemfile,仅修改代码,部署需要 10 分钟左右。

    使用Kamal 2,初次部署,大致 5 ~ 6 分钟左右。

  • 刚开始没搞 Thruster,在 3000 启动服务,失败。后来给项目加了 Thruster,在 80 启动,继续失败。没脾气了,今天继续。

  • Kamal 2,昨晚折腾了一晚上没部署起来。本地虚拟机测试的好得很,一上线部署就无法启动,不断的重启。查了各种资料,折腾到我早上 10 点了,改回 kamal 1.9 部署了。

  • Docker 在 win 下运行速度十分慢,除此外没问题。

  • https://github.com/ambethia/recaptcha/wiki/Recaptcha-with-Turbo-and-Stimulus

    有新的玩法了,使用 Turbo 结合 Stimulus。recaptcha v3 无感先试,不行再切到 v2 让用户点。 Rails 7.1 已尝试集成了,没有发现问题。

  • 我都见过有公司在 win 跑虚拟机,在 linux 虚拟机里再跑 docker,速度比 win 直接运行 docker 快很多很多。

  • 就是 win docker 的问题,我 100 毫秒响应的页面,win 的 docker 跑到 30 秒,我都惊呆了。

  • 剪辑用的什么呢?final cut 吗?

  • 薯片 + 可乐

  • Of course, all of my company's projects are developed in ruby. Because I'm in charge of the company, and I don't want to use any other language.

  • 来自语言本身,我灵魂深处对它的厌恶

  • 看着很不错哦,下次部署就用这个

  • 老铁,Hate java with passion +10000000000000000000000086

  • 我不是编程界的大佬,我是吹牛大佬。😀