起重臂maven弹簧靴外形
在我的springboot项目中,有三个配置文件 application.yml-->用于本地开发起重臂maven弹簧靴外形,maven,spring-boot,docker,environment,jib,Maven,Spring Boot,Docker,Environment,Jib,在我的springboot项目中,有三个配置文件 application.yml-->用于本地开发 application-test.yml-->在测试环境中运行 application-prod.yml-->在生产环境中运行 pom.xml 。。。 自我ip:端口 ... org.springframework.boot springbootmaven插件 com.google.cloud.tools jib maven插件 1.7.0 真的 openjdk:8-jre-alpine ${do
application-test.yml-->在测试环境中运行
application-prod.yml-->在生产环境中运行 pom.xml
。。。
自我ip:端口
...
org.springframework.boot
springbootmaven插件
com.google.cloud.tools
jib maven插件
1.7.0
真的
openjdk:8-jre-alpine
${docker repository}/${project.groupId}/${project.artifactId}
使用\u当前\u时间戳
$JAVA_选项
-文件编码=UTF-8
-XX:+UseG1GC
-详细说明:gc-XX:+PrintGCDetails-XX:+PrintGCDateStamps-XX:+PrintGCTimeStamps-Xloggc:/var/log/gc.log
-Djava.security.egd=文件:/dev//uradom
然后推到我自己的私人docker存储库,没问题
mvn-DsendCredentialsOverHttp=true jib:build
在不同的机器上运行
#在我的测试机器上,我想这样运行
docker运行--名称测试xxx-d\
-第8080:8080页-第9080:9080页\
-e JAVA_OPTS=“-Xms256m-Xmx256m-Dspring.profiles.active=test-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9080”\
-v~/logs:/logs\
自身ip:port/xxx/yyy
#在我的生产机器上,我想这样运行
docker run--名称prod xxx-d\
-p 8080:8080\
-e JAVA_OPTS=“-server-Xms1G-Xmx1G-Dspring.profiles.active=prod”\
-v/mnt/logs:/logs\
自身ip:port/xxx/yyy
当我在测试机上运行时,它失败了
docker container ls -al
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
XXXXXXXXXXXX xxx "java $JAVA_OPTS -Df…" 3 seconds ago Exited (1) 2 seconds ago test-xxx
我的期望是这样的
#试验机
java-Xms256m-Xmx256m-Dspring.profiles.active=test\
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9080\
-Dfile.encoding=UTF-8-XX:+UseG1GC-verbose:gc\
-XX:+PrintGCDetails-XX:+PrintGCDateStamps\
-XX:+PrintGCTimeStamps-Xloggc:/logs/gc.log\
-Djava.security.egd=文件:/dev//uradom\
-cp/app/resources:/app/classes:/app/libs/*\
xxx.yyy.main类
#生产机器
java-server-Xms1G-Xmx1G-dsspring.profiles.active=prod\
-Dfile.encoding=UTF-8-XX:+UseG1GC-verbose:gc\
-XX:+PrintGCDetails-XX:+PrintGCDateStamps\
-XX:+PrintGCTimeStamps-Xloggc:/logs/gc.log\
-Djava.security.egd=文件:/dev//uradom\
-cp/app/resources:/app/classes:/app/libs/*\
xxx.yyy.main类
我应该如何配置它<代码>容器-->环境或dockerClient-->环境
?我在文档中没有找到任何相关的例子,它们都只是一句话
更新1 Hi@Haran I将
$JAVA_OPTS
修改为JAVA_TOOL_OPTS
并重新发布
并在测试中运行
docker容器rm测试xxx
docker运行--名称测试xxx-d\
-p 8080:8080\
-e“JAVA_TOOL_OPTIONS=-Xms256m-Xmx256m-Dspring.profiles.active=test-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9080”\
ip:port/xx/yy
它也运行失败
$docker容器ls-al
容器ID映像命令已创建状态端口名称
XXXXXXXXXXXXXXX“java$java\u工具\u选项-Df…”3秒前退出(1)2秒前测试xxx
然后我删除$JAVA_TOOL_OPTS并重复上面的repush和docker rm&run
,运行成功,但没有自定义环境
$docker exec-it测试xxx ps auxf
PID用户时间命令
1 root 0:05 java-Dfile.encoding=UTF-8-XX:+UseG1GC-verbose:gc-XX:+P
59根0:00 ps auxf
$docker ps--无trunc
容器ID映像命令已创建状态端口名称
xx yy“java-Dfile.encoding=UTF-8-xx:+UseG1GC'-verbose:gc-xx:+PrintGCDetails-xx:+PrintGCDateStamps-xx:+PrintGCTimeStamps-Xloggc:/logs/gc.log'-Djava.security.egd=file:/dev//uradom-cp/app/resources:/app/classes:/app/libs/*xx.yy.MainClass”34秒前到34秒0.0.0.0.0:8080->/tcp测试xxx
更新2
docker-e…
命令的引号在内部和外部没有区别
$docker run——名称测试xxx-d-p8080:8080\
-e JAVA_TOOL_OPTIONS=“-Xms256m-Xmx256m-Dspring.profiles.active=test-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9080”\
ip:port/xx/yy
xxxxx
$docker exec-it测试xxx环境
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin
主机名=4a7c5045109b
术语=xterm
JAVA_TOOL_OPTIONS=-Xms256m-Xmx256m-Dspring.profiles.active=test-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9080
JAVA_HOME=/usr/lib/jvm/JAVA-1.8-openjdk/jre
JAVA_版本=8u212
JAVA_ALPINE_版本=8.212.04-r0
LANG=C.UTF-8
HOME=/root
$docker运行--名称test-xxx1-d-p 8081:8080\
-e“JAVA_TOOL_OPTIONS=-Xms256m-Xmx256m-Dspring.profiles.active=test-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9080”\
ip:port/xx/yy
xxxx
$docker exec-it测试-xxx1环境
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin
主机名=ae333ad8836f
术语=xterm
JAVA_TOOL_OPTIONS=-Xms256m-Xmx256m-Dspring.profiles.active=test-agentlib:jdwp=t
$ docker run ... -e "JAVA_TOOL_OPTIONS=..."
$ JAVA_TOOL_OPTIONS=-Xmx256m java ABCD # no need to pass extra arguments
Picked up JAVA_TOOL_OPTIONS: -Xmx256m
Error: Could not find or load main class ABCD
$ docker run -e "JAVA_TOOL_OPTIONS=-Xmx256m" --entrypoint java openjdk:11 ABCD
Picked up JAVA_TOOL_OPTIONS: -Xmx256m
Error: Could not find or load main class ABCD
Caused by: java.lang.ClassNotFoundException: ABCD
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>2.2.0</version>
<configuration>
<to>
<image>image-url</image>
</to>
<container>
<creationTime>${maven.build.timestamp}</creationTime>
<mainClass>com.package.SpringBootMainClass</mainClass>
<args>
<arg>--spring.config.location=/demo/location/application.yml</arg>
</args>
</container>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>