我正在运行一个具有多个环境的elasticbeanstalk应用程序.此特定应用程序托管托管网络服务的docker容器.
要将新版本的应用程序上传并部署到其中一个环境,我可以浏览Web客户端并单击"Upload and Deploy",然后从文件选项中选择我最新的Dockerrun.aws.json文件,该文件引用了私有托管的最新版本容器.上传和部署工作正常,没有问题.
为了使我自己和其他人更容易部署,我希望能够使用CLI上传和部署Dockerrun.aws.json文件.如果我在eb deploy没有任何特殊配置的情况下使用cli 命令,则会将整个应用程序压缩并将其发送到主机的正常过程发生并失败(它无法推断出它只需要读取Dockerrun.aws.json文件).
我找到了一个关于使用.elasticbeanstalk/config.yml文件控制上传内容的文档.
使用以下语法:
deploy:
artifact: Dockerrun.aws.json
文件已上载并实际成功部署到第一批实例,然后始终无法部署到第二组实例.
失败错误的风格是:'容器意外退出......'
任何人都可以解释或提供使用CLI部署单个docker容器应用程序的规范方法的链接吗?
deployment amazon-web-services docker amazon-elastic-beanstalk
我已经看到了一些问题的答案,这些问题解决了如何在ActiveRecord关联中使用范围块,包括将对象本身传递到块中,如...
class Patron < ActiveRecord::Base
has_many :bars,
->(patron) { baz: patron.blah },
foreign_key: :somekey,
primary_key: :somekey
end
class Bar < ActiveRecord::Base
belongs_to :patron,
->(bar) { blah: bar.baz },
foreign_key: :somekey,
primary_key: :somekey
end
Run Code Online (Sandbox Code Playgroud)
这里使用显式PK和FK是由于底层表之间的遗留关系.生产系统中有数亿"顾客".
作为澄清点@TJR - Patron和Bar之间的关系实际上是字段上的复合外键:somekey和:baz(或者反向的blah).ActiveRecord:foreign_key选项不允许数组.
我发现不幸的是,这会阻止随后的has_many:tos按预期工作.
class Patron < ActiveRecord::Base
has_many :bars,
->(patron) { baz: patron.blah },
foreign_key: :somekey,
primary_key: :somekey
has_many :drinks, through: :bars
end
Run Code Online (Sandbox Code Playgroud)
使用直通关联会产生如......的错误
ArgumentError:参数数量错误(0表示1)
bar和drink之间的关联是经典的has_many,带有标准的外键和主键(bar_id,id).
我想出了一些丑陋的工作,让我可以完成所需的功能,但整个事情闻起来很糟糕.到目前为止,这些看起来最好
class Patron < ActiveRecord::Base
has_many :bars,
->(patron) { baz: patron.blah },
foreign_key: :somekey,
primary_key: :somekey
def drinks
bars.drinks …Run Code Online (Sandbox Code Playgroud)