Я просто хочу прояснить ситуацию, поэтому отвечаю на свой вопрос для тех, у кого такая же "проблема". Кредит go @Matt Schuchard за то, что он указал мне правильное направление:
Я уже знал, что секреты существуют, но я неправильно использовал их в своем Jenkinsfile. Вместо того, чтобы использовать переменную среды с параметризованной сборкой, я использовал Secret по его ID напрямую:
pipeline {
agent any
stages {
stage('prepare .env') {
steps {
sh "> .env"
withCredentials([string(credentialsId: 'dice_master_env', variable: 'SECRET')]) {
sh "echo ${SECRET} > .env"
}
}
}
stage('build') {
steps {
sh 'docker build -t telegram-bot .'
}
}
stage('deploy') {
steps {
sh 'docker-compose up -d'
}
}
}
}
Теперь это работает, и учетные данные никогда не передаются в репозиторий git. В конечном счете, это это короткое руководство решило мою проблему.