2017-02-16 5 views
0

Jenkins Swarmプラグインを使用してJenkinsスレーブノードをスピンアップするDockerfileがあります。私はこのイメージにroot以外のユーザー "jenkins"の設定をしています。 jenkinsユーザーのためのnvmセットアップがあります。私はserverspecを使ってこのDockerイメージをテストしようとしています。サーバースペックファイルでroot以外のユーザーとしてコマンドを実行する方法が見つからないようです。Serverspecを使用して非rootユーザーで実行されるDockerファイルのテスト

これは、ユーザージェンキンスがインストールされていることを確認:

describe command('sudo -u jenkins nvm --version') do 
    its(:stdout) { should match(/0.33.0/) } 
    end 
:私もこのような何かを試してみました

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

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

しかし、私はこの仕事をするように見えることはできません

これをserverspecで機能させるためのヘルプを探しています。どんな助けもありがとう。

+0

エラーメッセージは何ですか? – BMW

+0

@BMW私が "うわさ"をするとき、私は "ジェンキンズ"を期待していますが、私は元に戻ります。そして、nvm --versionでは "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 
関連する問題