赞
踩
FROM ubuntu:latest # 设置工作目录 WORKDIR /app # 安装依赖 # 添加i386架构,因为某些库只提供32位版本 RUN dpkg --add-architecture i386 \ && apt-get update \ && apt-get install -y --no-install-recommends \ build-essential \ wget \ curl \ git \ cmake \ libssl-dev:i386 \ libssl-dev \ libc6-dev-i386 \ zlib1g-dev \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* # 下载并解压交叉编译工具链 RUN wget --no-check-certificate https://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi/arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 && \ tar -xvf arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 && \ rm -rf arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 # # 设置环境变量 ENV PATH=$PATH:/app/arm-2014.05/bin/ # # # 下载并编译安装openssl库 RUN wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1k.tar.gz && \ tar -xvf openssl-1.1.1k.tar.gz && \ cd openssl-1.1.1k && \ CC=gcc ./Configure linux-armv4 --prefix=/app/openssl --cross-compile-prefix=arm-none-linux-gnueabi- && \ make && \ make install && \ cd .. && \ rm -rf openssl-1.1.1k openssl-1.1.1k.tar.gz # # 下载并编译安装Eclipse Paho MQTT C库 RUN wget --no-check-certificate https://github.com/eclipse/paho.mqtt.c/archive/v1.3.12.tar.gz && \ tar -xvf v1.3.12.tar.gz && \ cd paho.mqtt.c-1.3.12 && \ make CC=arm-none-linux-gnueabi-gcc AR=arm-none-linux-gnueabi-ar CFLAGS="-I/app/openssl/include" LDFLAGS="-L/app/openssl/lib" && \ make install && \ cd .. && \ rm -rf paho.mqtt.c-1.3.12 v1.3.12.tar.gz # 清理 RUN apt-get remove -y build-essential wget && \ apt-get autoremove -y && \ rm -rf /var/lib/apt/lists/* && \ rm -rf /app/arm-2014.05 # 设置工作目录 WORKDIR /app/workspace
docker build -t name:v1.0 .
在/app/openssl目录下可以看到交叉编译后的openssl库文件
在/usr/local/lib中可以看到mqtt的库
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。