```
FROM alpine:latest
# 替换为阿里云的 Alpine 源
RUN sed -i 's/
dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
# 安装构建和运行所需依赖
RUN apk add --no-cache \
build-base \
ca-certificates \
tar \
libressl-dev \
perl \
linux-headers \
musl-dev
# 将 OpenSSL 源码文件从宿主机复制到容器
COPY openssl-3.4.0.tar.gz /opt/
# 解压、编译并安装 OpenSSL
WORKDIR /opt
RUN tar -xzf openssl-3.4.0.tar.gz && rm openssl-3.4.0.tar.gz
WORKDIR /opt/openssl-3.4.0
RUN ./config no-shared no-zlib no-dso no-tests && \
make && \
make install && \
make clean && \
rm -rf /opt/openssl-3.4.0
# 删除构建工具和临时文件
RUN apk del --purge \
build-base \
ca-certificates \
tar \
perl \
linux-headers \
musl-dev \
&& rm -rf /tmp/* /var/cache/apk/* /usr/share/man /usr/share/doc /usr/share/locale
# 更新动态链接库路径
RUN echo "/usr/local/lib64" > /etc/ld-musl-x86_64.path
# 设置环境变量
ENV PATH="/usr/local/bin:${PATH}"
ENV LD_LIBRARY_PATH="/usr/local/lib64:/usr/lib:/lib"
# 默认命令
CMD ["openssl", "version"]
```
生成的镜像,有 440MB 之大,是不是有些残留没清干净? 还是 OpenSSL 编译完成,就这么大?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/1096825
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.