Я использую плагин kubernetes для настройки конвейера на jenkins для компиляции некоторого кода.
МОЯ ЦЕЛЬ:
В этом конвейере япытаюсь получить доступ к некоторым данным из док-контейнера, чтобы использовать их в качестве кэша за секунду (как показано ниже).
apiVersion: v1
kind: Pod
metadata:
name: cache-test
spec:
restartPolicy: Never
volumes:
- name: shared-data
emptyDir: {}
containers:
- name: cache-container
image: cache:latest
volumeMounts:
- name: shared-data
mountPath: /cache
command:
- cat
- name: debian-container
image: debian
volumeMounts:
- name: shared-data
mountPath: /pod-data
command:
- cat
ПРОБЛЕМА:
Моя проблемачто, когда я монтирую shared-folder
в /cache
напрямую, все мои данные стираются (перезаписываются).
РАБОТАЕТ В РАБОТЕ:
Один из способов - создатьпромежуточный каталог, куда я могу скопировать свои данные:
apiVersion: v1
kind: Pod
metadata:
name: cache-test
spec:
restartPolicy: Never
volumes:
- name: shared-data
emptyDir: {}
containers:
- name: cache-container
image: cache:latest
volumeMounts:
- name: shared-data
mountPath: /shared-folder
command:
- cat
- name: debian-container
image: debian
volumeMounts:
- name: shared-data
mountPath: /pod-data
command:
- cat
И в моем конвейере Jenkins добавьте этот шаг:
container('cache-container') {
sh """#!/usr/bin/env bash
set -exu
cp -r /cache/* /shared-folder
"""
} // container
ВОПРОС:
Есть лиспособ избежать этого шага копирования? Может быть, настройка громкости kubernetes, которая не перезаписывает содержимое контейнера? Я просмотрел документацию пару раз, не найдя ничего ..