現在、エントリポイントを使用してDockerイメージを構築し、このイメージをKubernetesデプロイメントに渡します。
エントリポイントを直接Kubernetesに動的に渡して、Spring Bootアプリケーションを開始する方法はありますか?
このエントリポイントをKubernetesで直接渡すさまざまな方法は何ですか?
### Runtime image ###
FROM openjdk:8-jre-Alpine
#Set working dir
WORKDIR /test
# Copy the executable JAR
COPY /*.jar /test/
# Run the app
ENTRYPOINT Java -Djava.security.egd=file:/dev/./urandom -Djsversion=1.0 -D<variable>=<service-1> -D<variable>=<service-2> -jar *.jar
K8sデプロイメントマニフェストでcommand
を使用できます。
containers:
- name: mycontainer
env:
- name: NAME
value: VALUE
command: [ "Java"]
args: ["-jar", "-D..."]
Dockerコンテナに渡したい残りの環境変数と一緒にkubernetesデプロイメントyamlファイルに含めることもできます。
- name: Java_OPTS
value: >-
-Djava.security.egd=file:/dev/./urandom
-Djsversion=1.0 -D<variable>=<service-1> -D<variable>=<service-2>
- name: SERVER_PORT
value: 8080
ポッドの構成で環境変数として設定できます
env:
- name: MY_POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: profile
value: "dev"
その後、Dockerfileのようにそれらを使用します
CMD ["sh", "-c", "Java -jar -Dspring.profiles.active=$profile rest.war"]