docker制作jar包镜像

docker制作jar包镜像 需要写dockerfile文件 文件具体内容是什么 都是什么意思

# 基础镜像
FROM openjdk:8-jdk-alpine

# 维护者信息
MAINTAINER Your Name <your.email@domain.com>

# Jar 包所在目录
ENV APP_HOME /app

# 创建appa目录 
RUN mkdir -p $APP_HOME

# 将Jar包添加到容器 
ADD your-app.jar $APP_HOME/your-app.jar

# 暴露端口
EXPOSE 8080

# 容器启动命令 
CMD ["java", "-jar", "$APP_HOME/your-app.jar"]
解释:
1. FROM:指定基础镜像,这里使用openjdk8作为Java运行环境。
2. MAINTAINER:维护者信息。
3. ENV:设置环境变量,这里设置APP_HOME为/app。
4. RUN:运行命令,这里创建/app目录。
5. ADD:将宿主机上的your-app.jar添加到容器的/app目录。
6. EXPOSE:暴露容器端口80807. CMD:容器启动命令,这里为运行Jar包的命令。
# 基础镜像使用Java开发环境
FROM java:8

# 设置工作目录
WORKDIR /app

# 添加Jar文件
ADD demo.jar /app/demo.jar

# 设置环境变量
ENV JAVA_OPTS=""

# 运行Jar文件   
ENTRYPOINT ["java","-jar","/app/demo.jar"]

# 默认命令行参数     
CMD ["--spring.profiles.active=prod"]
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7760829
  • 你也可以参考下这篇文章:docker 制作jar包 镜像 运行
  • 除此之外, 这篇博客: docker部署jar包项目(看这一篇入门)中的 5.比较重要的一点导出自己的镜像 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    使用场景:项目需要迁移,或者去用户现场部署,或者交给运维人员部署都要用到

    先查询自己的镜像的id

    docker images

     复制id并导出

    docker save -o network-0.0.1.tar network-0.0.1:latest

    如果没有报错的情况下去你的物理机上看下是不是已经导出了

  • 您还可以看一下 刘磊老师的Docker入门与进阶实战(基于Java,通俗易懂,附源码)课程中的 关于Dockerfile小结小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    回答:

    制作包含jar包的docker镜像,需要编写Dockerfile文件,具体文件内容和意义如下:

    1. 拉取一个jdk为1.8的docker image作为基础镜像
    FROM java:8
    
    1. 作者信息
    MAINTAINER author_name
    
    1. 将jar包复制到镜像中,注意替换jar包名称和镜像名称
    ADD your_jar_file jar_name.jar
    
    1. 暴露容器内部的端口,用于外部访问
    EXPOSE port
    
    1. 容器启动后执行的命令
    ENTRYPOINT ["java","-jar","/path/to/your_jar.jar"]
    

    具体实现过程如下:

    1. 在项目目录下创建Dockerfile文件

    2. 编写Dockerfile文件,如下:

    FROM java:8
    ADD crm-0.0.1-SNAPSHOT.jar crm.jar
    EXPOSE 8080
    ENTRYPOINT ["java","-jar","crm.jar"]
    
    1. 构建镜像,执行命令:
    docker build -t my/crm .
    

    其中,"-t"指定镜像名称,"."代表在当前目录下执行构建命令,并且Dockerfile文件就在当前目录下。

    这样就完成了包含jar包的docker镜像的制作。当需要更新镜像时,可以直接更换jar包,重新构建镜像即可。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^