按道理,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 点起来。
刚装完 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
用Kamal
是装不上去的。镜像也是不可能拉取下来的。请先用 SSH 连上服务器,自己把Docker
配置好
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.rainbond.cc"
]
}
sudo systemctl daemon-reload
sudo systemctl restart docker
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端口
启动项目。
打开production.rb
,强制 SSL 需要关闭,如果开启无法启动容器。
config.force_ssl = false
虽然在config/deploy.yml
中,增加了 SSL 相关配置,但是启动会失败。
proxy:
ssl: true
host: clwy.cn
猜测可能是由于初次刚启动,thruster
申请的证书还没成功运行,项目就强制 HTTPS 了,导致kamal
检测失败。
不能用ip
,更不能用localhost
。kamal2
,创建了个叫做kamal
的网络,并把所有容器都加入进去了。
进入服务器上,docker ps
,可以看到自己运行的容器
redis
,那你代码中的地址,就应该是redis://clwy-redis:6379/0
clwy-db
Kamal 2
的变更较大,请想升级的朋友们,一定要做好测试。我先用虚拟机测(使用局域网桥接 ip),然后又搞了个临时服务器测试,最终才部署到正式服务器。
同时,我使用Kamal 2
,利用在deploy.yml
中的配置,已将其他服务已经更新到最新版本了
相对于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
我不是编程界的大佬,我是吹牛大佬。
可以研究下怎么写一门新编程语言和开发一个操作系统。
实际测试,测试机 macOS 系统。我的项目页面比较复杂,查询也相当多。
确实是快了 5 倍,但依然还是本机直接运行最优。我感觉 docker 还是只适合部署,不适合开发用。
查到目前 python 上的相关包也是一堆问题。
这搞的没法开发了
https://github.com/Homebrew/brew/issues/7857 Homebrew 的支持情况。
我看了 homebrew 的说明,目前不支持 rbenv,不支持 ruby-build。
再次做了测试,
<a href="/test" style="display: block">
<span>你好</span>
</a>
果然可以完美的触发。
于是我在 1 的思路之上,尝试将 div 设置为 inline 或者 inline-block
<a href="/test" style="display: block">
<div style="inline-block">你好</div>
</a>
惊喜的发现,这样也可以完美的触发。
我继续检查站点,发现链接包含的图片又出问题了,无法触发。
以下是我测试的代码:
<a href="/test" style="display: block">
<img src="https://images.clwy.cn/video/course/23/image/7bbd2f.jpg" style="vertical-align:bottom;">
</a>
图片的底部会因为基线问题,出现一小段空白。为了防止误判,加上了vertical-align:bottom;
,使得图片与 a 高度一致。
发现无论怎么给 img,或者给 a 设置 display,都无法触发到。
我再次做了测试,这次用一个更简单的结构:
<a href="/test" style="display: block">
<div>你好</div>
</a>
没有任何其他 css,这样都无法触发到预加载。
如果改为:
<a href="/test" style="display: block">
你好
</a>
这样就触发的完全没问题。劳烦测试看看,是否也有相同的问题存在。
名称已经换成「长乐未央」了,但是域名还没修改,依然还是老的那个。
请帮我把域名,修改为https://clwy.cn