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
下载