Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Kubernetes doesn't find a jar file

I'm using this Dockerfile configuration

FROM openjdk:17-alpine

ARG APP_HOME=/app

WORKDIR $APP_HOME

COPY ./target/ws-exec.jar ws.jar

ENV JAVA_OPTS="-Dspring.profiles.active=prod -Dspring.application.name=words"

ENTRYPOINT java $JAVA_OPTS -jar ./ws.jar $JAVA_ARGS

After deploying it to minikube, I see the only log: Error: Unable to access jarfile /ws.jar.

I've tried to run docker run -it <image> with my image's name, and it successfuly started with docker. Running docker exec -it <container> shew me that the jar is present in the right folder. I tried to make the jar executable adding a CMD or RUN layer into my Dockerfile, but nothing helped. Where is my mistake, or what I don't understand?

UPD here is my deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: revise-words-ws
  name: revise-words-ws
  namespace: default
spec:
  replicas: 1
  minReadySeconds: 45
  selector:
    matchLabels:
      app: revise-words-ws
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: revise-words-ws
    spec:
      containers:
        - image: maxrybalkin91/revise-words-ws:1.0
          imagePullPolicy: IfNotPresent
          name: revise-words-ws
          env:
            - name: VAULT_TOKEN
              valueFrom:
                secretKeyRef:
                  name: words
                  key: vault_token
            - name: VAULT_HOST
              valueFrom:
                secretKeyRef:
                  name: words
                  key: vault_host
            - name: VAULT_PORT
              valueFrom:
                secretKeyRef:
                  name: words
                  key: vault_port
          ports:
            - name: liveness-port
              containerPort: 8089
          resources:
            requests:
              cpu: 100m
              memory: 256Mi
            limits:
              cpu: 300m
              memory: 512Mi
          readinessProbe:
            httpGet:
              path: /
              port: liveness-port
            failureThreshold: 5
            periodSeconds: 10
            initialDelaySeconds: 60
          livenessProbe:
            httpGet:
              path: /
              port: liveness-port
            failureThreshold: 5
            periodSeconds: 10
            initialDelaySeconds: 60
            terminationGracePeriodSeconds: 30
      restartPolicy: Always
like image 979
Maksym Rybalkin Avatar asked Nov 29 '25 17:11

Maksym Rybalkin


1 Answers

As ENTRYPOINT you specify Java to run ./ws.jar, assuming it would resolve from within work directory /app. At runtime you get the error message that /ws.jar is not accessible, which looks like an absolute path.

When running your container with /bin/bash, please check out where your jar file exists and which mode it has. Then decide who is right and who is broken: Your docker file or your error message. Fix the broken one.

like image 110
Hiran Chaudhuri Avatar answered Dec 02 '25 05:12

Hiran Chaudhuri



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!