'Using PersistentStorage to my workdir deletes everything?

I'm using a PersistentVolume and a Claim and then mounting it to my workdir '/server' to create a simple Minecraft server using K8s, and when I deploy it the jar file isn't there anymore?enter image description here

deployment.yaml
---------------
    spec:
      volumes:
        - name: minecraft-pvstorage
          persistentVolumeClaim:
            claimName: minecraft-pvclaim
      containers:
        - name: minecraft-deployment
          image: localhost:32000/minecraft:1.18.2-new
          imagePullPolicy: Always
          ports:
            - containerPort: 30007
          volumeMounts:
            - name: minecraft-pvstorage
              mountPath: /server
pv.yaml
-------
apiVersion: v1
kind: PersistentVolume
metadata:
  name: minecraft-pv
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/minecraft"
pvclaim.yaml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: minecraft-pvclaim
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi

Can anyone help me with this? It works when I delete the volumeMounts from the deployment.yaml.



Solution 1:[1]

I figured it out.

In my deployment.yaml I defined a mount for just the world and that ended up saving all of the world data.

deployment.yaml
--------------
volumeMounts:
    - name: minecraft-pvstorage
      mountPath: /server/1.18.2/world
      subPath: world

Solution 2:[2]

When you mount something onto a directory in the image that already has content, the content in the image becomes obscured, i.e. hidden and replaced with the content of the mount.

More info here: https://docs.docker.com/storage/bind-mounts/#mount-into-a-non-empty-directory-on-the-container

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 benjamint08
Solution 2 Hans Kilian