I using Jenkins with Kubernetes slave. (Kubernetes plugin)
I want to build docker multi-stage. In maven build state I want to use local repository. (config in settings.xml)
I already created configmap on K8S and mounted while running build job.
agent {
kubernetes {
yaml '''
apiVersion: v1
kind: Pod
spec:
volumes:
- name: docker-socket
emptyDir: {}
- configMap:
defaultMode: 420
name: nexus-xml-test
name: config-vol
containers:
- name: docker-pod
image: docker:19.03.1
command:
- cat
tty: true
volumeMounts:
- name: docker-socket
mountPath: /var/run
- mountPath: /root/.m2
name: config-vol
- name: docker-daemon
image: docker:19.03.1-dind
securityContext:
privileged: true
volumeMounts:
- name: docker-socket
mountPath: /var/run
'''
}
}
And I Already verify that settings.xml is already mounted.
2022-09-13 17:27:54 + cd /root/.m2
2022-09-13 17:27:54 + ls
2022-09-13 17:27:54 settings.xml
In dockerfile. I added this command.
RUN mvn -s /root/.m2/settings.xml
But when i build. It cannot find settings.xml
2022-09-13 17:45:48 Step 2/10 : RUN mvn -s /root/.m2/settings.xml
2022-09-13 17:45:51 ---> Running in e779f9fcf9b6
2022-09-13 17:45:52 [ERROR] Error executing Maven.
2022-09-13 17:45:52 [ERROR] The specified user settings file does not exist: /root/.m2/settings.xml
2022-09-13 17:45:52 The command '/bin/sh -c mvn -s /root/.m2/settings.xml' returned a non-zero code: 1
Please help suggest.