小编Cou*_*ell的帖子

使用Dockerrun.aws.json通过CLI deploy命令部署到elasticbeanstalk

我正在运行一个具有多个环境的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

9
推荐指数
1
解决办法
2596
查看次数

ActiveRecord has_many通过与arg的作用域关联

我已经看到了一些问题的答案,这些问题解决了如何在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)

ruby activerecord ruby-on-rails

5
推荐指数
1
解决办法
149
查看次数