Я бы хотел запустить govc
команды в конвейере Jenkins. Запуск контейнера govc
вручную работает:
docker pull vmware/govc && docker run -e GOVC_USERNAME=$GOVC_USERNAME -e GOVC_PASSWORD=$GOVC_PASSWORD -e GOVC_INSECURE=$GOVC_INSECURE vmware/govc find -u=$GOVC_URL / -type m
По какой-то причине короткая версия переменной среды передачи (-e ENV_VAR
) не работает с этим изображением, и я должен ввести GOVC_URL в качестве аргумента govc
, но кроме этого команда возвращает правильный вывод.
Это конвейер, который я написал для команды:
pipeline {
agent {
docker { image 'vmware/govc' }
}
stages {
stage('test govc') {
steps {
script {
def govcEnvVars = [
GOVC_INSECURE: 1,
GOVC_USERNAME: 'my_user',
GOVC_PASSWORD: 'my_password',
GOVC_URL: 'my_url'
]
withEnv(govcEnvVars.collect { k, v -> "${k}=${v}" }) {
sh "govc find -u=$GOVC_URL / -type m"
}
}
}
}
}
}
Теперь, какую бы команду я ни пытался для запуска я всегда получаю следующее сообщение об ошибке в журнале консоли:
ERROR: The container started but didn't run the expected command. Please double check your ENTRYPOINT does execute the command passed as docker run argument, as required by official docker images (see https://github.com/docker-library/official-images#consistency for entrypoint consistency requirements).
Alternatively you can force image entrypoint to be disabled by adding option `--entrypoint=''`.
Что я делаю не так?