小编Mat*_*att的帖子

Docker 强制覆盖最后一个标签并推送 AWS ECR

我正在通过docker push ...命令将我的图像推送到 AWS ECR 。图像被标记为特定版本。

当我实际推送具有相同标签的两个不同映像时,这会导致 AWS ECR 注册表中出现两个映像,其中一个未标记。

0.0.1 sha256:572219f8764b21e5a045bcc1c5eab399e2bc2370a37b23cb1ca9298ea39e233a 138.33 MB
      sha256:60d161db0b9cb1345cf7c3e6119b8eba7114bc2dfc44c0b3ed02454803f6ef76 138.21MB
Run Code Online (Sandbox Code Playgroud)

这导致的问题是,如果我继续推送更多具有相同标签的图像,存储库的总大小会不断增加。

我想要的是在推送图像时“覆盖”现有标签。这意味着具有相同标签的两个不同 sha256 摘要将导致注册表中的单个图像(当然当标签版本更改时多个)。

有可能这样做吗?如果可能,我想避免使用“未标记的”修剪技术。现在,我的发布脚本会删除以前的相同标签(如果存在),但我觉得这应该由 AWS ECR 处理或docker push直接处理。

amazon-web-services docker

7
推荐指数
1
解决办法
5612
查看次数

在我自己的服务中注入其他服务的参数

我想知道是否有可能在我自己的服务中注入服务的参数,如果可以,如何?

让我把你放在上下文中.我正在使用FOSFacebookBundleconfig.yml文件加载一些配置.这些配置的设置(如我的facebook app_id,secret,cookie等)保持了由参数FOSFacebookBundle与此代码:

// FOS\FacebookBundle\DependencyInjection\FOSFacebookExtension.php
foreach (array('file', 'app_id', 'secret', 'cookie', 'domain', 'logging', 'culture', 'permissions') as $attribute) {
    $containerBuilder->setParameter('fos_facebook.'.$attribute, $config[$attribute]);
}
Run Code Online (Sandbox Code Playgroud)

我知道可以通过以下$container方式检索这些参数:

$container->getParameter('fos_facebook.app_id');
Run Code Online (Sandbox Code Playgroud)

但我想知道是否可以将这些参数直接注入我的服务定义之一.我有一个服务FacebookHelper,需要这些信息.所以我想做一些事情:

acme.helper.facebook:
  class: Application\AcmeBundle\Helper\FacebookHelper
  arguments:
    entityManager: "@doctrine.orm.entity_manager"
    facebook: "@fos_facebook.api"
    facebookAttributes:
      - "@fos_facebook.app_id"
      - "@fos_facebook.secret"
      - "@fos_facebook.cookie"
Run Code Online (Sandbox Code Playgroud)

当然,这种语法不起作用,因为Symfony正在寻找一个名fos_facebook.app_id不存在的服务.

我正在寻找一种避免直接在我的服务中注入容器的解决方案.通过在我的services.yml文件中进行直接定义,或者通过我的bundle的DI扩展来完成定义我的自定义服务,从中检索参数FOSFacebookBundle并将其注入其中.

问候,
马特

symfony

3
推荐指数
1
解决办法
3943
查看次数

标签 统计

amazon-web-services ×1

docker ×1

symfony ×1