LoginSignup
20
18

More than 5 years have passed since last update.

【Docker】Dockerfile内でGithubのプライベートレポジトリをcloneする

Last updated at Posted at 2017-05-29

やりたいこと

Dockerfile内でプライベートレポジトリをクローンしてごにょごにょしたい時に、credentialの渡し方に迷ったのでメモ。

具体的には以下のようなプライベトレポジトリのpythonパッケージを含んだrequirements.txtpip install -r requirements.txtでインストールしたい。

requirements.txt
...
git+https://github.com/<private-org>/<private-repo>
...

やったこと

プライベートキーをCOPYして使う方法があるだったが、鍵を渡すのはなんだかなーという感じだったので、OAuthトークンを使う方法で実行。
OAuthトークンはHTTPSでクローンする時のパスワードとして使うことができる

.netrcに認証情報を書き込んでおきrequiremqnts.txtを変更せずレポジトリをクローンできるようにする。

ARG GITHUB_USER
ARG GITHUB_TOKEN
RUN touch /root/.netrc \
    echo machine github.com >> /root/.netrc \
    echo login $GITHUB_USER >> /root/.netrc \
    echo passowrd $GITHUB_TOKEN >> /root/.netrc \
    pip install -r requirements.txt \
    rm /root/.netrc

ビルド実行

以下のようにImageをビルドする。ユーザー名とOAuthトークンをARGとして渡して認証する。

$ docker build --build-arg GITHUB_USER=<github-user-name> --build-arg GITHUB_TOKEN=<github-oauth-token> .

参考

20
18
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
18