docker启动无法指定配置文件

现象

在使用docker 启动spirng cloud时,其他几个项目都能正常在启动docker时使用

docker run -d -p 8080:8080 --name lkp-server lkp-server --spring.profiles.active=lkpdev

这种方式启动配置来读取响应的配置文件;但是其中有个项目在启动时却在指定配置文件时无法读取;但是在直接启动jar包时可以指定配置文件;那么就说明应该不是java程序打包没有把配置文件打到jar包里的原因;
进入已经启动的容器内部使用ps进行查看容器中启动的java进程:
在这里插入图片描述
可以看到这个项目在启动时是没有加载 --spring.profiles.active配置参数的;下面我来贴一个正常的启动后的程序
在这里插入图片描述
由此可见是一定是在构建docker镜像时哪个步骤出现了问题于是对比Dockerfile文件

对比Dockerfile

  • 启动正常的java程序的配置文件
FROM openjdk:8-jdk-alpine
RUN mkdir /app
ADD target/***.jar  /app/***.jar
WORKDIR /app
ENV JAVA_OPTS=""
ENTRYPOINT ["java","-Duser.timezone=GMT+08 -Djava.security.egd=file:/dev/./urandom -Dfile.encoding=utf-8","-jar","***.jar"]

  • 启动不正常的配置文件
FROM openjdk:8-jdk-alpine
RUN mkdir /app
ADD target/***.jar  /app/***.jar
WORKDIR /app
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Dfile.encoding=utf-8 -jar csizg-***.jar" ]
EXPOSE 8080

问题是出现在这 ENTRYPOINT 参数中 又指定了一下 $JAVA_OPTS 导致了无法在启动时读取到启动时加载的参数

你可能感兴趣的:(问题记录)