【问题标题】:Unable to run docker container with Spring data source arguments无法使用 Spring 数据源参数运行 docker 容器
【发布时间】:2022-01-12 05:20:42
【问题描述】:

我想运行一个带有一些数据源参数的 Docker 容器,就像我在终端上使用 Spring 数据源参数运行 Spring Boot 应用程序一样。例如:

java  -Dserver.port=8999 -Dlogging.org.hibernate.SQL=DEBUG -Dlogging.level.ROOT=DEBUG -Dlogging.level.io.github.jhipster=DEBUG -Dlogging.level.com.opti.ecom=DEBUG -Dlogging.path=/var/log/spring/ecom_v2/ -jar target/LatestBuild/ecom-0.0.1-SNAPSHOT.jar --spring.jpa.show_sql=true --spring.profiles.active=dev,no-liquibase --spring.datasource.url=jdbc:postgresql://aws_database_url --spring.datasource.username=user --spring.datasource.password=password --spring.datasource.hikari.maximum-pool-size=10

我已尝试使用 docker run --env 和上述单个参数,但它不起作用。

我不想在 application.properties 文件中传递这些参数。

Docker 文件:

FROM openjdk:11.0.7-jre-slim

ENV DEMO_ROOT=/root

ADD /target/LatestBuild/ecom-0.0.1-SNAPSHOT.jar $DEMO_ROOT
WORKDIR ${DEMO_ROOT}

CMD  ["java", "-jar", "ecom-0.0.1-SNAPSHOT.jar"]

很高兴在这方面得到一些帮助。 谢谢!

【问题讨论】:

    标签: spring-boot docker


    【解决方案1】:

    您可以specify Spring properties as environment variables,尤其是在容器设置中,这比尝试将它们作为命令行参数传递要容易得多。

    您可以在单个 docker run 命令中编写

    docker run \
      -e SERVER_PORT=8999 \
      -e LOGGING_ORG_HIBERNATE_SQL=DEBUG \
      ...
      -e SPRING_DATASOURCE_HIKARI_MAXIMUM_POOL_SIZE=10 \
      myimage
    

    鉴于设置的数量,您可能会发现将它们放在一个专用文件中更方便,您可以将其传递给docker run --env-file 选项。

    docker run \
      -d \
      -p 8999:8999 \
      --name myapp \
      --env-file spring.env \
      myimage
    

    【讨论】:

      【解决方案2】:

      一个好的做法是使用包含这些配置属性(application.properties)的配置文件

      您可以像这样使用 Docker 文件:

      FROM openjdk:11
      VOLUME /conf
      ADD application.jar app.jar
      RUN sh -c 'touch /app.jar'
      ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar app.jar --spring.config.location=file:/conf/" ]
      EXPOSE 80
      EXPOSE 81
      

      在 /conf 卷中,你应该复制你的 application.properties

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-24
        • 1970-01-01
        • 2021-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-03
        • 1970-01-01
        相关资源
        最近更新 更多