部署 ECS 时,代码管道的 PRE_BUILD 部分出现错误。在执行 ecr 登录命令时,我得到退出状态,错误代码为 255。请参见下图。
命令 :- $(aws ecr get-login --no-include-email --region us-east-1)
在使用aws 官方文档中指定的 codepipeline 部署 ECS 时,两个 docker 映像正在推入 ECR。一张图片同时包含提交 ID 和最新标签,而另一张图片未标记,如下图所示。
在"buildspec.yml"
我可以看到的文件中,docker正在推送两个图像,一个带有“最新标签”,另一个带有提交ID标签,如下所示
- docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG
- COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
- IMAGE_TAG=${COMMIT_HASH:=latest}
- docker push $REPOSITORY_URI:latest
- docker push $REPOSITORY_URI:$IMAGE_TAG
我的问题是
1) 在 docker push 完成后,ECR 中必须有两个图像,一个带有"commit id"
标签,另一个带有“最新”标签。但是在 ECR 中,它显示的标签名称错误,请检查上面的附图。为什么一张图片显示为 untagged ?
2)当我的任务定义仅使用最新标签来构建容器时,为什么我需要推送两个带有提交 ID 和最新标签的图像。我不是必须只推送带有“最新”标签的 docker 镜像吗,为什么我需要推送带有 commit id 标签的镜像?
我试图使用 aws 代码构建服务构建 docker 映像,然后将其推送到 ECR。我用于它的命令"buildspec.yml"
在下面指定。
version: 0.2
phases:
install:
runtime-versions:
docker: 18
pre_build:
- $(aws ecr get-login --no-include-email --region us-east-1)
- REPOSITORY_URI=XXXXXXXXXX.dkr.ecr.us-east-1.amazonaws.com/devopswebbuild
- COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
- IMAGE_TAG=${COMMIT_HASH:=latest}
build:
commands:
- docker build -t $REPOSITORY_URI:latest .
- docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG
post_build:
commands:
- docker push $REPOSITORY_URI:latest
- docker push $REPOSITORY_URI:$IMAGE_TAG
但我在构建过程中遇到错误,docker 命令无法连接到 docker daemon。请帮我解决这些问题。
Docker构建项目配置详细信息如下:
构建错误详细信息如下:
为了集中备份我的实例中的特定数据,我使用安装到该实例的 EBS 卷。现在我们计划迁移到另一个区域,但 EFS 服务在该特定区域不可用。有什么方法可以通过将 S3 安装到 EC2 实例来使用它作为集中备份。
有没有办法将 EFS 卷挂载到孟买地区的多个实例。EFS 服务目前在孟买地区不可用。或者我可以使用任何其他服务来代替 EFS。我需要将单个磁盘空间安装到多个实例
我们的开发人员在本地独立 Solr 服务器上工作,我们在本地 Solr 中有许多内核。现在我们计划将其迁移到 AWS 基础设施中的 SolrCloud,以使用 numShards:3 和 replicationFact:3 进行复制。我们不需要将数据从本地 Solr 服务器迁移到 AWS SolrCloud。我们只需要将 Core 从 Local Solr 转移到 SolrCloud 中的集合。我是这些方面的新手,请您帮我解决这些问题。
1)通俗地说,我们只需要将核心的Conf文件夹中的内容传输到SolrCloud Collection,我们不需要传输数据(数据文件夹)。
我创建了一个check_pm2.sh
脚本来检查远程服务器上的pm2状态。它在远程服务器上提供正确的输出。从监控服务器调用它时,我得到错误的输出。请检查以下命令输出。
监控服务器:
grep check_pm2status /usr/local/nagios/etc/servers/10.10.1.80.cfg
check_command check_nrpe! check_pm2status
./check_nrpe -H 10.10.1.80 -c check_pm2status
PM2 service is not running
远程系统:
grep check_pm2status /etc/nagios/nrpe.cfg
command[check_pm2status]=/usr/lib/nagios/plugins/check_pm2.sh
/usr/lib/nagios/plugins/check_pm2.sh
PM2 Service is running
下面给出了脚本,在下面的脚本中声明的PM2STATUS0
变量在手动运行时从监控服务器和1
远程服务器 获取输出
PM2STATUS=`pm2 status | grep online | awk '{print $10}'|wc -l`
if [ $PM2STATUS -gt 0 ];then
echo "PM2 Service is running"
exit 0
else
echo "PM2 service is not running"
exit 2
fi