Dab*_*gab 7 ruby-on-rails docker docker-compose
我是Docker世界的新手,我度过了我的假期来学习这个码头(但它比Vagrant更难).所以我使用Ubuntu 16.04,我成功安装了docker和docker-compose.
我读了这个教程:快速入门:Docker Compose和Rail s但这不起作用......也许教程不好.
我有这个docker-compose.yml:
db:
image: postgres
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/www/html
ports:
- "3000:3000"
depends_on:
- db
Run Code Online (Sandbox Code Playgroud)
我总是得到这个错误:
$ docker-compose run web rails new . --force --database=postgresql --skip-bundle
ERROR: Validation failed in file './docker-compose.yml', reason(s):
Unsupported config option for 'web' service: 'depends_on'
Run Code Online (Sandbox Code Playgroud)
嗯,好吧,我看了很多谷歌的结果,似乎我遇到了麻烦,因为我使用的是Ubuntu.不幸的是,Ubuntu中最高版本的docker只有1.5.2.(我尝试用curl下载1.7.1,但是自动安装了1.5.2.)
$ docker version
Client:
Version: 1.11.1
API version: 1.23
Go version: go1.5.4
Git commit: 5604cbe
Built: Tue Apr 26 23:43:49 2016
OS/Arch: linux/amd64
Server:
Version: 1.11.1
API version: 1.23
Go version: go1.5.4
Git commit: 5604cbe
Built: Tue Apr 26 23:43:49 2016
OS/Arch: linux/amd64
Run Code Online (Sandbox Code Playgroud)
你有任何想法,我怎么能运行基于rails的docker?我无法安装docker机器,因为我使用ubuntu并且安装总是会失败.
但是我的PHP docker-compose.yml很好,因为我可以运行它:slight_smile:但这个rails教程并不好.
原因是你删除了你所遵循的示例教程的第一行,它们确实很重要.
因为,查看docker您所拥有的版本,您应该使用docker-compose高于1.6.x 的版本.
要识别这一点,您可以运行
$ docker-compose -v
Run Code Online (Sandbox Code Playgroud)
在我的情况下,让我
docker-compose版本1.7.0,build 0d7bf73
如果你的版本有1.7.x或更高版本,那么下面的信息绝对适用于你.
这应该是有效的:
version: '2' ## <- this line matter and you removed it out the tutorial
services: ## <- this line also
db:
image: postgres
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/www/html
ports:
- "3000:3000"
depends_on:
- db
Run Code Online (Sandbox Code Playgroud)
目前有三种版本的Compose文件格式:
- 版本1,传统格式.这是通过省略YAML根目录下的版本密钥来指定的.
- 版本2.x. 这是在YAML的根目录下使用版本:'2'或版本:'2.1'条目指定的.
- 版本3.x,最新推荐版本,旨在在Compose和Docker Engine的群集模式之间交叉兼容.这是使用版本:'3'或版本:'3.1'等指定的,在YAML的根目录下输入.
另外,这是一个小docker-compose版本/ Composer文件矩阵:
Compose file format | Docker Engine release --------------------|---------------------- 3.0 ; 3.1 | 1.13.0+ 2.1 | 1.12.0+ 2.0 | 1.10.0+ 1.0 | 1.9.1.+
来源:来自docker文档
- Compose支持版本1至1.6.x. 它将在未来的Compose版本中弃用.
- Compose 1.6.0+支持版本2文件,并且需要版本为1.10.0+的Docker Engine.
- 版本2的升级,引入了仅适用于Docker Engine版本1.12.0+的新参数
- 2.1版的升级,引入了仅适用于Docker Engine版本1.13.0+的新参数.此版本还允许在服务配置中指定默认比例数.
- Compose和Docker Engine的swarm模式之间的交叉兼容,版本3删除了几个选项,并添加了几个选项.
在docker文档页面上,现在还有关于如何升级Compose文件的实用指南:
其他有用的docker撰写文档:
| 归档时间: |
|
| 查看次数: |
5774 次 |
| 最近记录: |