Search code examples
kubernetesdockerfile

I want to use commands and args section in deployment.yaml file instead of Entrypoint in dockerfile


I want to replace entrypoint in dockerfile by using commands and args in deployment.yaml "

ENTRYPOINT source /vault/secrets/keystoreinfo && exec java -Djava.security.egd=file:/dev /.urandum -jar /app.jar

The problem is how to use source command alongwith java command.

deployment.yaml

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
  labels:
    app: xyz
spec:
  replicas: 3
  selector:
    matchLabels:
      app: xyz
  template:
    metadata:
      labels:
        app: xyz
    spec:
      containers:
      - name: somename
        image: image
        command: ["java"]
        args: ["-Djava.security.egd=file:/dev /.urandum" , "-jar", "/app.jar"
        ports:
        - containerPort: 80

Solution

  • You should be using a shell as an entrypoint for that, e.g.:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-deployment
      labels:
        app: xyz
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: xyz
      template:
        metadata:
          labels:
            app: xyz
        spec:
          containers:
          - name: somename
            image: image
            command: ["sh"]
            args: ["-c" , "source /vault/secrets/keystoreinfo && exec java -Djava.security.egd=file:/dev /.urandum -jar /app.jar"]
            ports:
            - containerPort: 80