1、Alpine

1. Dockerfile

  1. FROM alpine:3.16.2
  2. LABEL maintainer="Geray <1690014753@qq.com>" \
  3. image.authors="geray" \
  4. image.description="Application packaged by Geray" \
  5. image.ref.name="alpine-3.16.2" \
  6. image.title="alpine" \
  7. image.vendor="VMware, Inc." \
  8. build.date="2022.10.2"
  9. RUN set -x \
  10. && RUN apt-get update -y && apt-get upgrade -y
  11. && apk add -U tzdata \
  12. && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
  13. && apk del tzdata
  • 这样做出来的镜像虽然测试发现时间已改变,但是作为其他镜像的基础镜像时,时间依然不合适,尚不清楚啥原因?难道是因为卸载了?(其实是将/etc/localtime覆盖了导致)

2. 构建

  1. docker build -t registry.cn-hangzhou.aliyuncs.com/depl/alpine:3.16.2 .
  2. docker tag registry.cn-hangzhou.aliyuncs.com/depl/alpine:3.16.2 geray/alpine:3.16.2
  3. docker push registry.cn-hangzhou.aliyuncs.com/depl/alpine:3.16.2
  4. docker push geray/alpine:3.16.2

3、多架构镜像构建

  1. docker buildx build -t geray/alpine:3.16.2 --platform=linux/amd64,linux/amd64/v2,linux/amd64/v3,linux/386,linux/arm64,linux/ppc64le --push .

4. nginx

  1. FROM geray/alpine:3.16.2
  2. LABEL maintainer="Geray <1690014753@qq.com>" \
  3. image.authors="geray" \
  4. image.description="Application packaged by Geray" \
  5. image.title="nginx" \
  6. image.version="" \
  7. image.vendor="VMware, Inc." \
  8. build.date="2022.10.2"
  9. RUN set -x \
  10. && apk --no-cache update \
  11. && apk add gcc \
  12. && apk add c++ \
  13. && apk add make cmake automake gfortran libffi-dev autoconf libtool pcre zlib wget vim \
  14. # && apk add pcre-devel zlib-devel openssl-devel build-essential \
  15. &&

2、Ubuntu

阿里云镜像开源镜像站(已经更换地址)
阿里云镜像开源社区镜像站(新地址)
网易开源镜像站
清华大学开源镜像站
中科大开源镜像站

1. Dockerfile

  1. FROM ubuntu:20.04
  2. LABEL maintainer="Geray <1690014753@qq.com>" \
  3. image.authors="geray" \
  4. image.description="Application packaged by Geray" \
  5. image.ref.name="ubuntu-20.04" \
  6. image.title="ubuntu" \
  7. image.vendor="VMware, Inc." \
  8. build.date="2022.10.2"
  9. RUN set -x \
  10. && apt-get update -y && apt-get upgrade -y \
  11. && apt-get install -y tzdata \
  12. && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
  13. && rm -rf /var/lib/apt/lists/*

2. 构建

  1. docker buildx build -t geray/ubuntu:20.04 --platform=linux/amd64,linux/amd64/v2,linux/amd64/v3,linux/arm64,linux/ppc64le --push .

3. Ubuntu-development environment

安装gcc等依赖环境

  1. FROM geray/ubuntu:20.04
  2. LABEL maintainer="Geray <1690014753@qq.com>" \
  3. image.authors="geray" \
  4. image.description="Application packaged by Geray,GCC and C++related dependencies are installed" \
  5. image.ref.name="geray/ubuntu:20.04" \
  6. image.title="ubuntu" \
  7. image.vendor="VMware, Inc." \
  8. build.date="2022.10.8"
  9. # 安装依赖
  10. RUN set -eux; \
  11. apt-get update -y && apt-get upgrade -y; \
  12. apt-get install -y gcc g++ \
  13. make cmake automake wget \
  14. gfortran libffi-dev autoconf libtool \
  15. # ubuntu不同与centos:zlib zlib-devel pcre pcre-devel openssl-devel 对应zlib1g zlib1g-dev libpcre3-dev libssl-dev
  16. zlib1g zlib1g-dev libpcre3-dev libssl-dev \
  17. build-essential; \
  18. rm -rf /var/lib/apt/lists/*

4. nginx

  1. FROM geray/ubuntu:20.04-dependencies
  2. LABEL maintainer="Geray <1690014753@qq.com>" \
  3. image.authors="geray" \
  4. image.description="Application packaged by Geray" \
  5. image.ref.name="geray/ubuntu:20.04-dependencies" \
  6. image.title="nginx" \
  7. image.version="1.22.0-fastdfs" \
  8. image.vendor="VMware, Inc." \
  9. build.date="2022.10.8"
  10. COPY 1.22.0/openssl-1.1.1q.tar.gz .
  11. COPY 1.22.0/pcre-8.45.tar.gz .
  12. COPY 1.22.0/zlib-1.2.12.tar.gz .
  13. # 安装fds
  14. COPY libfastcommon-1.0.53.tar.gz .
  15. COPY fastdfs-6.07.tar.gz .
  16. COPY fastdfs-nginx-module-1.22.tar.gz .
  17. COPY nginx-1.22.0.tar.gz .
  18. # 安装依赖
  19. RUN set -eux; \
  20. # 1.安装Openssl
  21. tar xf openssl-1.1.1q.tar.gz; \
  22. cd openssl-1.1.1q; \
  23. ./config; \
  24. make && make install; \
  25. cd ..; rm -rf openssl-1.1.1q.tar.gz; \
  26. # 2.安装Pcre
  27. tar xf pcre-8.45.tar.gz; \
  28. cd pcre-8.45; \
  29. ./configure; \
  30. make && make install; \
  31. cd ..; rm -rf pcre-8.45.tar.gz; \
  32. # 3.安装Zlib
  33. tar xf zlib-1.2.12.tar.gz; \
  34. cd zlib-1.2.12; \
  35. ./configure; \
  36. make && make install; \
  37. cd .. ; rm -rf zlib-1.2.12.tar.gz; \
  38. # 4.安装libfastcommon-1.0.53.tar.gz
  39. tar xf libfastcommon-1.0.53.tar.gz; \
  40. cd libfastcommon-1.0.53; \
  41. ./make.sh && ./make.sh install; \
  42. cd ..; \
  43. rm -rf libfastcommon-1.0.53.tar.gz; \
  44. # 5.安装fastdfs
  45. tar xf fastdfs-6.07.tar.gz; \
  46. cd fastdfs-6.07; \
  47. ./make.sh && ./make.sh install; \
  48. cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf; \
  49. cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf; \
  50. cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf; \
  51. cp ./conf/http.conf /etc/fdfs/; \
  52. cp ./conf/mime.types /etc/fdfs/; \
  53. cd ..; \
  54. rm -rf fastdfs-6.07.tar.gz; \
  55. # 6.安装 fastdfs-nginx-module-1.22.tar.gz
  56. tar xf fastdfs-nginx-module-1.22.tar.gz; \
  57. cd fastdfs-nginx-module-1.22; \
  58. cp src/mod_fastdfs.conf /etc/fdfs/; \
  59. # 修改mod_fastdfs.conf配置文件
  60. sed -i 's/connect_timeout=2/connect_timeout=10/g' /etc/fdfs/mod_fastdfs.conf; \
  61. sed -i 's/tracker_server=tracker:22122/tracker_server=127.0.0.1:22122/g' /etc/fdfs/mod_fastdfs.conf; \
  62. sed -i 's/url_have_group_name = false/url_have_group_name = true/g' /etc/fdfs/mod_fastdfs.conf; \
  63. # 修改src/config配置文件
  64. sed -i 's/\/usr\/local\//\/usr\//g' src/config; \
  65. # 创建配置中的默认路径
  66. mkdir -p /home/yuqing/fastdfs; \
  67. cd ..; \
  68. rm -rf fastdfs-nginx-module-1.22.tar.gz; \
  69. # 7.安装nginx
  70. tar xf nginx-1.22.0.tar.gz; \
  71. # 启动服务
  72. # /etc/init.d/fdfs_trackerd start; \
  73. # /etc/init.d/fdfs_storaged start; \
  74. cd nginx-1.22.0; \
  75. ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-openssl=../openssl-1.1.1q --with-pcre=../pcre-8.45 --with-zlib=../zlib-1.2.12 --add-module=../fastdfs-nginx-module-1.22/src; \
  76. make && make install; \
  77. cd ..; rm -rf nginx-1.22.0.tar.gz; \
  78. # 删除多余的安装包
  79. rm -rf openssl-1.1.1q pcre-8.45 zlib-1.2.12; \
  80. rm -rf libfastcommon-1.0.53.tar.gz fastdfs-6.07.tar.gz fastdfs-nginx-module-1.22; \
  81. rm -rf nginx-1.22.0
  82. VOLUME /usr/local/nginx/conf
  83. VOLUME /usr/local/nginx/logs
  84. COPY docker-entrypoint.sh /usr/bin/
  85. #RUN set -x \
  86. # && ps -ef \
  87. # && rm -rf /home/yuqing/fastdfs/data/* \
  88. # && rm -rf /home/yuqing/fastdfs/logs/*
  89. WORKDIR /usr/local/nginx
  90. RUN set -x; \
  91. chmod +x /usr/bin/docker-entrypoint.sh
  92. EXPOSE 80 22122 23000
  93. #USER nginx
  94. CMD ["/usr/bin/docker-entrypoint.sh"]
  1. #!/bin/bash
  2. /etc/init.d/fdfs_trackerd start
  3. /etc/init.d/fdfs_storaged start
  4. /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
  5. tail -f /usr/local/nginx/logs/error.log

构建

  1. docker buildx build -t geray/nginx:1.22.0-fds --platform=linux/amd64,linux/amd64/v3,linux/arm64 --push .

3、Debian

1. Dockerfile

2. 构建

4、elasticsearch

  1. FROM openjdk:8-jdk
  2. LABEL maintainer="Geray <geray.zhu@gmail.com>" \
  3. image.authors="geray" \
  4. image.description="Application packaged by Geray,GCC and C++related dependencies are installed" \
  5. PWD="2@42AMFtnNY4" \
  6. image.ref.name="openjdk:8-jdk" \
  7. image.title="elasticsearch" \
  8. image.vendor="VMware, Inc." \
  9. build.date="2022.10.23"
  10. #useradd -r -g mysql -s /bin/false mysql
  11. RUN set -x ; \
  12. useradd -r -g elastic -s /bin/false elastic ; \
  13. mkdir /data/
  14. WORKDIR /data/
  15. ADD elasticsearch-8.4.3-arm64.tar.gz /data/
  16. COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh
  17. RUN set -x ;\
  18. mv /data/elasticsearch-8.4.3 /data/elasticsearch ; \
  19. rm -rf /data/elasticsearch-8.4.3-arm64.tar.gz ; \
  20. chmod +x /usr/bin/docker-entrypoint.sh
  21. VOLUME /data/elasticsearch/logs
  22. VOLUME /data/elasticsearch/data
  23. VOLUME /data/elasticsearch/config
  24. USER 1000
  25. EXPOSE 9200 9300
  26. CMD ["/usr/bin/docker-entrypoint.sh"]
  1. #!/bin/bash
  2. /data/elasticsearch/bin/elasticsearch -d
  3. tail -f /data/elasticsearch/logs/cluster-es.log

构建

  1. docker build -t geray/elasticsearch:8.4.3-arm64 .

5、kafka-zookeeper

  1. FROM openjdk:8-jdk
  2. LABEL maintainer="Geray <1690014753@qq.com>" \
  3. image.authors="geray" \
  4. image.description="镜像包构建来自Geray" \
  5. image.ref.name="openjdk:8-jdk" \
  6. image.title="kafka" \
  7. image.version="2.13-2.8.1" \
  8. image.vendor="VMware, Inc." \
  9. build.date="2022.11.16"
  10. ENV KAFKA_VERSION 2.13-2.8.1
  11. ENV JDK_VERSION 8
  12. ENV SASL=false
  13. ADD kafka_${KAFKA_VERSION}.tar.gz /opt/
  14. RUN set -x ; \
  15. #tar xf /opt/kafka_${KAFKA_VERSION}.tar.gz -C /opt/kafka --strip-components 1 ; \
  16. tar xf /opt/kafka_${KAFKA_VERSION}.tar.gz ; \
  17. mv /opt/kafka_${KAFKA_VERSION} /opt/kafka ; \
  18. mkdir /opt/kafka/logs ; \
  19. rm -rf /opt/kafka_${KAFKA_VERSION}.tar.gz
  20. WORKDIR /opt/kafka/
  21. # data目录
  22. VOLUME /opt/kafka/zkData
  23. VOLUME /opt/kafka/kafkaData
  24. VOLUME /opt/kafka/logs
  25. VOLUME /opt/kafka/config
  26. ENV KAFKA_HOME=/opt/kafka
  27. EXPOSE 9092
  28. #CMD ["/bin/sh","-c","java -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom -jar app.jar ${PARAMS}"]
  29. #ENTRYPOINT ["/opt/kafka/bin/kafka-server-start.sh"]
  30. #CMD ["/opt/kafka/config/server.properties"]
  31. ENTRYPOINT ["/opt/kafka/bin/zookeeper-server-start.sh"]
  32. CMD ["/opt/kafka/config/zookeeper.properties"]
  • 构建
  1. docker build -t geray/kafka:2.13-2.8.1-sasl-arm64 .
  2. docker build -t geray/zookeeper:2.13-2.8.1-sasl-arm64 .
  • kafka的数据配置:log.dirs
  • k8s部署时可以使用环境变量来控制JVM内存大小和是否使用sasl认证
  1. KAFKA_HEAP_OPTS=-XX:+UseContainerSupport -XX:InitialRAMPercentage=75.0 -XX:MaxRAMPercentage=75.0 -Djava.security.auth.login.config=/opt/kafka/kafka_server_jaas.conf
  • 认证文件(zk和kafka使用同一个认证文件)
  1. $ cat kafka_server_jaas.conf
  2. KafkaServer {
  3. org.apache.kafka.common.security.plain.PlainLoginModule required
  4. username="admin"
  5. password="zfyx@2022"
  6. user_admin="zfyx@2022"
  7. user_producer="zfyx@2022"
  8. user_consumer="zfyx@2022";
  9. };

:::info 问题参考:

https://blog.csdn.net/Entity_G/article/details/128006085?spm=1001.2014.3001.5502

:::

项目镜像构建脚本

  1. FROM openjdk:8-jdk
  2. LABEL maintainer="Geray <1690014753@qq.com>" \
  3. image.authors="geray" \
  4. image.description="Application packaged by Geray" \
  5. image.ref.name="openjdk:8-jdk" \
  6. image.title="dgms" \
  7. image.vendor="VMware, Inc." \
  8. build.date="2022.10.18"
  9. ENV PARAMS="--server.port=8080 --eureka.client.service-url.defaultZone=http://admin:G7mQ6wC&@ump-eureka.yyjczcpt:8080/eureka/"
  10. RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
  11. COPY *.jar /app.jar
  12. EXPOSE 8080
  13. ENTRYPOINT ["/bin/sh","-c","java -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom -jar app.jar ${PARAMS}"]
  1. cat Dockerfile-conf
  2. FROM openjdk:8-jdk
  3. LABEL maintainer="Geray <1690014753@qq.com>" \
  4. image.authors="geray" \
  5. image.description="Application packaged by Geray" \
  6. image.ref.name="openjdk:8-jdk" \
  7. image.title="dgms" \
  8. version="2.14.0" \
  9. image.vendor="VMware, Inc." \
  10. build.date="2022.10.19"
  11. ENV PARAMS="--server.port=8080 --eureka.client.service-url.defaultZone=http://admin:G7mQ6wC&@ump-eureka.yyjczcpt:8080/eureka/" \
  12. CONFPATH="-Dloader.path=/config/prod"
  13. RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
  14. ADD conf.tar /
  15. COPY *.jar /app.jar
  16. EXPOSE 8080
  17. ENTRYPOINT ["/bin/sh","-c","java -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom -jar ${CONFPATH} app.jar ${PARAMS}"]
  1. cat auto_buildImages.sh
  2. #!/bin/bash
  3. address=10.223.225.56:32000
  4. ImageWarehouse=sjzcxt
  5. PREFIX=dgms
  6. SUFFIX=v2.14.0
  7. NAMES=(
  8. api
  9. asset
  10. config
  11. data
  12. integrate
  13. kettle
  14. meta
  15. quality
  16. scheduler
  17. std
  18. system
  19. task
  20. )
  21. for name in ${NAMES[@]};do
  22. echo "-----------| 准备构建 ${name} 镜像... "
  23. if [ ${name} = config ] ;then
  24. echo "================"
  25. cp Dockerfile-conf $name;
  26. ls -l ${name}
  27. echo "================"
  28. mv ${name}/Dockerfile-conf ${name}/Dockerfile
  29. #cat ${name}/Dockerfile
  30. #ls -l ${name}
  31. #cat ${name}/Dockerfile*
  32. echo "================"
  33. else
  34. cp Dockerfile $name;
  35. fi
  36. cd $name;
  37. echo "docker build -t ${address}/${ImageWarehouse}/${PREFIX}-${name}:${SUFFIX} ."
  38. docker build -t ${address}/${ImageWarehouse}/${PREFIX}-${name}:${SUFFIX} . ;
  39. if [ $? -eq 0 ]; then
  40. cd .. ;
  41. echo "-----------| ${name} 镜像构建完成,准备推送至镜像仓库... "
  42. docker push ${address}/${ImageWarehouse}/${PREFIX}-${name}:${SUFFIX}
  43. if [ $? -ne 0 ]; then
  44. echo "${name} 镜像推送失败!!!!!!!!!"
  45. exit 1;
  46. fi
  47. else
  48. echo "-----------| ${name} 镜像构建失败!!!!!!!"
  49. exit 1;
  50. fi
  51. echo "------------| ${name} 镜像以推送至镜像仓库."
  52. done
  • 数据资产
  1. cat buildImages.sh
  2. #!/bin/bash
  3. address=10.223.225.56:32000
  4. ImageWarehouse=dgms
  5. PREFIX=dgms
  6. SUFFIX=V2.15.0-SNAPSHOT
  7. NAMES=(
  8. api
  9. asset
  10. collect
  11. data
  12. integrate
  13. kettle
  14. portal
  15. quality
  16. scheduler
  17. std
  18. system
  19. task
  20. )
  21. # 复制Dockerfile到文件夹
  22. function cp_Dockerfile(){
  23. cp Dockerfile $name;
  24. }
  25. # 复制jar包到目录
  26. function cp_jar(){
  27. cp ${PREFIX}-${name}-${SUFFIX}.jar $name;
  28. }
  29. # 构建镜像
  30. function buildImages(){
  31. echo "docker build -t ${address}/${ImageWarehouse}/${PREFIX}-${name}:${SUFFIX} ."
  32. docker build -t ${address}/${ImageWarehouse}/${PREFIX}-${name}:${SUFFIX} . ;
  33. if [ $? -eq 0 ]; then
  34. cd .. ;
  35. echo "-----------| ${name} 镜像构建完成,准备推送至镜像仓库... "
  36. docker push ${address}/${ImageWarehouse}/${PREFIX}-${name}:${SUFFIX}
  37. echo "docker push ${address}/${ImageWarehouse}/${PREFIX}-${name}:${SUFFIX}"
  38. if [ $? -ne 0 ]; then
  39. echo "${name} 镜像推送失败!!!!!!!!!"
  40. exit 1;
  41. fi
  42. else
  43. echo "-----------| ${name} 镜像构建失败!!!!!!!"
  44. exit 1;
  45. fi
  46. echo "------------| ${name} 镜像以推送至镜像仓库."
  47. }
  48. for name in ${NAMES[@]};do
  49. echo "-----------| 准备构建 ${name} 镜像... "
  50. if [ -d "$name" ]; then
  51. echo "$name 目录已经存在"
  52. else
  53. echo "$name 目录不存在,创建..."
  54. mkdir $name
  55. fi
  56. if [ ${name} = kettle ] ;then
  57. echo "================"
  58. cp Dockerfile-kettle $name;
  59. echo "================"
  60. mv ${name}/Dockerfile-kettle ${name}/Dockerfile
  61. echo "================"
  62. else
  63. cp_Dockerfile;
  64. fi
  65. #cp_jar;
  66. cd $name;
  67. buildImages;
  68. done
  • Dockerfile
  1. FROM openjdk:8-jdk
  2. LABEL maintainer="Geray <1690014753@qq.com>" \
  3. image.authors="geray" \
  4. image.description="Application packaged by Geray" \
  5. image.ref.name="openjdk:8-jdk" \
  6. image.title="dgms" \
  7. image.vendor="VMware, Inc." \
  8. build.date="2022.11.9"
  9. ENV PARAMS="--server.port=8080 --spring.cloud.nacos.discovery.server-addr=nacos.dgms:8848 --spring.cloud.nacos.discovery.username=nacos --spring.cloud.nacos.discovery.password=Dgms@2022 --spring.cloud.nacos.discovery.namespace=dev --security.oauth2.resource.user-info-uri=http://ump-authentication.yyjczcpt:8080/user"
  10. RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
  11. COPY *.jar /app.jar
  12. VOLUME /dgms/file
  13. VOLUME /tmp/temporary/upload/
  14. WORKDIR /
  15. EXPOSE 8080
  16. ENTRYPOINT ["/bin/sh","-c","java -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom -jar app.jar ${PARAMS}"]
  • Dockerfile-kettle
  1. cat Dockerfile-kettle
  2. FROM geray/hs_jdk:v1.8.0_291
  3. LABEL maintainer="Geray <1690014753@qq.com>" \
  4. image.authors="geray" \
  5. image.description="Application packaged by Geray" \
  6. image.ref.name="openjdk:8-jdk" \
  7. image.title="dgms" \
  8. image.vendor="VMware, Inc." \
  9. build.date="2022.11.9"
  10. ENV PARAMS="--server.port=8080 --spring.cloud.nacos.discovery.server-addr=nacos.dgms:8848 --spring.cloud.nacos.discovery.username=nacos --spring.cloud.nacos.discovery.password=Dgms@2022 --spring.cloud.nacos.discovery.namespace=dev --security.oauth2.resource.user-info-uri=http://ump-authentication.yyjczcpt:8080/user"
  11. RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
  12. ADD datax.tar.gz /
  13. COPY *.jar /app.jar
  14. VOLUME /datax/conf
  15. VOLUME /datax/job
  16. VOLUME /datax/log
  17. VOLUME /dgms/file
  18. VOLUME /tmp/temporary/upload/
  19. WORKDIR /
  20. EXPOSE 8080
  21. ENTRYPOINT ["/bin/sh","-c","java -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom -jar app.jar ${PARAMS}"]

java镜像构建模板

1. 具备注册中心和配置中心的微服务镜像构建

聚合

  1. FROM openjdk:8-jdk
  2. LABEL maintainer="Geray <1690014753@qq.com>" \
  3. image.authors="geray" \
  4. image.description="Application packaged by Geray" \
  5. image.ref.name="openjdk:8-jdk" \
  6. image.title="gxjh_desp_exchange" \
  7. image.vendor="VMware, Inc." \
  8. build.date="2022.10.16"
  9. ENV PARAMS="--server.port=8080 --spring.profiles.active=prod --spring.cloud.nacos.discovery.server-addr=nacos.ruoyi:8848 --spring.cloud.nacos.config.server-addr=nacos.ruoyi:8848 --spring.cloud.nacos.config.namespace=prod --spring.cloud.nacos.config.file-extension=yml"
  10. ENV JVM_MEMORY="-Xms1g -Xmx1g"
  11. RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
  12. COPY *.jar /app.jar
  13. EXPOSE 8080
  14. ENTRYPOINT ["/bin/sh","-c","java ${JVM_MEMORY} -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom -jar app.jar ${PARAMS}"]

2. 不具备注册中心和配置中心的微服务镜像构建

desp交换

需要挂载配置文件等

  1. FROM openjdk:8-jdk
  2. LABEL maintainer="Geray <1690014753@qq.com>" \
  3. image.authors="geray" \
  4. image.description="Application packaged by Geray" \
  5. image.ref.name="openjdk:8-jdk" \
  6. image.title="gxjh_desp_exchange" \
  7. image.vendor="VMware, Inc." \
  8. build.date="2022.10.16"
  9. ENV PARAMS="--server.port=8080"
  10. ENV CONFPATH="-Dloader.path=/app-conf/resources,/app-conf/lib"
  11. ENV JVM_MEMORY="-Xms1g -Xmx1g"
  12. RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone ; \
  13. mkdir /app-conf/
  14. ADD resources.tar.gz /app-conf/
  15. ADD lib.tar.gz /app-conf/
  16. COPY *.jar /app.jar
  17. EXPOSE 8080
  18. #ENTRYPOINT ["/bin/sh","-c","java -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom -jar ${CONFPATH} app.jar ${PARAMS}"]
  19. CMD ["/bin/sh","-c","java ${JVM_MEMORY} -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom -jar ${CONFPATH} app.jar ${PARAMS}"]

设置内存参数:

建议优化jvm参数占用pod百分比

https://www.yuque.com/geray-alxoc/bapt5y/ckk8t8dn70g4ic0i?singleDoc# 《JAVA项目容器化部署JVM配置》

3. web

  1. FROM 10.223.225.56:32000/library/nginx:1.23.1
  2. LABEL maintainer="Geray <1690014753@qq.com>" \
  3. image.authors="geray" \
  4. image.description="Application packaged by Geray" \
  5. image.ref.name="nginx:1.23.1" \
  6. image.title="ump" \
  7. image.vendor="VMware, Inc." \
  8. build.date="2022.10.18"
  9. COPY default.conf /etc/nginx/conf.d/
  10. ADD dist-ump.tar.gz /usr/share/nginx/html/
  11. VOLUME /usr/share/nginx/html