成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > 在Docker中自動化部署Ruby on Rails的教程

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

熱門標簽:百度地圖標注自定義圖片 地圖標注賺錢項目注冊 滴滴外呼系統(tǒng) 徐州網絡外呼系統(tǒng)哪個好 電銷機器人廠商代理 白銀外呼paas系統(tǒng) 高德地圖標注客服 湖州u友防封電銷卡 常德電銷平臺外呼系統(tǒng)軟件價格

基本的Rails應用程序

現在讓我們啟動一個基本的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

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

現在我們構建一個鏡像來運行我們的應用。在這個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 同一個目錄)添加到項目目錄
    ADD ./ /usr/src/app
    # 運行 rake 任務
    RUN RAILS_ENV=production rake db:create db:migrate 

使用上述Dockerfile,執(zhí)行下列命令創(chuàng)建一個鏡像(確保boot2docker已經啟動并在運行當中):

   

 $ docker build -t localhost:5000/your_username/docker-test .

然后,如果一切正常,長長的日志輸出的最后一行應該類似于:

 

  Successfully built 82e48769506c 
  $ docker images
  REPOSITORY                    TAG         IMAGE ID      CREATED       VIRTUAL SIZE 
  localhost:5000/your_username/docker-test     latest       82e48769506c    About a minute ago  884.2 MB 

讓我們運行一下容器試試!

   

 $ docker run -d -p 3000:3000 --name docker-test localhost:5000/your_username/docker-test

通過你的boot2docker虛擬機的3000號端口(我的是http://192.168.59.103:3000),你可以觀察你的Rails應用。(如果不清楚你的boot2docker虛擬地址,輸入$ boot2docker ip命令查看。)
使用shell腳本進行自動化部署

前面的文章(指文章1和文章2)已經告訴了你如何將新創(chuàng)建的鏡像推送到私有registry中,并將其部署在服務器上,所以我們跳過這一部分直接開始自動化進程。

我們將要定義3個shell腳本,然后最后使用rake將它們捆綁在一起。
清除

每當我們創(chuàng)建鏡像的時候,

  •     停止并重啟boot2docker;
  •     去除Docker孤兒鏡像(那些沒有標簽,并且不再被容器所使用的鏡像們)。

在你的工程根目錄下的clean.sh文件中輸入下列命令。

復制代碼 代碼如下:
    echo Restarting boot2docker... 
    boot2docker down 
    boot2docker up
    echo Exporting Docker variables... 
    sleep 1 
    export DOCKER_HOST=tcp://192.168.59.103:2376 
    export DOCKER_CERT_PATH=/Users/user/.boot2docker/certs/boot2docker-vm 
    export DOCKER_TLS_VERIFY=1
    sleep 1 
    echo Removing orphaned images without tags... 
    docker images | grep "none>" | awk '{print $3}' | xargs docker rmi 

給腳本加上執(zhí)行權限:

   

$ chmod +x clean.sh

構建

構建的過程基本上和之前我們所做的(docker build)內容相似。在工程的根目錄下創(chuàng)建一個build.sh腳本,填寫如下內容:

   

復制代碼 代碼如下:
docker build -t localhost:5000/your_username/docker-test . 

記得給腳本執(zhí)行權限。
部署

最后,創(chuàng)建一個deploy.sh腳本,在里面填進如下內容:

復制代碼 代碼如下:
    # 打開 boot2docker 到私有注冊庫的 SSH 連接
    boot2docker ssh "ssh -o 'StrictHostKeyChecking no' -i /Users/username/.ssh/id_boot2docker -N -L 5000:localhost:5000 root@your-registry.com "
    # 在推送前先確認該 SSH 通道是開放的。
    echo Waiting 5 seconds before pushing image.
    echo 5... 
    sleep 1 
    echo 4... 
    sleep 1 
    echo 3... 
    sleep 1 
    echo 2... 
    sleep 1 
    echo 1... 
    sleep 1
    # Push image onto remote registry / repo
    echo Starting push! 
    docker push localhost:5000/username/docker-test 

如果你不理解這其中的含義,請先仔細閱讀這部分第二部分。

給腳本加上執(zhí)行權限。
使用rake將以上所有綁定

現在的情況是,每次你想要部署你的應用時,你都需要單獨運行這三個腳本。

  1.     clean
  2.     build
  3.     deploy / push

這一點都不費工夫,可是事實上開發(fā)者比你想象的要懶得多!那么咱們就索性再懶一點!

我們最后再把工作好好整理一番,我們現在要將三個腳本通過rake捆綁在一起。

為了更簡單一點,你可以在工程根目錄下已經存在的Rakefile中添加幾行代碼,打開Rakefile文件,把下列內容粘貼進去。

  namespace :docker do 
   desc "Remove docker container"
   task :clean do
    sh './clean.sh'
   end
   desc "Build Docker image"
   task :build => [:clean] do
    sh './build.sh'
   end
   desc "Deploy Docker image"
   task :deploy => [:build] do
    sh './deploy.sh'
   end
  end 

即使你不清楚rake的語法(其實你真應該去了解一下,這玩意太酷了?。?,上面的內容也是很顯然的吧。我們在一個命名空間(docker)里聲明了三個任務。

三個任務是:

  1.     rake docker:clean
  2.     rake docker:build
  3.     rake docker:deploy

Deploy獨立于build,build獨立于clean。所以每次我們輸入命令運行的時候。

 

  $ rake docker:deploy

所有的腳本都會按照順序執(zhí)行。
測試

現在我們來看看是否一切正常,你只需要在app的代碼里做一個小改動:

  $ rake docker:deploy

接下來就是見證奇跡的時刻了。一旦鏡像文件被上傳(第一次可能花費較長的時間),你就可以ssh登錄產品服務器,并且(通過SSH管道)把docker鏡像拉取到服務器并運行了。多么簡單!

也許你需要一段時間來習慣,但是一旦成功,它幾乎與用Heroku部署一樣簡單。

備注:像往常一樣,請讓我了解到你的意見。我不敢保證這種方法是最好,最快,或者最安全的Docker開發(fā)的方法,但是這東西對我們確實奏效。

您可能感興趣的文章:
  • Maven一鍵部署Springboot到Docker倉庫為自動化做準備(推薦)
  • Linux+Docker+SpringBoot+IDEA一鍵自動化部署的詳細步驟
  • springboot docker jenkins 自動化部署并上傳鏡像的步驟詳解
  • 從零搭建docker+jenkins+node.js自動化部署環(huán)境的方法
  • docker利用selenium+testng實現web自動化的方法
  • .Net Core自動化部署之利用docker版jenkins部署dotnetcore應用的方法
  • Centos7+Docker+Jenkins+ASP.NET Core 2.0自動化發(fā)布與部署的實現
  • Docker自動化構建Automated Build實現過程圖解

標簽:荊門 遼寧 梧州 普洱 永州 三沙 張家界 公主嶺

巨人網絡通訊聲明:本文標題《在Docker中自動化部署Ruby on Rails的教程》,本文關鍵詞  在,Docker,中,自動化,部署,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《在Docker中自動化部署Ruby on Rails的教程》相關的同類信息!
  • 本頁收集關于在Docker中自動化部署Ruby on Rails的教程的相關信息資訊供網民參考!
  • 推薦文章
    色综合天天色| 国产女人在线视频| 69久久99精品久久久久婷婷| 午夜精品久久久久久久99热| 久久99精品国产麻豆不卡| 天堂精品在线视频| 黄色大片在线看| 国产日韩精品一区二区浪潮av| 色综合av综合无码综合网站| 亚洲第一精品在线| 日韩av片免费在线观看| caoporn国产精品免费公开| 成人免费黄色小视频| 你懂的国产在线| 性生活免费观看视频| 91免费精品国自产拍在线不卡| 欧美又粗又大又爽| 国产成人精品一区二区三区在线观看| 国产一区二区在线|播放| 亚洲一级网站| 18aaaa精品欧美大片h| 黄页网址大全免费观看| 国产精品日韩电影| 无码人妻丰满熟妇啪啪欧美| www.com国产| 欧美电影《睫毛膏》| 亚洲国产综合视频在线观看| 国产三区在线视频| 久久亚洲欧美| 国产高清av在线| 青青青爽久久午夜综合久久午夜| 亚洲男人av电影| 中文字幕剧情在线观看| www.久久伊人| 精品成人18| 国模一区二区三区私拍视频| www.男人天堂| 婷婷在线免费视频| 亚洲第一网站在线观看| 欧美精品视频www在线观看| 亚洲久久一区二区| 日本午夜精品| heyzo久久| 色男人天堂综合再现| 男人的天堂导航| 国产精品中文字幕在线| 国产 欧美 日韩 一区| 亚洲伊人久久大香线蕉av| 天堂一区二区三区| 99re热这里只有精品视频| 成人精品电影| 精品亚洲成av人在线观看| 国产精品推荐精品| 欧美一区二区三区免费大片| 影音先锋男人看片资源站| 国产三级三级看三级| 欧美 日本 亚洲| 国产日韩影视精品| 18成人免费观看视频漫画| 在线能看的av网站| 精品9999| 日本在线播放视频| 女女互磨互喷水高潮les呻吟| 国产女主播在线播放| 精品国产乱码久久久久久久久| 欧美电影《睫毛膏》| 91香蕉视频污在线| 日本精品免费观看高清观看| 国产免费一区二区三区四区| 欧美不卡在线播放| 亚洲va在线观看| 欧美绝顶高潮抽搐喷水合集| www.成人免费视频| 中文字幕第7页| 亚洲av无码专区在线播放中文| 精品无码在线视频| caoporn成人| 一级淫片在线观看| 国产曰批免费观看久久久| 欧美精品在欧美一区二区少妇| 奇米色在线视频| 综合网在线视频| 婷婷久久综合网| 久久免费区一区二区三波多野| 91精品久久久久久综合乱菊| 男人天堂网在线| 国产成人精品一区二| 精品成a人在线观看| 欧美精品乱码视频一二专区| 精品奇米国产一区二区三区| 久久久久久久久免费看无码| 国产一区亚洲一区| 91豆麻精品91久久久久久| 日韩免费视频播放| 老司机精品免费视频| 日本一区二区免费高清| 在线毛片观看| 日本午夜小视频| 最新天堂资源在线资源| 蜜桃av乱码一区二区三区| 欧美激情视频在线免费观看 欧美视频免费一| 久久久久麻豆v国产| 日韩av综合中文字幕| 捆绑调教美女网站视频一区| 91精品国产欧美一区二区| 午夜毛片在线| 日韩在线观看网站| 亚洲欧美日韩另类精品一区二区三区| 国产精品嫩草99av在线| 日韩成人在线视频网站| 国产综合视频一区二区三区免费| 女性生殖扒开酷刑vk| 天天躁日日躁aaaxxⅹ| 香蕉乱码成人久久天堂爱免费| 亚洲乱码一区二区三区三上悠亚| jizz18女人高潮| 欧美va在线观看| 搡的我好爽在线观看免费视频| 国产三级电影在线播放| 精品91自产拍在线观看一区| 91精品欧美福利在线观看| 五月天婷婷综合社区| 亚洲欧美自拍视频| 成人做爽爽免费视频| 久久久久亚洲| www.久久综合| 日韩在线视频观看正片免费网站| 激情小说综合网| 欧美一区二区三区在线看| 成人黄网18免费观看的网站| 国产精品麻豆免费版现看视频| 国模雨婷捆绑高清在线| 欧美人与禽zozzo禽性配| 两根大肉大捧一进一出好爽视频| 中文字幕免费不卡| 欧美毛片免费观看| 日日噜噜夜夜狠狠视频| 真实乱视频国产免费观看| 中文字幕乱码中文乱码51精品| 激情久久久久久久久久久久久久久久| 91在线高清观看| 成人观看视频| 小说区图片区色综合区| 国产成人三级在线观看视频| 欧美午夜精品久久久久久人妖| 人妻巨大乳一二三区| 亚洲xxxx2d动漫1| 成人日韩视频| 久久mv成人精品亚洲动漫| 91麻豆精品国产无毒不卡在线观看| heyzo一本久久综合| 欧美精品在线免费观看| 超碰在线91| 天天摸天天操天天爽| 午夜成在线www| 96亚洲精品久久久蜜桃| 在线播放国产一区二区三区| 国产又爽又黄视频| 久久久久久亚洲av无码专区| 午夜av电影一区| 久久人人爽人人爽| 一级全黄少妇性色生活片| 黄色毛片视频| 91社在线播放| 91欧美激情一区二区三区成人| 日本特级黄色大片| 日韩精品视频在线观看一区二区三区| 三级黄色片播放| 91精品国产综合久久香蕉麻豆| 一二三四视频免费观看在线看| 国产在线高潮| 日韩欧美的一区二区| 99视频一区二区三区| 亚洲av毛片基地| 精品国产一区二区三区四区| 国产原创一区二区三区| 中文字幕一区免费在线观看| 俄罗斯女人裸体性做爰| 国产综合动作在线观看| 国产精品嫩草69影院| 日本韩国欧美精品大片卡二| 亚洲黄色www网站| 国产欧美日韩视频一区二区三区| 毛片毛片毛片毛片毛片毛片毛片毛片毛片| 久久久久久久九九九九| 欧美男男freegayvideosroom| 国产美女在线观看一区| 欧美交换配乱吟粗大25p| www欧美com| 国产av一区二区三区| 欧美亚洲在线日韩| www.av蜜桃| 国产精品乱码一区二区三区软件| 精品日本一线二线三线不卡| 香蕉久久久久久av成人| 国产一级免费黄色片| 亚洲男人第一av网站| 亚洲天堂成人在线| 欧美大交乱xxxxbbbb| 91传媒视频在线播放| 在线亚洲国产精品网站| a级网站在线播放| 一区二区不卡视频| 国产1区2区在线观看| 欧美污视频久久久| 操你啦在线视频| 在线免费黄色av| 高潮毛片又色又爽免费| 9999在线视频| 成人a在线观看| 影音先锋男人资源站在线观看| 日韩一区二区在线观看视频| 欧美日韩国产亚洲一区| 日本一区二区三区在线观看视频| 午夜久久中文| 免费毛片一区二区三区久久久| 久久久久久亚洲精品中文字幕| 亚洲娇小xxxx欧美娇小| 成人在线观看免费视频| 在线中文字幕第一区| 午夜爽爽视频| 欧美娇小极度另类| 九九热这里有精品视频| 婷婷五月精品中文字幕| 欧美国产精品一区| 日本.亚洲电影| 日韩在线免费观看av| 国产黄色免费观看| 911亚洲精选| 精品一区二区三区免费毛片| 成人ww免费完整版在线观看| 免费一级在线观看播放网址| 粉嫩av性色av蜜臀av网站| 激情综合网五月婷婷| 久久亚洲国产中v天仙www| 96成人在线视频| 色爱av美腿丝袜综合粉嫩av| 妖精视频一区二区三区| 欧美在线www| 91精品中文在线| av免费看大片| 欧美a级成人淫片免费看| 久久精品视频亚洲| 精品国产午夜肉伦伦影院| 蜜桃视频在线观看免费视频| 中文字幕一区二区精品| 久久动漫网址| 久久不卡国产精品一区二区| 青青草原国产在线观看| 精品少妇一区二区三区视频免付费| 国产福利一区二区在线精品| 日本一区免费| 一区二区三区美女| 欧美 日韩 国产 成人 在线观看| 古装做爰无遮挡三级聊斋艳谭| 97超碰人人草| 国产一区二区三区美女秒播| 国产精品久久AV无码| 久久精品99国产精品酒店日本| 中文字幕乱视频| 日本精品一区二区三区在线观看视频| 国产又粗又硬视频| 看av免费毛片手机播放| 欧美电影影音先锋| 男插女视频网站| 六月婷婷激情网| 国产精品 欧美精品| 亚洲一区二区图片| 国产日韩三级在线| 国产自产视频一区二区三区| 久久久精品久久| www中文在线| 欧美bbb人妖| 最近2019中文免费高清视频观看www99| av激情综合网| 久久精品影视| 久久婷婷国产麻豆91天堂| 日本tube24xxxxx| 欧美日本精品在线| 亚洲日本一区二区| 国产精品永久久久久久久久久| 久色婷婷小香蕉久久| 黄色av网址在线免费观看| 手机看片福利永久国产日韩| 欧美日韩国产精品一区二区三区四区| 日韩一卡二卡在线观看| 午夜精品久久久久久久99樱桃| 国产成人一区二区在线观看| 波多野结衣之无限发射| 欧美另类老肥妇| 国产欧美精品一区aⅴ影院| av超碰在线观看| 成人aa视频在线观看| 最近国产精品视频| 一区二区三区四区国产| 亚洲国产剧情在线观看| 奇米影视首页 狠狠色丁香婷婷久久综合| 亚洲精品3区| 一区二区三区麻豆| 成年人免费视频观看| 国产日本一区二区三区| 视频国产在线观看| 日韩dvd碟片| 国产成人啪精品视频免费网| 国产片侵犯亲女视频播放| 国产一区福利视频| 欧美日韩伦理片| 久久成人综合| 欧美亚洲图片小说| 国产精品欧美久久久久一区二区| 久久久久成人精品| 天天干天天舔天天操| 久久久福利视频| 伊人22222| 中文字幕一区二区三区人妻在线视频| 在线免费观看av网站| 成人精品一区二区三区电影黑人| 亚洲奶汁xxxx哺乳期| 四虎影视成人| 国产成人免费视频精品含羞草妖精| 国产精品有限公司| 精品国产美女在线| 91精品一区二区三区四区| 美女福利网站视频在线观看| 欧美黄色一级大片| 亚洲av成人片色在线观看高潮| 欧美日韩亚洲国产另类| 4虎在线播放1区|