首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹性豆柄码头部署失败,“设备上没有空间”

弹性豆柄码头部署失败,“设备上没有空间”
EN

Stack Overflow用户
提问于 2022-11-28 08:22:10
回答 1查看 13关注 0票数 0

我正在学习一个教程,用Docker将一个烧瓶应用程序部署到AWS弹性豆茎(EB)。我创建了一个AWS弹性容器注册表(ECR),并运行了一些成功地将Docker映像推送到ECR的命令:

代码语言:javascript
复制
docker build -t app-backend
docker tag app-backend:latest [URL_ID].dkr.ecr.us-east-1.amazonaws.com/app-backend:latest
docker push [URL_ID].dkr.ecr.us-east-1.amazonaws.com/app-backend:latest

然后我尝试部署到EB:

代码语言:javascript
复制
eb init (selecting a Docker EB application I created on the AWS GUI)
eb deploy

在"eb init“上,”I get the error“无法设置CodeCommit,因为没有源代码管理设置,继续初始化”,但我假设这可以忽略,否则看起来很好。但是,在"eb部署“中,部署失败。在"eb-engine.log“(在AWS GUI中找到)中,我看到了以下错误消息:

错误在执行命令应用程序部署-码头特定的生成应用程序时发生错误。停止运行命令。错误:拉坞图像失败:命令/bin/sh -c停靠器拉出错误退出状态1失败。Stderr:未能注册层:错误处理tar文件(退出状态1):写/根/..cache/pip/http/5/e/7/3/b/长号:设备上没有空间。

当我手动运行pull命令错误引用(本地,而不是来自EB实例)时,该命令的响应似乎与预期的一样:

代码语言:javascript
复制
docker pull [URL_ID].dkr.ecr.us-east-1.amazonaws.com/app-backend:latest

是什么导致了这个部署失败?

我的Dockerrun.aws.json文件如下所示:

代码语言:javascript
复制
{
    "AWSEBDockerrunVersion": "1",
    "Image": {
      "Name": "[URL_ID].dkr.ecr.us-east-1.amazonaws.com/app-backend",
      "Update": "true"
    },
    "Ports": [
      {
        "ContainerPort": 5000,
        "HostPort": 5000
      }
    ]
}
EN

回答 1

Stack Overflow用户

发布于 2022-11-29 02:12:08

我通过跟踪how to prevent error "no space left on device" when deploying multi container docker application on AWS beanstalk?解决了这个问题。

基本上,您可以在EC2 AWS中找到您的ElasticBean秸秆实例,您可以修改卷以向EB实例添加空间。然后,按照堆栈溢出帖子中的链接,通过SSHing将EB实例重新分区到其中,使用eb ssh,然后使用df -Hlsblk等命令查看每个分区中的空间大小。并使用如下命令:

代码语言:javascript
复制
sudo growpart /dev/xvda 1
sudo xfs_growfs -d / 

若要重新分区硬盘驱动器,请使用您在AWS中添加的所有新空间。您可以使用df -Hlsblk检查重新分区是否给了您更多的空间。

然后eb deploy命令就可以工作了。如果SSH尚未安装,您可能必须先执行eb ssh --setup

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74597794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档