2020-07-02 17:16:40
本快速入门指南介绍如何使用docker compose配置和运行一个Rails/PostgreSQL app。
定义用来构建app的三个文件。首先由于app是运行在包含它的所有依赖的容器内,你需要定义哪些文件需要包括在容器内。这个可以使用Dockerfile来完成。这个Dockerfile包括:
FROM ruby:2.3.3 RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs RUN mkdir /myapp WORKDIR /myapp ADD Gemfile /myapp/Gemfile ADD Gemfile.lock /myapp/Gemfile.lock RUN bundle install ADD . /myapp
上面把应用程序代码放到了镜像内,这个镜像将用来运行一个包含Ruby,Bundler和其所有的依赖的容器。
下一步,创建一个只加载Rails的bootstrap Gemfile文件。在后面将由rails new覆盖它。
source 'http://rubygems.org' gem 'rails', '5.0.0.1'
需要一个空的Gemfile.lock文件,构建Dockerfile用到。
touch Gemfile.lock
最后,开始创建docker-compose.yml文件。这个文件描述了你的app由什么服务构建(数据库和web app),如何获取每一个的镜像以及需要链接它们到一起和暴露web app的端口的配置。
version: '2' services: db: image: postgres web: build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' volumes: - .:/myapp ports: - "3000:3000" depends_on: - db
准备好那三个文件后,就可以使用docker-compose run来生成Rails skeleton app了:
docker-compose run web rails new . --force --database=postgresql --skip-bundle
首先,compose使用Dockerfile构建web服务的镜像。然后使用那个镜像生成容器,在容器内运行rails new命令。一旦完成,将生成一个全新的app:
$ ls -l total 56 -rw-r--r-- 1 user staff 215 Feb 13 23:33 Dockerfile -rw-r--r-- 1 user staff 1480 Feb 13 23:43 Gemfile -rw-r--r-- 1 user staff 2535 Feb 13 23:43 Gemfile.lock -rw-r--r-- 1 root root 478 Feb 13 23:43 README.rdoc -rw-r--r-- 1 root root 249 Feb 13 23:43 Rakefile drwxr-xr-x 8 root root 272 Feb 13 23:43 app drwxr-xr-x 6 root root 204 Feb 13 23:43 bin drwxr-xr-x 11 root root 374 Feb 13 23:43 config -rw-r--r-- 1 root root 153 Feb 13 23:43 config.ru drwxr-xr-x 3 root root 102 Feb 13 23:43 db -rw-r--r-- 1 user staff 161 Feb 13 23:35 docker-compose.yml drwxr-xr-x 4 root root 136 Feb 13 23:43 lib drwxr-xr-x 3 root root 102 Feb 13 23:43 log drwxr-xr-x 7 root root 238 Feb 13 23:43 public drwxr-xr-x 9 root root 306 Feb 13 23:43 test drwxr-xr-x 3 root root 102 Feb 13 23:43 tmp drwxr-xr-x 3 root root 102 Feb 13 23:43 vendor
如果这个时候或之后编辑了Gemfile,需要重新构建镜像。
docker-compose build
使用如何内容替换config/database.yml文件:
development: &default adapter: postgresql encoding: unicode database: myapp_development pool: 5 username: postgres password: host: db test: <<: *default database: myapp_test
开始启动app:
docker-compose up
如果一切正常,将会看到PostgrepSQL的输出,然后再过几秒钟,将看到
myapp_web_1 | [2014-01-17 17:16:29] INFO WEBrick 1.3.1 myapp_web_1 | [2014-01-17 17:16:29] INFO ruby 2.2.0 (2014-12-25) [x86_64-linux-gnu] myapp_web_1 | [2014-01-17 17:16:29] INFO WEBrick::HTTPServer#start: pid=1 port=3000
最后,在另一个终端创建一个数据库:
docker-compose run web rails db:create
现在app已经运行在主机的3000端口。

Docker Compose 项目打包部署
04-17
0.Jupyter Notebook快速入门
06-19
Debian 8使用Apache部署Ruby on Rails
02-29
快速创建一个可读写的Samba Server的shell脚本
07-07
Fluentd日志同步软件入门教程
05-22
Outlook 2010如何通过搜索的方式快速定位指定内容
06-08
SureFibre 640磁盘阵列快速安装指南V1.0
04-22
WD Align Utility快速安装指南
02-15
WES7或者机型快速参考V1.4
05-22
Windows 7下如何快速清理系统垃圾
03-26
saltstack快速批量安装nginx
07-16
如何通过金山毒霸快速锁定默认浏览器、默认主页、IE搜索引擎
05-04
安全快速更改MySQL数据库名称
04-27
小新AirPro 14的快速充电功能如何打开?
04-14
给 Python 初学者:从零入门 Django 开发网站教程
04-01
联想智能云教室快速安装说明(Lenovo M2300)V1.0
02-25
零基础入门python爬虫(一)
05-25
ERROR: module is read only
06-21
INNODB_BUFFER_POOL_SIZE:设置最佳内存值
07-14
Ubuntu 16.04 vsftpd: 530 Login incorrect 解决办法
03-07
SimLab Composer 10(三维场景制作软件) v10.5 免费版 附安装教程
252.84M
下载
快速CAD下载
17.21M
下载
coreldrawx6(矢量图形快速设计和制作的工具)v6.0 免费版
7 KB
下载
广联达pdf快速看图下载
29.9M
下载
论文格式快速编排助手下载
2.03MB
下载
闪电OCR图片文字识别软件(文档快速识别工具)2.2.8.0 免费版
43.6MB
下载
EverythingToolbar下载
1.3M
下载
MagicMouseTRails(自定义鼠标拖尾工具) v1.31 绿色中文版
388K
下载
Print Maestro 4破解版
21.1 MB
下载
SoundVolumeView
191KB
下载
易学堂下载
184.8M
下载
瞬启盒子下载
1.9M
下载