dockerfile.7z
一、基于 Alpine + JDK8 制作镜像
项目结构
Dockerfile 文件内容
FROM alpine:latestMAINTAINER ZHIXING<xxxxxxxx.com>## java 应用工作目录RUN mkdir /app## 应用存放路径RUN mkdir /app/application## 日志存放目录RUN mkdir /app/logs## 配置文件存放目录RUN mkdir /app/config## 执行脚本RUN mkdir /app/sh## 默认执行脚本COPY start.sh /app/sh/start.sh## 空应用COPY app.jar /app/application/app.jar## 空配置COPY application.properties /app/config/application.properties## 添加 JDK 1.8ADD jdk1.8.0_191.tar.gz /usr/local## 更换 alpine 源为 mirrors.ustc.edu.cnRUN echo http://mirrors.ustc.edu.cn/alpine/v3.7/main > /etc/apk/repositories && \echo http://mirrors.ustc.edu.cn/alpine/v3.7/community >> /etc/apk/repositoriesRUN apk update && apk upgrade## Alpine 安装 Glibc https://github.com/sgerrand/alpine-pkg-glibcRUN wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pubRUN wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.31-r0/glibc-2.31-r0.apkRUN wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.31-r0/glibc-bin-2.31-r0.apkRUN wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.31-r0/glibc-i18n-2.31-r0.apkRUN apk add glibc-2.31-r0.apkRUN apk add glibc-bin-2.31-r0.apkRUN apk add glibc-i18n-2.31-r0.apk## 设置环境变量ENV JAVA_HOME /usr/local/jdk1.8.0_191ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarENV PATH $PATH:$JAVA_HOME/bin## 编码问题RUN /usr/glibc-compat/bin/localedef -i en_US -f UTF-8 en_US.UTF-8ENV LANG=en_US.UTF-8ENV LANGUAGE=en_US.UTF-8## 时区ENV TZ='CST-8'## 执行脚本CMD ["sh","/app/sh/start.sh"]
容器中的工作目录为 /app ,相关目录内容如下:
/app/application/关联外部 jar 文件/app/config关联指定配置文件 如: application.properties 等/app/logs存放程序运行日志/app/sh存放程序执行脚本
二、Alpine 安装 Glibc 参考
alpine 默认库为 MUSL libc(mini libc) ,而 JDK 的运行需要 GUN Standard C library(glibc) 的库支持。所以需要安装 glibc
