Docker中的Drone编译前端项目时报137错误代码

Docker中的Drone编译前端项目时报137错误代码

记录一下今天遇到的流水线的Bug,改了老半天,最后才发现问题所在!

问题复现

image-20200627001641215

报错: error Command failed with exit code 137

环境说明

首先说明报错环境,大致如下:

博客插图

原因及解决思路

引起这个报错的具体原因其实是Drone编译项目时需要的内存容量超过了Docker默认分配的512mb容量,一句话就是:容器内存爆掉了!!所以解决办法就是扩大Drone内存!

如果系统内存主够的话,直接将容器内存扩大就好,具体方法可以参考此文设定。

但是如果你像我一样用的云服务器,总共内存就只有可怜🥺的2GB大小,那你可能只能考虑容器添加 SwapFile,来扩充内存!这是一个思路,因为我用的另一位大佬的开发服务器环境,所以给大佬反馈了这个问题之后,大佬自己解决了,这个思路也是大佬说的。具体解决方案,我没有尝试过,有了解的同学可以补充到评论区,感谢🙏~

反思及总结

其实一开始CI报错之后我并没有注意到是Docker的问题,毕竟Drone确实是个可以正常运行的,只是编译的过程中出现错误。而且在编译的过程中yarn警告了项目的许多依赖库 outdated ,于是我就以为是依赖库过时导致编译失败。

image-20200627004226901

经过一下午升级相关依赖库及重写部分调用相关API的代码,最终尝试在本地编译,编译过程终于没有了警告⚠️!!Yes🎉🎉!但是进入流水线之后依旧报错,这时候我才注意到了这个137 错误代码!!经过一番查询之后这个错误代码是和Drone容器内存相关的,于是把问题反馈给了大佬!最后大佬通过添加swapfile修复了这个问题!🎉

其实这个问题一个月前便出现了,只是当时自己懒,且很神奇的是当时,第一遍流水线跑不通,重启一次就能跑通!于是懒懒的自己就这样得过且过了!经过一个月,这些没有收敛的问题终究发散到了不得不收拾的地步。其实要是早早修复相关BUG,今天也不会因为Outdated 问题 被迷惑了老半天,浪费很多时间最后才查到具体的原因!

image-20200627004447532

总结:已经发散的问题如果不及时解决,一定不可能自动收敛,只会引起更多发散的问题!

参考文章

文章1

文章2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
您好!要在Docker部署Nginx和前端项目,您可以按照以下步骤进行操作: 1. 首先,确保您已经安装了Docker。如果没有安装,请根据您的操作系统进行安装。 2. 创建一个新的文件夹,用于存放您的前端项目文件。假设您将其命名为"my-frontend"。 3. 在"my-frontend"文件夹创建一个名为"Dockerfile"的文件,并将以下内容添加到文件: ``` # 使用Nginx作为基础镜像 FROM nginx # 将前端项目文件复制到Nginx的默认网站目录 COPY . /usr/share/nginx/html # 可选:如果您的前端项目需要使用特定的Nginx配置文件,可以将配置文件复制到/etc/nginx/conf.d/目录下 # 暴露Nginx默认的80端口 EXPOSE 80 # 启动Nginx CMD ["nginx", "-g", "daemon off;"] ``` 4. 将您的前端项目文件复制到"my-frontend"文件夹。 5. 打开命令行终端,并导航到"my-frontend"文件夹。 6. 构建Docker镜像。在命令行运行以下命令: ``` docker build -t my-frontend-image . ``` 这将根据"Dockerfile"的配置构建一个名为"my-frontend-image"的Docker镜像。请确保在命令末尾的"."表示当前目录。 7. 运行Docker容器。在命令行运行以下命令: ``` docker run -d -p 80:80 my-frontend-image ``` 这将在后台运行一个名为"my-frontend-container"的Docker容器,并将宿主机的80端口映射到容器的80端口。 现在,您的前端项目已经通过Nginx成功部署在Docker了。您可以通过访问http://localhost 来查看您的项目。 请注意,上述步骤假设您的前端项目不需要任何特殊的Nginx配置。如果您的项目需要自定义Nginx配置,请将配置文件复制到"Dockerfile"指定的目录,并相应地修改配置文件的名称和路径。 希望这能对您有所帮助!如果您有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值