docker启动springboot设置系统参数不生效???

使用docker制作springboot镜像,设置的-D系统参数不生效

# 基础镜像使用java
FROM docker.io/openjdk:11.0.4
# 时区
ENV TZ=Asia/Shanghai
#容器暴露的端口号与springboot配置的端口号一致
EXPOSE 8001
# VOLUME 指定了临时文件目录为/tmp。
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD test.jar app.jar
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom -Djasypt.encryptor.password=123456","-jar","/app.jar"]

由于数据库信息使用了jasypt做的加密处理,但是设置的 -Djasypt.encryptor.password=123456" 并没有生效,导致加密数据无法解密

阅读 4.3k
2 个回答

觉得你的参数本身就是错误的,应该是

ENTRYPOINT ["java","-Djava.security.egd=file://dev/./urandom", "-Djasypt.encryptor.password=123456","-jar","/app.jar"]

注意file:后面是2个斜杠,这样才可能是标准的,因为协议URI的通用写法是

协议名://<主机>/<路径>

此外还怀疑你的路径有问题,这些都需要你从日志输出中去判断。

有日志吗?

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom", "-Djasypt.encryptor.password=123456","-jar","/app.jar"]

改成这样试试,或者用RUN java -Djava.security.egd=file:/dev/./urandom -Djasypt.encryptor.password=123456 -jar /app.jar

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题