构建java17镜像
1、下载对应版本的ldk17的包:https://www.oracle.com/java/technologies/downloads/#java17
2、查看版本信息
cat /etc/redhat-release
3、编写dockerfile文件
# 本操作系统版本
FROM centos:7.9.2009
# 创建一个新目录来存储jdk文件
RUN mkdir /usr/local/java
#将jdk压缩文件复制到镜像中,它将自动解压缩tar文件
ADD jdk-17_linux-x64_bin.tar.gz /usr/local/java/
# 设置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 设置环境变量
ENV JAVA_HOME /usr/local/java/jdk-17.0.10
ENV PATH $JAVA_HOME/bin:$PATH
# VOLUME 指定了临时文件目录为/tmp
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
4、构建镜像
docker build -t java:17 .
构建dataease镜像
1、参考源码部署步骤:https://dataease.io/docs/v2/installation/deployment_installation/。
注意:源码下载下来后需删除/core/core-backend/src/main/resources/db/migration
/V2.4__ddl.sql文件。如果core-frontend无法打包成功,到该目录下执行npm run build,查看缺少哪些包,我这边提示 ‘NODE_OPTIONS’ 不是内部或外部命令,也不是可运行的程序或批处理文件。执行npm install -g win-node-env后重新打包成功。
2、创建Dockerfile文件
# 使用Java基础镜像,确保包含运行CoreApplication.jar所需的Java环境
FROM java:17
# 设置工作目录
WORKDIR /app
# 将CoreApplication.jar复制到镜像的/app目录下
COPY CoreApplication.jar /app/
# 将driver、config、data文件夹复制到镜像的/app目录下
COPY drivers /app/
COPY config /app/
COPY data /app/
# 设置环境变量,如果CoreApplication.jar需要用到任何环境变量
# ENV VARIABLE_NAME=value
# 设置应用启动时的默认命令
CMD ["java", "-jar", "CoreApplication.jar"]
文件目录如下
3、执行镜像创建命令:
docker build -t dataease .
4、创建容器
docker run -it -d --name dataease -p 8100:8100 dataease:latest