You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将mruby集成到Azure Functions运行环境的Docker镜像中

解决方案

通过Docker多阶段构建特性,可将mruby的编译产物直接复用至Azure Functions运行镜像中,无需在运行环境中安装编译类依赖,同时完整保留原有Azure Functions的构建逻辑。

整合后完整Dockerfile

# mruby 独立构建阶段
FROM debian:buster AS mruby-build
WORKDIR /opt
# 安装mruby编译依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
    bison \
    build-essential \
    wget \
    unzip \
    && rm -rf /var/lib/apt/lists/*
# 下载并编译mruby 3.0.0
RUN wget https://github.com/mruby/mruby/archive/3.0.0.zip 
RUN unzip 3.0.0.zip
RUN mv mruby-3.0.0 mruby
RUN cd mruby && make

# 原有Azure Functions基础运行阶段
FROM mcr.microsoft.com/azure-functions/dotnet:3.0 AS base
WORKDIR /home/site/wwwroot
EXPOSE 80

# Azure Functions构建阶段
FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build
WORKDIR /src
COPY ["FunctionApp1/FunctionApp1.csproj", "FunctionApp1/"]
RUN dotnet restore "FunctionApp1/FunctionApp1.csproj"
COPY . .
WORKDIR "/src/FunctionApp1"
RUN dotnet build "FunctionApp1.csproj" -c Release -o /app/build

# Azure Functions发布阶段
FROM build AS publish
RUN dotnet publish "FunctionApp1.csproj" -c Release -o /app/publish

# 最终整合镜像阶段
FROM base AS final
WORKDIR /home/site/wwwroot
# 复制mruby编译产物
COPY --from=mruby-build /opt/mruby /opt/mruby
# 添加mruby命令到系统全局路径
RUN ln -s /opt/mruby/bin/mirb /usr/local/bin/ \
    && ln -s /opt/mruby/bin/mrbc /usr/local/bin/ \
    && ln -s /opt/mruby/bin/mruby /usr/local/bin/
# 原有Azure Functions发布文件与环境变量配置
COPY --from=publish /app/publish .
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true

关键调整说明

  • 新增独立的mruby-build阶段,使用官方Debian镜像完成mruby编译,避免引入老旧第三方镜像的兼容性问题
  • 最终运行阶段仅复制mruby编译完成的二进制文件与依赖库,无需安装bison等编译工具,镜像体积更小
  • 完全保留原有Azure Functions的构建、发布逻辑,不会影响函数应用的打包与运行逻辑

验证方式

  • 执行镜像构建命令:docker build -t azure-func-mruby .
  • 容器启动后,执行docker exec -it <容器ID> mruby --version,正常输出版本信息即为集成成功

内容的提问来源于stack exchange,提问作者Oleg Yevteyev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 00:24:02