开发者社区 > 云原生 > Serverless > 正文

Serverless应用引擎的容器里不支持公网下载命令,怎么给打包telnet,等到镜像里?

Serverless应用引擎的容器里不支持公网下载命令,怎么给打包telnet,等到镜像里?

展开
收起
三分钟热度的鱼 2023-07-12 08:56:08 99 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在本地制作一个包含命令的Dockerfile
    比如:

    dockerfile
    Copy
    FROM python
    RUN apk add --no-cache telnet
    COPY . /app
    WORKDIR /app
    这里通过apk add 将telnet命令打包进镜像。

    构建本地镜像
    bash
    Copy
    docker build -t myimage .
    将镜像推送到容器镜像存储服务,如镜像仓库
    Copy
    docker push registry.cn-hangzhou.aliyuncs.com/myimage
    在Serverless应用引擎指定这个镜像作为函数运行时
    选择自定义运行时,配置为推送到仓库的镜像地址。

    然后部署函数。

    函数运行时就包含了 telnet 命令
    通过在本地Dockerfile中通过RUN 或者COPY命令,将需要的命令打包进镜像。

    2023-07-28 23:38:55
    赞同 展开评论 打赏
  • 在Serverless应用引擎(SAE)中,容器默认情况下是无法直接访问公网的,因此在容器中执行公网下载命令可能会受到限制。不过,您可以通过以下方式将telnet等工具添加到容器镜像中:

    1. 创建自定义镜像:您可以使用Dockerfile来创建自定义的镜像,并在其中安装所需的telnet等工具。在Dockerfile中使用合适的基础镜像,例如Alpine或Ubuntu,然后运行相应的安装命令,如apt-get install telnetyum install telnet等。

    2. 构建和上传镜像:根据Dockerfile构建自定义镜像,并将其上传到阿里云容器镜像服务(Container Registry)或其他镜像仓库中。确保将镜像标记为适当的版本,并将其推送到可供SAE访问的镜像仓库中。

    3. 在SAE中使用自定义镜像:在SAE控制台或通过命令行工具,指定您创建的自定义镜像作为应用的容器镜像。这样,当SAE启动应用时,它将使用您提供的自定义镜像,并且其中已经包含了所需的telnet等工具。

    2023-07-23 22:29:59
    赞同 展开评论 打赏
  • FROM alpine
    RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
    && apk add tzdata \
    && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone \
    && apk del tzdata \
    && apk add busybox-extras 此回答整理自钉群“【3群】Serverless应用引擎(SAE)用户群”

    2023-07-12 08:56:44
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • Serverless 应用引擎
  • 相关电子书

    更多
    Hologres Serverless之路:揭秘弹性计算组 立即下载
    Serverless开发平台: 让研发效能再提升 立即下载
    Serverless 引领云上研发新范式 立即下载