Jac*_*son 3 amazon-web-services docker amazon-elastic-beanstalk docker-compose
我需要在 EB 应用程序上执行部署后脚本。我需要在多容器 Docker 环境中的 Docker 容器上执行命令。问题是 Docker 容器被分配了一个容器名称的随机哈希值。
我进行了搜索,似乎找不到任何有关如何在使用 EB 构建和设置过程中为 Docker 容器分配名称的信息。
有人对此有任何见解吗?我知道使用 docker-compose 这不是问题。
即使您在 中命名容器Dockerrun.aws.json,beanstalk 仍然使用包含环境名称和其他类似内容的特定哈希来命名它们。但它也有上面文件中的名称。
8a18a679564e XXXXXXXXXX.dkr.ecr.eu-west-1.amazonaws.com/XXX:1.0.0-nginx "nginx -g 'daemon ..." 13 hours ago Up 13 hours 0.0.0.0:80->80/tcp ecs-awseb-test-rcbdaytu5h-6-nginx-e6a58fe786d9eae7dc01
Run Code Online (Sandbox Code Playgroud)
最后一列包含我们正在谈论的哈希值。如果您正在创建部署后脚本,您仍然可以通过以下方式获取容器 ID:
docker ps -qf name=nginx
Run Code Online (Sandbox Code Playgroud)
它根据名称部分返回容器 ID。
我会在我的配置文件中做类似的事情.ebextensions
files:
"/opt/elasticbeanstalk/hooks/appdeploy/post/99_do_something_on_container.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
MY_CONTAINER=$(docker ps -qf name=nginx)
docker exec $MY_CONTAINER my command
Run Code Online (Sandbox Code Playgroud)
希望它能为您提供有关如何解决问题的任何想法。:-)
| 归档时间: |
|
| 查看次数: |
1733 次 |
| 最近记录: |