摘要:開發,最讓人頭疼的就是環境問題。所以一直在嘗試做一個可以隨時復用的開發環境來。安裝關于下有了最新的解決方案,就是,直接下載安裝就可以了目前尚在版本,但是對于開發環境使用足矣。
1. 安裝 Dockerrails 開發,最讓人頭疼的就是環境問題。其本身的理念加上某偉大防御工程的幫助,使得每次環境的配置都的花費很長的時間來解決;同時,與人協作也有諸多不便。所以一直在嘗試做一個可以隨時復用的開發環境來。
關于 Mac 下 docker 有了最新的解決方案,就是 Docker for Mac,直接下載安裝就可以了(目前尚在 beta 版本,但是對于開發環境使用足矣)。
2. 編寫 Dockerfile為了實現目的,我做了兩個 docker image,一個 base image,命名 rails,主要實現 rails 運行環境的基礎配置,為的是以后方便復用,另一個是項目相關的 image,主要針對特定的項目做一些配置。
rails.Dockerfile(關鍵部分在注釋中有說明)
FROM ubuntu:16.10 # 如果下載的很慢,這里可以改成 Daocloud 的鏡像:daocloud.io/library/ubuntu:trusty-XXXXXXX MAINTAINER Tairy# 改成你自己的 # Run update # 為了加快 update 的速度,修改 ubuntu 源為阿里云(目前嘗試的最快的,也可以自行選擇其他國內的鏡像) RUN sed -i "s/archive.ubuntu.com/mirrors.aliyun.com/g" /etc/apt/sources.list && apt-get update --fix-missing && apt-get -y upgrade # Install dependencies RUN apt-get install -y git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev RUN apt-get update --fix-missing RUN apt-get install -y libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev # Install rbenv # 這里 clone 的時候可能會有點慢,可以先 clone 到本地,把下面的 clone 操作改成 ADD rbenv /root/.rbenv 操作即可。 RUN git clone git://github.com/sstephenson/rbenv.git /root/.rbenv && echo "export PATH="$HOME/.rbenv/bin:$PATH"" >> /root/.bashrc && echo "eval "$(rbenv init -)"" >> /root/.bashrc && git clone git://github.com/sstephenson/ruby-build.git /root/.rbenv/plugins/ruby-build && echo "export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"" >> /root/.bashrc # 為了加速 rbenv 使用 ruby china 的加速插件 RUN git clone https://github.com/andorchen/rbenv-china-mirror.git /root/.rbenv/plugins/rbenv-china-mirror # Install ruby RUN /root/.rbenv/bin/rbenv install -v 2.3.1 && /root/.rbenv/bin/rbenv global 2.3.1 && echo "gem: --no-document" > /root/.gemrc && /root/.rbenv/shims/gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/ && /root/.rbenv/shims/gem install bundler && /root/.rbenv/shims/gem install rails && /root/.rbenv/bin/rbenv rehash RUN apt-get install -y software-properties-common python-software-properties # Install nodejs RUN apt-get -y install nodejs RUN /root/.rbenv/shims/bundle config --global frozen 1 RUN /root/.rbenv/shims/bundle config --global silence_root_warning 1 # Run project RUN mkdir -p /working WORKDIR /working ONBUILD COPY Gemfile /working ONBUILD COPY Gemfile.lock /working ONBUILD RUN /root/.rbenv/shims/bundle install --no-deployment ONBUILD COPY . /working # Some tools RUN apt-get install -y vim inetutils-ping
build
cd /path/to/Dockerfile docker build rails .
以上,這個image 將會安裝 rails 應用運行的基礎環境,并且設置了 onbuild 執行的命令,之后自己的 rails 便可依賴該項目創建,例如:
demo.Dockerfile
FROM rails:latest # 這里添加依賴 MAINTAINER Tairy# TODO: custom env EXPOSE 3000
將此 Dockerfile 置于 rails 的項目目錄下,即可進行 build:
cd /path/to/rails/app/path docker build demo .3. 使用 docker-compose
使用 docker-compose 可以更好的管理容器,可在項目目錄下編寫 docker-compose.yml 文件(使用時刪除#開頭的注釋內容):
# compose 版本號,選擇 2 即可 version: "2" services: # 數據庫容器 db: image: mongodb # 數據庫端口映射 ports: - "4568:27017" web: # build 路徑 build: . # 相當于 Dockerfile 中的 CMD command: /root/.rbenv/shims/bundle exec rails s -p 3000 -b 0.0.0.0 ports: - "3000:3000" # 共享目錄 volumes: - .:/working # 依賴容器 depends_on: - db
進而,執行 docker-compose up 命令即可實現容器的構建,等 server 啟動完成后,就可以通過 localhost:3000 來訪問了。
也可以加參數 docker-compose up -d 讓其在后臺運行。
4. RubyMine & Docker可以在 RubyMine 中安裝 Docker Plugin 來直接構建容器。
1. 安裝 docker plugin在 Preferences/Plugins 中搜索安裝。
2. 配置 docker plugin打開 Build, Execution, Deployment/Docker
Name: ServerName
API URL: [Docker API Url]()
Certificates folder: [HTTPS]()
Docker Compose executable: 使用 which docker-compose 查看。
3. 配置構建方式在工具欄中打開 Run/Debug Configurations 窗口:
Server: 選擇第二步配置的 server
Deployment: 選擇 docker-compose.yml
至此,便可在 IDE 中直接構建項目容器。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26692.html
摘要:使用有一段時間了,打算把自己實踐過程中的一些理解和感悟記錄下來。目錄實踐一了解架構實踐二使用教程實踐三下構建開發環境實踐四環境容器化實踐五生產環境容器化實踐六容器監控實踐七提升幸福感實踐八構建開發環境實踐九生產環境優化參考源碼分析系列文章 使用 docker 有一段時間了,打算把自己實踐過程中的一些理解和感悟記錄下來。 系列文章發布在 SegmentFault 上我的專欄 Tairy,...
摘要:此刻的后手指依舊飛速地敲打鍵盤,絲毫沒有要停不下來意思。閱讀本期技術周刊,你不光能弄明白什么是,使用的意義何在,還將被傳授秘籍,以達的境界。周刊篩選的每篇內容,是作者的獨到見解,踩坑總結和經驗分享。 showImg(https://segmentfault.com/img/bVC5qJ?w=900&h=385); 啪嗒啪嗒,啪嗒啪嗒,聽到后排動感十足的清脆鍵盤響,我就能猜到公司程序員定...
摘要:對程序員來說,阻礙幸福感最大的因素應該是那個偉大的墻了。所幸國內有或者阿里云這樣的云服務商提供鏡像加速服務,可直接搜索鏡像加速,添加這些服務商提供的地址即可。 對程序員來說,阻礙幸福感最大的因素應該是那個偉大的墻了。 本文對 docker 系統配置過程中,國內使用的一些加速的辦法做一些記錄和總結,希望能給有需要的人帶來微小的幫助。 Docker for mac 下載 Docker fo...
摘要:今天小數給大家帶來的是一篇代碼級干貨文章,與大家分享一些利用以微服務形式設置應用的經驗與心得。為何選擇加在我效力的企業中,我們一直在利用為全部工程師構建開發環境。運行命令,從而利用構建鏡像并安裝。 今天小數給大家帶來的是一篇代碼級干貨文章,與大家分享一些利用Rails API以微服務形式設置應用的經驗與心得。 為何選擇Docker加Rails API? 在我效力的企業中,我們一直在利用...
閱讀 2751·2021-11-19 09:40
閱讀 5318·2021-09-27 14:10
閱讀 2106·2021-09-04 16:45
閱讀 1473·2021-07-25 21:37
閱讀 3001·2019-08-30 10:57
閱讀 2987·2019-08-28 17:59
閱讀 1059·2019-08-26 13:46
閱讀 1413·2019-08-26 13:27