2017-02-16 33 views
0

我有一個Dockerfile,它使用Jenkins Swarm插件來啓動Jenkins從屬節點。我在這張圖片中有一個非root用戶「jenkins」設置。 jenkins用戶有nvm設置。我正在嘗試使用serverspec測試這個Docker鏡像,我似乎無法找到一種方法在服務器spec文件中以非root用戶身份運行命令。測試Dockerfile使用Serverspec在非root用戶上運行

這確認了用戶詹金斯安裝:

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 

尋找使用serverspec進行此項工作的幫助。任何幫助將不勝感激。

+0

什麼是錯誤信息? – BMW

+0

@BMW當我做「whoami」我期待「詹金斯」,但我得到根。並在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 
相關問題