如何自动将容器放在 AWS ECS 上?

How can I automatically put a container on AWS ECS?

我目前使用以下过程将 docker 容器放入 ECS:

  1. 执行aws ecr get-login --profile tutorial
  2. 将返回的东西粘贴到下面的shell脚本中

创建容器的shell脚本

# Returned by the command in (1)
sudo docker login -u AWS -p looooong -e none https://foobar.dkr.ecr.us-east-1.amazonaws.com

# Remaining steps
sudo service docker restart

sudo docker build  -t ${image} .
sudo docker tag ${image} ${fullname}

sudo docker push ${fullname}

我的问题:

目前,我每次都手动输入 sudo docker login ... 行。我可以以某种方式执行 aws ecr get-login --profile tutorial 并自动执行返回的命令(使用 sudo)吗?

是的,您可以使用eval 来执行docker 登录命令。

例如:

eval $(aws ecr get-login --no-include-email --region us-west-2)

您的示例 Shell 脚本如下:

#!/bin/bash
eval $(aws ecr get-login --no-include-email --region us-west-2)
# Remaining steps
sudo service docker restart

sudo docker build  -t ${image} .
sudo docker tag ${image} ${fullname}

sudo docker push ${fullname}

你也可以写字符串 bash 命令用反引号括起来来执行它。

`aws ecr get-login --no-include-email --region us-west-2`