【发布时间】:2020-11-09 02:58:50
【问题描述】:
我正在 docker 中迁移一个 java 独立的 maven 项目。到目前为止,我们为这个 maven 项目创建了一个 jar 文件,它使用 public static void main 方法运行。
java -cp app.jar com.xxx.ExportManager db.properties
完成此代码后,它会在当前目录中导出一个文件。
Dockerfile
FROM centos:7
RUN yum install -y \
java-1.8.0-openjdk \
java-1.8.0-openjdk-devel
ENV JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk/
ENV echo $JAVA_HOME
RUN java -version
ARG JAR_FILE=target/manager.jar
ARG JAR_LIB_FILE=target/lib/
WORKDIR /opt/manager/app/
COPY ${JAR_FILE} app.jar
COPY conf/db.properties /opt/manager/app/db.properties
ADD ${JAR_LIB_FILE} lib/
ENTRYPOINT ["java","-jar","app.jar"]
命令:
- 建筑图片:
docker build -t pc . - 运行main方法:
docker run -t pc /opt/manager/app/db.properties
运行后,它会将图像中的文件(我确定因为我已经通过记录器检查过)导出到 /opt/manager/app/。但是当我使用命令查看图像的内容时
docker run -it --entrypoint sh pc
cd /opt/manager/app
该目录没有导出文件,但它包含所有其他项目文件。
如何在图片中保留导出的文件?
PS:我是docker新手,如有错误请见谅。
【问题讨论】:
标签: java docker maven dockerfile