2016-10-24 26 views
1

Rscriptにシェル環境変数を渡す方法はありますか?例:シェル環境変数をRscriptに渡す

Rscript -e 'devtools::install_github("private/repo",auth_token = "$GITHUB_CRED")' 

これを試したところ、リテラル文字が渡されました。別の方法があるのだろうか?

+0

おそらく 'auth_token = shell(" $ GITHUB_CRED "、intern = TRUE)'ですか? –

+0

私はそれを撃つつもりです。私は現在、ファイルにプッシュしてから 'readLines()'を実行するハックな解決策を持っています –

+0

argsはどうですか? 'Rscript -e 'args < - commandArgs(trailingOnly = TRUE);ペースト( "bla"、args [1]) 'myPassword' – zx8754

答えて

0

ビットばかげているようだが、:

echo $GITHUB_CRED > file.txt 
Rscript -e 'devtools::install_github("private/repo",auth_token = readLines("file.txt"))' 

私は私のパッケージリポジトリに関連付けられているDockerfilesに私のすべての設定を保存できるように、私はドッキングウィンドウ-スレーブ・プラグインでジェンキンスビルド(S)でこれを使用しています(クリーンビルド)

0

Sys.getenvを試しましたか?質問の狭い意味で

Rscript -e 'devtools::install_github("private/repo", auth_token=Sys.getenv("GITHUB_CRED"))' 
+0

私は今それを試してみるつもりです。ありがとう@Hong Ooi –

+0

これは動作しませんでした –

+0

'Sys.getenv'は正しい値を取得しますか?あなたはそれを印刷して確認することができます。 –

0

:「はい、Rscript缶」:GitHubの資格情報を扱うためのよう

[email protected]:~$ SOME_VAR="some value" Rscript -e 'print(Sys.getenv("SOME_VAR"))' 
[1] "some value" 
[email protected]:~$ 

は、適切なGitHubのクライアントを経由して利用できる、おそらくより良い解決策があります。あなたは(優秀で推奨されている)git2rパッケージを試しましたか?

+0

いいえ、私は 'git2r'を試していません。主な問題点は、CIシステムによって構築されているDockerfileに環境変数として渡していることです。だから、従来のアプローチのどれも働いていない。 –

+0

私はセキュリティ専門家ではありませんが、そのスペースで働いている人もいます。車輪を再開発しないでください - Docker、git、資格情報の周りにいくつかのGoogle検索を行います... –

+0

Even Dockerには、秘密を共有するための明確な戦略がありません。今のところすべてがセキュリティ上の問題を抱えるハックです。あなたの読書の喜びのためにhttps://github.com/docker/docker/issues/13490 –

関連する問題