Настройка
Я настроил GitLab Runner с KubernetesExecutor и хочу создать пользовательский образ помощника, который добавляет некоторые дополнительные файлы в контейнер сборки.
Текущая настройка довольно проста c:
- A
Dockerfile
, который добавляет некоторые файлы (start.sh
и Dockerfile
) в контейнер. - A
start.sh
файл, который присутствует в вспомогательное изображение. Это должно выполняться при запуске помощника.
Код
start. sh
#!/bin/bash
printenv > /test.out # Check whether the script is run.
cp /var/Dockerfile /builds/Dockerfile # Copy file to shared volume.
exec "$@"
Dockerfile
FROM gitlab/gitlab-runner-helper:x86_64-latest
ADD templates/Dockerfile /var/Dockerfile
ADD start.sh /var/run/start.sh
ENTRYPOINT ["sh", "/var/run/start.sh"]
Общий объем между контейнерами: /builds
. Поэтому я хотел бы скопировать /var/Dockerfile
в /builds/Dockerfile
.
Проблема
Не могу найти способ (даже) запустить start.sh
, когда помощник изображение выполнено. Используя kubectl exec -it pod-id -c build bash
и kubectl exec -it pod-id -c helper bash
, я проверяю, созданы ли файлы. Когда я запускаю start.sh
(вручную) из последней команды, файлы копируются. Однако ни /test.out
, ни /builds/Dockerfile
недоступны при первоначальном входе в образ помощника.
Попытки
- Я пытался настроить другой
CMD
(/var/run/start.sh
), но, похоже, он просто не запускает файл sh
.