2017-02-16 18 views
0

У меня есть файл Dockerfile, который вращает узлы Jenkins с использованием плагина Jenkins Swarm. На этом изображении у меня есть некорректная настройка пользователя jenkins. Для пользователя jenkins установлена ​​nvm. Я пытаюсь проверить это изображение Docker с помощью serverpec, и я не могу найти способ запустить команду в качестве пользователя без полномочий root в файле спецификаций сервера.Тестирование файла Docker, который работает на пользователя без root, используя Serverspec

Это подтверждает, что установлен Дженкинс пользователя:

describe user('jenkins') do 
    it { should exist } 
    it { should belong_to_primary_group 'jenkins' } 
    end 

Но я не могу показаться, чтобы сделать эту работу:

describe command('whoami') do 
    let(:sudo_options) { '-u jenkins -i' } 
    its(:stdout) { should match 'jenkins' } 
    end 

Я даже пытался что-то вроде этого:

describe command('sudo -u jenkins nvm --version') do 
    its(:stdout) { should match(/0.33.0/) } 
    end 

Ищет помощь в создании этой работы с сервером. Любая помощь будет оценена.

+0

Какое сообщение об ошибке? – BMW

+0

@BMW Когда я делаю «whoami», я ожидаю «jenkins», но я возвращаюсь к корню. И в nvm -версии я ожидаю «0.33.0», но я возвращаюсь » –

ответ

0

Это решило это для меня. Если кто-то, кто читает это сообщение, имеет лучший способ сделать это, пожалуйста, дайте мне знать.

describe command("node --version") do 
    its(:stdout) { should match(/5.10.0/) } 
    end 

    describe command("su - jenkins -c 'node --version'") do 
    its(:stdout) { should match(/6.9.5/) } 
    end 

    describe command("su - jenkins -c 'nvm --version'") do 
    its(:stdout) { should match(/0.33.0/) } 
    end 

    describe command("su - jenkins -c 'nvm use 4.7.3'") do 
    its(:stdout) { should match(/4.7.3/) } 
    end