mkdir -pv ~/workspace/dockerfile/openssl
根据需求,下载指定版本的源码包即可。
示例:
cd ~/workspace/dockerfile/openssl
wget https://www.openssl.org/source/openssl-3.3.0.tar.gz
vim ~/workspace/dockerfile/openssl/dockerfile
# 配置参数(指定基础镜像版本)
ARG BASE_TAG=15.5
# 基于 openSUSE Leap 构建
FROM opensuse/leap:$BASE_TAG
# 配置相关参数(用户组、用户、HOME目录、安装目录、安装版本等)
ARG GROUP_ID=1024 \
GROUP_NAME=openssl \
USER_ID=1024 \
USER_NAME=openssl \
USER_HOME=/home/openssl \
USER_SHELL=/bin/bash \
INSTALL_PATH=/opt/openssl \
OPENSSL_VERSION=3.3.0
# 更新应用并安装基础应用、清除 zypper 缓存
RUN set -ex && \
zypper refresh && \
zypper update -y && \
zypper clean
# 设置时区、新建用户组及用户、配置目录权限
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
groupadd $GROUP_NAME -g $GROUP_ID && \
useradd $USER_NAME -g $GROUP_ID -d $USER_HOME -s $USER_SHELL -u $USER_ID && \
mkdir -pv $USER_HOME $INSTALL_PATH && \
chown -R $GROUP_NAME.$USER_NAME $USER_HOME $INSTALL_PATH
# 安装 OpenSSL(安装依赖包、编译安装)
ADD openssl-$OPENSSL_VERSION.tar.gz $USER_HOME
RUN zypper install -y perl gcc make && \
cd $USER_HOME && \
chown -R $GROUP_NAME.$USER_NAME $USER_HOME && \
cd openssl-$OPENSSL_VERSION && \
./Configure --prefix=$INSTALL_PATH && \
make install && \
rm -rf $USER_HOME/* && \
zypper remove -y perl gcc make && \
chown -R $GROUP_NAME.$USER_NAME $INSTALL_PATH && \
ln -s $INSTALL_PATH/lib64/libssl.so.3 /usr/lib64/libssl.so.3 && \
ln -s $INSTALL_PATH/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3 && \
mv /usr/bin/openssl /usr/bin/openssl.bak && \
ln -s $INSTALL_PATH/bin/openssl /usr/bin/openssl
# 设置工作目录
WORKDIR $USER_HOME
# 设置启动用户
USER $GROUP_NAME:$USER_NAME
# 设置执行启动脚本
CMD ["/bin/bash"]
其中
OPENSSL_VERSION
的值为下载的openssl源码包版本,此处示例使用3.3.0
chown -R 1024.1024 ~/workspace/dockerfile/openssl
cd ~/workspace/dockerfile/openssl
docker build --no-cache -t hub.hty1024.com/hty1024/openssl:3.3.0 .
其中
hub.hty1024.com/hty1024/openssl
为镜像名称,3.3.0
为镜像 Tag(建议与源码包版本一致)
docker run -dit --name openssl hub.hty1024.com/hty1024/openssl:3.3.0
docker exec -it openssl openssl version
其中
openssl
为容器名称,hub.hty1024.com/hty1024/openssl
为镜像名称,3.3.0
为镜像 Tag