Spring boot Openshift如何启动一个胖罐子
我在Openshift上部署了一个带有Spring boot胖jar的映像。我的图像基于redhat-openjdk18-openshift:1.2 我的应用程序启动良好,我在终端中看到以下内容Spring boot Openshift如何启动一个胖罐子,spring-boot,openshift,fatjar,Spring Boot,Openshift,Fatjar,我在Openshift上部署了一个带有Spring boot胖jar的映像。我的图像基于redhat-openjdk18-openshift:1.2 我的应用程序启动良好,我在终端中看到以下内容 Starting the Java application using /opt/run-java/run-java.sh ... exec java -javaagent:/opt/jolokia/jolokia.jar=config=/opt/jolokia/etc/jolokia.propert
Starting the Java application using /opt/run-java/run-java.sh ...
exec java -javaagent:/opt/jolokia/jolokia.jar=config=/opt/jolokia/etc/jolokia.properties
-XX:+UseParallelGC -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=40
-XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -XX:MaxMetaspaceSize=100m
-XX:+ExitOnOutOfMemoryError -cp . -jar /deployments/MYAPPLICATION.jar
我的问题是:
…源策略:
…发件人:
……种类:ImageStreamTag
……名称:“redhat-openjdk18-openshift:1.2”
……名称空间:openshift 然后像: oc start build$SERVICE\u NAME--from file=my-app.jar
另外,您链接的文档正是我所遵循的。见上文第(2)步。然后我把Jolokia的东西弄丢了。我想我正在寻找一种方法,jo只是扩展现有的入口点,而不是重载它。命令
execjava-javaagent:/opt/jolokia/jolokia.jar=config=/opt/jolokia/etc/jolokia.properties
是容器的入口点,它是容器运行时执行的命令和参数。在生成图像时设置入口点
您没有说明要使用什么策略来构建映像,但是如果您希望对入口点和其他容器参数进行更多控制,那么可以使用。使用此方法可以完全控制图像,因此可以设置环境变量、参数和参数等
如果您不想麻烦构建配置,那么您可以使用Dockerfile在Openshift外部构建映像,然后直接将映像部署到Openshift。给你
编辑:
另外,我认为您仍然可以使用当前正在尝试的方法,但是您需要手动将Jolokia参数添加到规范中,但我认为最好的方法仍然是在构建配置中配置所有内容,您可以控制整个映像的入口点和参数,而不是覆盖现有入口点。下面是在容器中运行命令的示例
编辑:
根据您提供的更新,我认为切换到docker策略仍然是您的最佳选择。源代码策略只是自动为您构建映像,但正如我上面提到的,dockerfile策略将允许您控制整个构建过程。以下是内联dockerfile的示例:
apiVersion: v1
kind: BuildConfig
metadata:
annotations:
description: Defines how to build the application
labels:
application: MYAPPLICATION
name: MYAPPLICATION
namespace: PROJECT_NAME
spec:
output:
to:
kind: ImageStreamTag
name: MYAPPLICATION:latest
source:
binary: {}
dockerfile: |-
FROM redhat-openjdk18-openshift:1.2
COPY deployments/* /
ENTRYPOINT java -jar MYAPPLICATION.jar
type: Binary
strategy:
dockerStrategy:
from:
kind: ImageStreamTag
name: redhat-openjdk18-openshift:1.2
type: Docker
这样,您就可以通过复制现有命令并添加所需的任何其他内容来扩展入口点。如果项目中还没有openjdk映像流,您可能必须在项目中创建它。更新了我的答案。我仍然认为docker策略会给你最大的灵活性。