当前位置: 首页 > ai >正文

编译docker版openresty

使用alpine为基础镜像

# 使用Alpine作为基础镜像
FROM alpine:3.18# 替换为阿里云镜像源,并安装必要的依赖
RUN sed -i 's|https://dl-cdn.alpinelinux.org/alpine|https://mirrors.aliyun.com/alpine|g' /etc/apk/repositories && \apk add --no-cache \build-base \pcre-dev \openssl-dev \zlib-dev \perl \linux-headers \&& mkdir -p /usr/local/openresty# 下载OpenResty源码包
WORKDIR /tmp
RUN wget https://openresty.org/download/openresty-1.21.4.1.tar.gz && \tar zxpf openresty-1.21.4.1.tar.gz# 编译并安装OpenResty
WORKDIR /tmp/openresty-1.21.4.1
RUN ./configure --prefix=/usr/local/openresty \--with-pcre-jit \--with-http_ssl_module \--with-http_v2_module \--with-http_realip_module \--with-http_stub_status_module \-j2 && \make && \make install# 清理无用文件
RUN rm -rf /tmp/openresty-1.21.4.1*# 设置工作目录
WORKDIR /usr/local/openresty# 暴露端口
EXPOSE 80# 启动命令
CMD ["/usr/local/openresty/nginx/sbin/nginx", "-g", "daemon off;"]

上面编译完457M,多阶段构建可以缩减至25.7M

# stage 1: 构建阶段
FROM alpine:3.18 AS builder# 替换为阿里云源并安装构建依赖
RUN sed -i 's|https://dl-cdn.alpinelinux.org/alpine|https://mirrors.aliyun.com/alpine|g' /etc/apk/repositories && \apk add --no-cache \build-base \pcre-dev \openssl-dev \zlib-dev \perl \linux-headers# 下载并解压 OpenResty 源码
WORKDIR /tmp
RUN wget https://openresty.org/download/openresty-1.21.4.1.tar.gz && \tar zxpf openresty-1.21.4.1.tar.gz# 编译安装 OpenResty
WORKDIR /tmp/openresty-1.21.4.1
RUN ./configure --prefix=/usr/local/openresty \--with-pcre-jit \--with-http_ssl_module \--with-http_v2_module \--with-http_realip_module \--with-http_stub_status_module \-j2 && \make && \make install# 剥离可执行文件
RUN strip /usr/local/openresty/nginx/sbin/nginx# stage 2: 最终运行环境
FROM alpine:3.18# 安装运行时依赖
RUN sed -i 's|https://dl-cdn.alpinelinux.org/alpine|https://mirrors.aliyun.com/alpine|g' /etc/apk/repositories && \apk add --no-cache \libgcc \pcre \openssl \zlib# 复制编译好的 OpenResty 文件
COPY --from=builder /usr/local/openresty /usr/local/openresty# 设置工作目录
WORKDIR /usr/local/openresty# 暴露端口
EXPOSE 80# 启动命令
CMD ["/usr/local/openresty/nginx/sbin/nginx", "-g", "daemon off;"]

编译arm版docker

需要安装dockerbuildx

docker buildx create --use --name=mybuilder-cn --driver docker-container --driver-opt image=uhub.service.ucloud.cn/iatc/cn-buildkit:latest
docker buildx use mybuilder-cn
docker buildx build --platform linux/arm/v7 -t openresty-arm:latest . --load
docker buildx rm mybuilder-cn

http://www.xdnf.cn/news/5959.html

相关文章:

  • MySQL——数据类型表的约束
  • 无线定位之四 SX1302 网关源码 thread_jit 线程详解
  • 道通EVO MAX系列无人机-支持二次开发
  • Springboot实现重试机制
  • 工具学习_VirusTotal使用
  • 集成钉钉消息推送功能
  • 软件I2C
  • python3:文件与异常
  • JSON 和 cJSON 库入门教程
  • SPI接口:原理;从设备slave如何主动给主设备master发数据?
  • 基于MNIST数据集的手写数字识别(简单全连接网络)
  • 共享代理IP带宽受限影响大吗
  • SQL:MySQL函数:数学函数(Mathematical Functions)
  • 牛客周赛96补题 D F
  • 【IC验证】systemverilog_类
  • yum安装-此系统没有注册
  • Python打包工具PyInstaller,打包之后的反编译工具pyinstxtractor
  • 2025.05.10京东机考真题算法岗-第一题
  • QT 插槽实现
  • 最短路与拓扑(1)
  • openjdk底层汇编指令调用(三)——编码
  • Ensemble Alignment Subspace Adaptation Method for Cross-Scene Classification
  • HDFS的客户端操作(1)
  • USB3.0拓展坞制作学习
  • Linux系统编程---Signal信号集
  • Profibus DP主站转Modbus RTU/TCP如何把E+H流量计接入到modbus
  • 基于单片机的视力保护仪设计与实现
  • 硬密封保温 V 型球阀:恒温工况下复杂介质控制的性价比之选-耀圣
  • RabbitMQ 核心概念与消息模型深度解析(一)
  • Linux 系统如何挂载U盘