6.19docker (三)实战 Rails
实战 Rails
[root@node ]# sysctl -w net.ipv4.ip_forward=1
[root@node ~]# mkdir rails
[root@node ~]# cd rails/
首先,因为应用将要运行在一个满足所有环境依赖的 Docker 容器里面
[root@node rails]# vi Dockerfile
FROM ruby
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev
RUN mkdir /myapp
WORKDIR /myapp
ADD Gemfile /myapp/Gemfile
RUN bundle install
ADD . /myapp
下一步,我们需要一个引导加载 Rails 的文件 Gemfile
[root@node rails]# vi Gemfile
source 'https://rubygems.org'
gem 'rails', '4.0.2'
docker-compose.yml
文件将把所有的东西关联起来。它描述了应用的构成(一个 web 服务和一个数据库)、每个镜像的来源(数据库运行在使用预定义的 PostgreSQL 镜像,web 应用侧将从本地目录创建)、镜像之间的连接,以及服务开放的端口。
[root@node rails]# vi docker-compose.yml
version: "3"
services:db:image: postgresports:- "5432"web:build: .command: bundle exec rackup -p 3000volumes:- .:/myappports:- "3000:3000"links:- db
docker-compose run 命令生成应用的骨架了
[root@node rails]# docker-compose run web rails new . --force --database=postgresql --skip-bundle
时间大概需要20分钟
Gemfile
文件去掉加载 therubyracer
的行的注释,这样我们便可以使用 Javascript 运行环境:
现在我们已经有一个新的 Gemfile
文件,需要再重新创建镜像
[root@node rails]# docker-compose build
[root@node rails]# cd config/
[root@node config]# vi database.yml
现在就可以启动应用了。
[root@node config]# docker-compose up
我们需要做的是创建数据库,打开另一个终端,运行:
docker-compose run web rake db:create
web 应用已经开始在你的 docker 守护进程里面监听着 3000 端口了
转载于:https://www.cnblogs.com/guogle/p/11054490.html
6.19docker (三)实战 Rails相关推荐
- 基于Spark的机器学习实践 (三) - 实战环境搭建
0 相关源码 1 Spark环境安装 ◆ Spark 由scala语言编写,提供多种语言接口,需要JVM ◆ 官方为我们提供了Spark 编译好的版本,可以不必进行手动编译 ◆ Spark安装不难,配 ...
- 【TensorFlow-windows】学习笔记三——实战准备
前言 因为学习TensorFlow的内容较多,如果只看API会很无聊,可以结合实例去学习.但是在构建基本的模型之前,需要学一些准备知识:数据读取.预处理.优化器.损失函数 国际惯例,参考网址: Ten ...
- Ruby on rails 实战圣经:Part 2: 深度剖析环境设定与Bundler
Complication is WhatHappens When You Try to Solve a Problem You Don't Understand - Andy Boothe 目录结构 ...
- Ruby on rails 实战圣经: 深度剖析环境设定与Bundler
Complication is WhatHappens When You Try to Solve a Problem You Don't Understand - Andy Boothe 目录结构 ...
- bootstrap 时间线_股票配资均量线的实战用法绝技是什么?怎么用它判断买卖点?...
已经很久没有和大家讨论过股票交易量的有关内容了,主要是关于它的介绍和用法我们学习的太多了,不过好像漏了一个关于它的用法,就和和成交量息息相关的均量线,那么什么是均量线?和成交量有啥关系呢? 一.什么是 ...
- SQL Server 表分区实战系列(文章索引)
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 前言(Introduction) 实战说明(In Action) 表分区逻辑结构图(Construction) 表分区学 ...
- js文件里获取路由 vue_「如何优雅的使用Vue?」不可不知的Vue实战技巧
作者: CHICAGO 转发连接:https://juejin.im/post/5e475829f265da57444ab10f 前言 在大家都会用vue的时代,我们又如何去区别是新手小白还是资深vu ...
- python核心教程百度云_Python核心技术与实战 共44讲 中文pdf高清版
人工智能时代下,Python毫无疑问是最热的编程语言.有人夸它功能强大还上手轻松,有人说它学习曲线不那么陡峭,但是更多的人,在推开Python的大门后却发现,Python入门容易但精通却不易,Pyth ...
- 52. SQL Server -- 表分区实战系列(文章索引)
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 前言(Introduction) 实战说明(In Action) 表分区逻辑结构图(Construction) 表分区学 ...
最新文章
- 为什么阿里强制 boolean 类型变量不能使用 is 开头?
- 俄罗斯网络安全治理及其启示
- 2.8 多任务学习-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
- hexo+git维护笔记
- 征名公布|Qtum量子链企业版—Unita 中文名征集圆满落幕
- anaconda安装tensorflow后,matplotlib无法调用的解决方法
- python进程池和线程池_Python中的进程池与线程池(包含代码)
- Appium + python - online-install-apk
- idea配置svn地址
- 【小程序开发】开发一个短信登录验证(后端采用springboot)
- 遥控器控制项目(拷贝型遥控器+灵R1A)
- 在RecyclerView里使用图片轮播
- cocos2d实现语音_【Cocos Creator与C++知识分享】Creator接入呀呀语音SDK
- lidar_align 标定lidar和imu 在“Performing Global Optimization”步骤终止的问题
- Excel VBA 中有关使用 UBound + CurrentRegion 提示类型不匹配的问题及解决方案
- 银行项目企业网银转账对私转账功能的测试点
- 【区块链】虚拟货币钱包
- 微信二维码扫一扫的实现
- 记录一个小型的数据压缩项目
- 安徽大学c语言作业题库,安徽大学C语言考试试卷