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:暴露容器端口8080。
7. 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"]
不知道你这个问题是否已经解决, 如果还没有解决的话:使用场景:项目需要迁移,或者去用户现场部署,或者交给运维人员部署都要用到
先查询自己的镜像的id
docker images
复制id并导出
docker save -o network-0.0.1.tar network-0.0.1:latest
如果没有报错的情况下去你的物理机上看下是不是已经导出了
回答:
制作包含jar包的docker镜像,需要编写Dockerfile文件,具体文件内容和意义如下:
FROM java:8
MAINTAINER author_name
ADD your_jar_file jar_name.jar
EXPOSE port
ENTRYPOINT ["java","-jar","/path/to/your_jar.jar"]
具体实现过程如下:
在项目目录下创建Dockerfile文件
编写Dockerfile文件,如下:
FROM java:8
ADD crm-0.0.1-SNAPSHOT.jar crm.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","crm.jar"]
docker build -t my/crm .
其中,"-t"指定镜像名称,"."代表在当前目录下执行构建命令,并且Dockerfile文件就在当前目录下。
这样就完成了包含jar包的docker镜像的制作。当需要更新镜像时,可以直接更换jar包,重新构建镜像即可。