Rails 容器与配置(1)

2021-10-20 09:48:15 浏览数 (1)

前言

Rails 是使用 Ruby 语言编写的网页程序开发框架

通过集成开发者需要的常用组件,极大的降低了网页程序的开发成本

前面几篇博客中使用 Rails 框架构建了一个具备基本认证功能的简单博客系统,详细可以参考:

  • Ruby on Rails 基础
  • Rails MVC 和 CRUD
  • Rails 构建评论功能

当然,不了解也没关系,因为绝大部分开发的细节都不是运维需要关心的,运维更需要关心的是部署

传统的 Ruby on Rails 应用是使用 Capistrano 来进行自动化布署的,其实效率已经很高了,那有没有比它更高效的方式呢?

当然有,DockerDevOps 神器,将 Rails 应用 Docker 化后,我们可以更进一步降低布署的复杂度,负责发布的运维人员可以退化为 Docker(码头工人) 只需要将 箱子(应用) 搬到正确的地方就OK了,基本告别了发布过程中由于环境冲突而痛苦Debug的时代

运维人员的命运是很奇特的,自已发明的工具来革自己的命,自已编写的软件来跟自己抢饭碗,代替人力就是自动化工具的根本目标,毫无疑问,云时代的来临,大量运维人员将面临“失业”,因为高效平台工具的出现,使企业对运维的总体需求规模小了不止一个量级,或者说一个运维人员可以cover掉以前100(虚指,并无翔实数据源)个运维的产出,运维工种会更为细分,更为专精,但这并非悲观论调,而是进步的表现,总体趋势上来看人力资源节省了,所以聪明的运维会找准定位,适时调整

目前来讲,容器也比较适合运行无状态的服务,类似于web服务的应用层(app layer),因为这样可以很方便地进行水平扩展,系统的可扩展性,高弹性因此而变得很容易实现

这里分享一下 Docker 化一个 Rails 应用的操作过程和相关基础,详细可以参考 Docker hub 中的 Rails OFFICIAL REPOSITORY官方文档

Tip: 当前的 Docker 最新版本为 Docker Version 1.10 ,Rails 最新版本为 Rails 5.0.0.beta3 , Docker hub 中的 Rails 官方镜像最新版本为 Rails 4.2.6


概要


环境

代码语言:javascript复制
[root@h104 ~]# hostnamectl 
   Static hostname: h104
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 12a02f8ee88d4b8e91d54d1390b0b275
           Boot ID: ac91120b8b4446f193e7cc3e25f278e4
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-327.4.4.el7.x86_64
      Architecture: x86-64
[root@h104 ~]# uname -a 
Linux h104 3.10.0-327.4.4.el7.x86_64 #1 SMP Tue Jan 5 16:07:00 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
[root@h104 ~]# docker --version
Docker version 1.9.1, build a34a1d5
[root@h104 ~]#

拉取官方镜像

这个过程很漫长,可以准备点视频或瓜子什么的,实在无聊也可以翻翻我的其它博客 (^ ^)

代码语言:javascript复制
[root@h104 ~]# docker pull rails 
Using default tag: latest
latest: Pulling from library/rails
004814f54a9a: Pull complete 
4786bcc15aac: Pull complete 
b6b57a59043e: Pull complete 
783fdfa6305f: Pull complete 
298958ea032a: Pull complete 
ae0c9441f5a3: Pull complete 
15f206b10e55: Pull complete 
6529e7d7f485: Pull complete 
b0ad7658b188: Pull complete 
b9cc583df59a: Pull complete 
9163bcf48f72: Pull complete 
b0e3fc140041: Pull complete 
57c77d269392: Pull complete 
533d0a2f687a: Pull complete 
ffe115a2f981: Pull complete 
8cda06d14823: Pull complete 
5b3b2ad1e099: Pull complete 
342ff98b0e82: Pull complete 
fc2eabed675c: Pull complete 
afdddae9b2bf: Pull complete 
Digest: sha256:a9c33d16edd9a3819f1ff9662615bef97b3c77d40773c3e7298c856f796cf3d8
Status: Downloaded newer image for rails:latest
[root@h104 ~]#

0 人点赞