3

デフォルトの ENV 変数を使用してDockerfileをセットアップすることができます。これは、Docker コンテナーを実行するときに構成できます。たとえば、Dockerfile には次の行があります。

ENV USERNAME ropensci
ENV EMAIL ropensci@github.com
RUN git config --global user.name $USERNAME
RUN git config --global user.email $EMAIL

偉大な。インタラクティブ セッションを開始すると、次のようになります。

docker run -it --env USERNAME="Carl" --env EMAIL=cboettig@example.com myimage /bin/bash

次にコマンドを発行するgit config --listと、デフォルトではなく、コマンド ラインで指定した値を使用するように git が構成されていることがわかります。

ただし、Dockerfileは RStudio サーバーを実行するようにも構成されており、デーモン モードでイメージを実行するときにブラウザーにログインできます。

docker run -d -p 8787:8787 --env USERNAME="Carl" --env EMAIL=cboettig@example.com cboettig/ropensci-docker

私は localhost:8787 に移動し、RStudio にログインします。これはすべて期待どおりに機能し、git を有効にして新しい「プロジェクト」を開始しますが、RStudio は私の git 名と電子メールを見つけることができません。git config --listRStudio メニューからシェルを開いてorを実行するecho $USERNAMEと、空の値が返されます。/bin/bash では機能するのに、RStudio では機能しないのはなぜですか?どうすれば修正できますか?

4

1 に答える 1

2

git config は /.gitconfig に設定されています。この構成ファイルは root ユーザー用です。rstudio は rstudio ユーザーで実行されるため、rstudio ユーザーの git config を設定する必要があります。以下のコマンドは一時的な解決策です。

docker run -it -p 8787:8787 --env USERNAME="Carl" --env EMAIL=cboettig@example.com cboettig/ropensci-docker bash -c "cp /.gitconfig /home/rstudio; /usr/bin/supervisord"

できます!

スタジオ

もう 1 つの解決策は、cboettig/ropensci-docker に基づいて Dockerfile を作成することです。以下は Dockerfile のサンプルです。

FROM cboettig/ropensci-docker
RUN cp /.gitconfig /home/rstudio
CMD ["/usr/bin/supervisord"]
于 2014-08-16T04:50:02.553 に答える