Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 带docker构建mvn的Spring引导Spring引导:带jvm参数的构建映像_Spring Boot_Docker_Docker Compose - Fatal编程技术网

Spring boot 带docker构建mvn的Spring引导Spring引导:带jvm参数的构建映像

Spring boot 带docker构建mvn的Spring引导Spring引导:带jvm参数的构建映像,spring-boot,docker,docker-compose,Spring Boot,Docker,Docker Compose,我正在尝试使用以下命令为我的spring boot docker构建docker映像 mvn spring-boot:build-image 下面是我的docker-compose.yml 版本:“3.3” 服务: spring启动容器: 端口: - '7000:7000' 环境: -SPRING\u PROFILES\u ACTIVE=${environment} -JASYPT_ENCRYPTOR_PASSWORD=${JASYPT_ENCRYPTOR_PASSWORD} -cloud\u

我正在尝试使用以下命令为我的spring boot docker构建docker映像

mvn spring-boot:build-image
下面是我的docker-compose.yml

版本:“3.3”
服务:
spring启动容器:
端口:
- '7000:7000'
环境:
-SPRING\u PROFILES\u ACTIVE=${environment}
-JASYPT_ENCRYPTOR_PASSWORD=${JASYPT_ENCRYPTOR_PASSWORD}
-cloud\u config\u uri=${cloud\u config\u uri}
-“JAVA_OPTS=-Dspring.cloud.config.uri=http://localhost:8888"   
图片:“artifactory.cloud.health.com/docker all/spring\u boot\u app:latest”
重新启动:始终
容器名称:spring\u boot\u应用程序
但是我的spring boot应用程序没有提供正确的配置文件,也没有选择java选项

基本上,在旧的方法中,我创建dockerfile,然后给出我经过的
-Dspring.active.profiles
入口点


但是由于我们使用了mvn spring boot:build image,我不知道如何传递这些入口点变量。

好的,最后解决了它的语法问题。下面的写作环境的工作方式

        environment:
            - JAVA_OPTS=
                -Dspring.profiles.active=${environment}
                -Dspring.cloud.config.enabled=true
                -Dspring.cloud.config.uri=${cloud_config_uri}
                -Djasypt.encryptor.password=${JASYPT_ENCRYPTOR_PASSWORD}

好的,终于解决了它的语法问题。下面的写作环境的工作方式

        environment:
            - JAVA_OPTS=
                -Dspring.profiles.active=${environment}
                -Dspring.cloud.config.enabled=true
                -Dspring.cloud.config.uri=${cloud_config_uri}
                -Djasypt.encryptor.password=${JASYPT_ENCRYPTOR_PASSWORD}

为什么不直接传递
SPRING\u PROFILES\u ACTIVE=dev
?为什么会有如此复杂的决议?此外,除非您使用
JAVA\u OPTS
执行某些操作,否则它不会执行任何操作。
be remove?我们在compose文件中传递它的位置和方式,这不仅仅是关于spring概要文件,我还有许多参数要传递。您当前有两个与概要文件相竞争的属性,只有一个将保留。我怀疑是命令行中的一个,如果JAVA_OPTS一开始不存在,它也不会使用JAVA_OPTS。还有什么是
${environment}
如果无法解决,它将出错。对于配置文件,是的,我同意,但这一切都不起作用。我只是想证明我在这两个地方都试过了${environment}是env,我正在使用export命令进行密码传递。当然,这是行不通的。
${environment}
将在docker容器内解析,而不是在本地系统上解析。为什么不简单地传递
SPRING\u PROFILES\u ACTIVE=dev
?为什么会有如此复杂的决议?此外,除非您使用
JAVA\u OPTS
执行某些操作,否则它不会执行任何操作。
be remove?我们在compose文件中传递它的位置和方式,这不仅仅是关于spring概要文件,我还有许多参数要传递。您当前有两个与概要文件相竞争的属性,只有一个将保留。我怀疑是命令行中的一个,如果JAVA_OPTS一开始不存在,它也不会使用JAVA_OPTS。还有什么是
${environment}
如果无法解决,它将出错。对于配置文件,是的,我同意,但这一切都不起作用。我只是想证明我在这两个地方都试过了${environment}是env,我正在使用export命令进行密码传递。当然,这是行不通的。
${environment}
将在docker容器内解析,而不是在本地系统上解析。