国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

在Docker中自動化部署Ruby on Rails的教程

2019-10-26 19:27:29
字體:
來源:轉載
供稿:網友

基本的Rails應用程序

現(xiàn)在讓我們啟動一個基本的Rails應用。為了更好的展示,我使用Ruby 2.2.0和Rails 4.1.1

在終端運行:

  $ rvm use 2.2.0  $ rails new && cd docker-test

創(chuàng)建一個基本的控制器:

  $ rails g controller welcome index

……,然后編輯 routes.rb ,以便讓該項目的根指向我們新創(chuàng)建的welcome#index方法:

  root 'welcome#index' 

在終端運行 rails s ,然后打開瀏覽器,登錄http://localhost:3000,你會進入到索引界面當中。我們不準備給應用加上多么神奇的東西,這只是一個基礎的實例,當我們將要創(chuàng)建并部署容器的時候,用它來驗證一切是否運行正常。
安裝webserver

我們打算使用Unicorn當做我們的webserver。在Gemfile中添加 gem 'unicorn'和 gem 'foreman'然后將它bundle起來(運行 bundle install命令)。

啟動Rails應用時,需要先配置好Unicorn,所以我們將一個unicorn.rb文件放在config目錄下。這里有一個Unicorn配置文件的例子,你可以直接復制粘貼Gist的內容。

接下來,在項目的根目錄下添加一個Procfile,以便可以使用foreman啟動應用,內容為下:

    代碼如下:web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb

現(xiàn)在運行foreman start命令啟動應用,一切都將正常運行,并且你將能夠在http://localhost:5000上看到一個正在運行的應用。
構建一個Docker鏡像

現(xiàn)在我們構建一個鏡像來運行我們的應用。在這個Rails項目的根目錄下,創(chuàng)建一個名為Dockerfile的文件,然后粘貼進以下內容: 

    代碼如下: # 基于鏡像 ruby 2.2.0
    FROM ruby:2.2.0
    # 安裝所需的庫和依賴
    RUN apt-get update && apt-get install -qy nodejs postgresql-client sqlite3 --no-install-recommends && rm -rf /var/lib/apt/lists/*
    # 設置 Rails 版本
    ENV RAILS_VERSION 4.1.1
    # 安裝 Rails
    RUN gem install rails --version "$RAILS_VERSION"
    # 創(chuàng)建代碼所運行的目錄
    RUN mkdir -p /usr/src/app 
    WORKDIR /usr/src/app
    # 使 webserver 可以在容器外面訪問
    EXPOSE 3000
    # 設置環(huán)境變量
    ENV PORT=3000
    # 啟動 web 應用
    CMD ["foreman","start"]
    # 安裝所需的 gems
    ADD Gemfile /usr/src/app/Gemfile 
    ADD Gemfile.lock /usr/src/app/Gemfile.lock 
    RUN bundle install --without development test
    # 將 rails 項目(和 Dockerfile 同一個目錄)添加到項目目錄

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 安多县| 桐庐县| 英吉沙县| 拜泉县| 朝阳区| 竹北市| 镇远县| 故城县| 荔浦县| 河北省| 汽车| 福安市| 阿鲁科尔沁旗| 九龙坡区| 普格县| 孟州市| 阿拉善盟| 瑞昌市| 蓝山县| 长乐市| 永和县| 贵溪市| 江安县| 乡城县| 横山县| 资兴市| 卓尼县| 神农架林区| 石狮市| 揭阳市| 勐海县| 称多县| 普定县| 土默特右旗| 辽阳市| 沾益县| 赞皇县| 陈巴尔虎旗| 湖南省| 申扎县| 辽阳县|