本文介绍使用SAE时,如何处理Webshell无法使用的情况。

问题现象

  • Webshell无法使用
  • Webshell登录错误
  • Webshell登录应用失败

可能原因

  • 应用健康检查一直失败
  • 镜像架构问题
  • 镜像没有安装sh工具

解决方案

针对不同的原因,解决方案不同,具体步骤如下所示。

  • 应用健康检查一直失败

    健康检查不通过,将导致WebShell刚建立连接,就因为实例重启而断开连接。建议您先解决健康检查的问题,再重新登录Webshell。更多信息,请参见为什么设置健康检查后健康检查失败?

  • 镜像架构问题

    如果您采用镜像部署应用,请检查您的镜像架构或者您的基础镜像架构是否为AMD64架构。因为SAE不支持部署AMD64架构的镜像,所以导致Webshell无法使用。您需要先构建正确架构的镜像,再重新登录Webshell。更多信息,请参见为什么我用ARM架构(使用M系列芯片的Mac电脑)的机器打出的镜像在SAE运行失败?

  • 镜像没有安装sh工具

    检查您的镜像是否有sh工具。Webshell运行依赖/bin/bash,但您的镜像中没有该执行文件,将导致Webshell无法使用。解决方法如下。

    • 方法一:在Dockerfile文件中,指定带有/bin/bash的基础镜像。
    • 方法二:在Dockerfile文件中,建立软连接/bin/bash -> /bin/sh

    Spring Cloud、Dubbo和HSF应用的Dockerfile示例,请参见制作Java镜像