我在Openshift上使用Spring-boot fat-jar部署映像。我的图片基于redhat-openjdk18-openshift:1.2。
我的应用程序启动正常,我在终端中看到以下内容
order_status
我的问题是:
但是,然后我松开了上面的Jolokia东西。有更好的方法吗?
更新: 我使用以下策略:
策略:
..sourceStrategy:
.... from:
......种类:ImageStreamTag
......名称:'redhat-openjdk18-openshift:1.2'
......名称空间:openshift
然后像: oc开始构建$ SERVICE_NAME --from-file = my-app.jar
此外,您链接的文档也正是我所遵循的。参见上面的步骤(2)。然后我松开Jolokia的东西。我想我正在寻找一种方法来让jo扩展现有的Entrypoint,而不是对其进行重载。
答案 0 :(得分:1)
命令exec java -javaagent:/opt/jolokia/jolokia.jar=config=/opt/jolokia/etc/jolokia.properties
是容器的入口点,是运行容器时执行的命令和参数。构建图像时设置入口点。
您没有说要使用什么策略来构建映像,但是如果您想进一步控制入口点和其他容器参数,则可以使用Docker strategy。使用此方法可以完全控制图像,因此可以设置诸如环境变量,参数和参数之类的东西。
如果您不想打扰构建配置,则可以使用Dockerfile在Openshift外部构建映像,然后将映像直接部署到openshift。这是Dockerfile tutorial。
编辑:
此外,我认为您仍然可以使用当前正在尝试的方法,但是您需要手动将Jolokia args添加到规范中,但是我认为最好的方法仍然是在构建配置中配置所有内容您可以在其中控制整个图像的入口点和参数,而不是覆盖现有入口点。这是documentation,用于在容器内运行命令。
编辑:
根据您提供的更新,我认为切换到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图像流,则可能需要创建它。