LoginSignup
102

More than 5 years have passed since last update.

Dockerfileのbuildで簡単にGithubのプライベートリポジトリをクローンする方法

Last updated at Posted at 2016-02-09

Github上にプロジェクトを分散管理している場合、デプロイの際の選択肢の一つにDockerが挙げられるようになってきました。
この記事では、簡単にDockerfileをbuildしただけで、コンテナ上でプライベートリポジトがクローンできる方法を共有します。
結論からいくと、GithubのOAuthトークンを利用すると最高に楽でした。
簡単というのは、一般的な秘密鍵とsshを活用した方法と比較して簡単という意味です。
ちなみに、簡単どころか今のところはssh経由での方法による解法がつきとめられませんでした(ベースイメージはalpine:3.3)。

こちらの記事がとても最高に参考になったのですが、多少Github上での作業が変わった(?)ようなので、補足しながら説明します。

OAuthトークンの作成

Githubにログインした上で、次の箇所まで進んでください。

  1. Setteings(右上ドロップダウン) -> Developer settings(左) -> Personal access tokens(左) -> Generate new token(右上の方)

  2. Generate new tokens のボタンをクリック

  3. Token description に何か一言

  4. Select scopesパネルのrepoの項にチェックを入れる(下図)

tmp.png
5. 下部のGenerate tokenをクリック

tmp2.png

上図にあるように、ランダムな文字列が得られたと思います。
このトークンは一回だけしか表示されないので気をつけてください。
紛失しても、何回でも作り直せるので、同じ手順を踏んでください。
コピーをしたら、次にいきましょう。

Githubのプライベートリポジトリからclone

先ほどのランダム文字列がxyz、github上のユーザ名がhoge、リポジトリの名前がfooの場合次のようになります。

git clone https://xyz:x-oauth-basic@github.com/hoge/foo.git

この状態で端末でcloneができることを確認したら、次はDockerfileの編集に移ります。

Dockerfile
FROM alpine:3.3
RUN apk update && apk add git
RUN git clone https://xyz:x-oauth-basic@github.com/hoge/foo.git

Docker Imageの作成
docker build -t github-repo:1.0 .

これで、リポジトリのcloneがDocker上で出来たと思います。
ここまでの作業をベースにして、アプリのビルドなどをDockerfileに付け足していきましょう。

以上です。

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
102