我有一个涉及 Docker 和 Ruby on Rails 的特殊情况。
我正在创建 Ruby on Rails 项目的图像,问题是图像变得太大。
有问题的项目是一个将成为微服务的单体。
我打算在 Kubernetes 集群中使用镜像,由于镜像的大小,这可能不利于 K8S 和部署时间
使用 Slim-Buster 和 Alpine 等较小的官方 Ruby 镜像,我创建的镜像并没有那么小,大约达到 600MB。
主要原因是捆绑安装命令的强制执行。
为了执行“bundle exec puma”命令,它首先请求执行“bundle install”。
/usr 目录是运行捆绑安装后最大的“失败者”。
我试图通过将已安装 Gems 的 /usr 目录放置在我的本地主机上,然后将其挂载到容器中来解决这种情况。 bundle install
即便如此,在尝试执行“bundle exec puma”命令后仍会报告“Install missing gem executables with”消息。
你能给我一些关于如何通过这个项目解决这种情况的提示吗?
在这一点上,我正在避免重新制定要迁移到微服务的整个项目,但我需要一些建议。
非常感谢您提前