使用docker打包seata,减少占用体积

官方的seata镜像和nacos(2.5.0版本小了很多,原来一个镜像有1g!)太大了,相比二进制翻了几番,记录下自制镜像操作。

1.自建基础镜像或使用alphaLinux基础镜像

下载alphaLinux最小文件系统:alphaLinux官网
选择x86_64:选择x86_64位

3.下载seata二进制文件

改造原有的Dockerfile,这个Dockerfile使用的jdk镜像比较大,打包的镜像有600mb.

img

4.将seata二进制文件打包到镜像中

# docker提供的空白镜像
FROM scratch

ADD alpine-minirootfs-3.21.3-x86_64.tar.gz /

#设置国内镜像
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
# 下载基础环境
RUN apk add --no-cache openjdk8-jre-base curl iputils ncurses vim libcurl bash

# set label
LABEL maintainer="Seata <seata.apache.org>"

WORKDIR /$BASE_DIR

# ADD FORM distribution
ADD bin/ /seata-server/bin
ADD ext/ /seata-server/ext
ADD lib/ /seata-server/lib
ADD conf/ /seata-server/conf
ADD target /seata-server/target

# set extra environment
ENV LOADER_PATH="/seata-server/lib"
ENV TZ="Asia/Shanghai"
CMD ["bash","-c","/seata-server/bin/seata-server.sh && tail -f /dev/null"]

(备选):
~~## 2.导入最小文件系统作为基础镜像 ~~
docker直接导入该文件:

# 导入文件,并命名镜像为alpine:3.21.3
 docker import alpine-minirootfs-3.21.3-x86_64.tar.gz alpine:3.21.3
posted on 2025-02-28 10:29  树下的  阅读(169)  评论(0)    收藏  举报