Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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に付け足していきましょう。

以上です。

Jah524
フリーランスで自然言語処理の研究開発をしています。Clojure/ClojureScriptでwebアプリも作ります
https://github.com/Jah524
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away