わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

GitHubとDockerHubへの登録および連携の手順

一昨日の記事(DockerでPGroonga)について,GitHubとDockerHubへの登録の手順を備忘録として書いておきます.
まず,端末とテキストエディタで,Dockerfileを編集しながらビルドと実行,そしてデバッグを行い,望むイメージが作成できるようにします.その際,適当なディレクトリに置き,Gitで管理しません.Dockerコンテナが,期待する動作をするようになったら,Dockerfileを編集して最適化に入ります.環境変数の指定やコマンド実行を結合し,内部のクリーンアップのコマンドもきちんと書いてから,最終確認を行います.
次に,登録する名前を決めておきます.いろいろ回ってみたところ,非公式のDockerについては「ユーザ名/正味のイメージ名」とするのが一般的のようです.またGitHubの名前は「docker-正味のイメージ名」です.そこで,今回の登録においては,https://github.com/takehiko/docker-pgroongahttps://hub.docker.com/r/takehiko/pgroonga/を作る(それらのURLでアクセスできるようにする)ことを目指します.
それでは,GitHubです.ブラウザでhttps://github.com/takehiko/にアクセスし,サインインしていなければします.ページ右上の「+」を押し,「New repository」を選択します.
「Create a new repository」の画面では,Ownerは変更せず,Repository nameには「docker-pgroonga」を書きます.そして「Create repository」のボタンを押します.
https://github.com/takehiko/docker-pgroongaにアクセスし,「Clone or download」のボタンを押します.「git@github.com:takehiko/docker-pgroonga.git」を,コピーします.
端末の作業に切り替えます.GitHubの作業用ディレクトリ(個人的には~/githubを作っています)の中でクローンし,ファイルを置いてコミットします.コマンドは以下のとおりです.

$ cd ~/github
$ git clone git@github.com:takehiko/docker-pgroonga.git
$ cd docker-pgroonga
$ cp (自作Dockerfileのパス) .

またも,ブラウザでの作業です.Markdown Editにアクセスし,自他のREADME.mdを参照しながら,今回のためのREADME.mdを作成します.思うようなものが作れたら,編集領域(Markdown)を選択してコピーします.
テキストエディタで,~/github/docker-pgroonga/README.mdを開き,先ほどコピーしたものを貼り付けて,保存します.
端末で,コミットそしてプッシュします.

$ git add Dockerfile README.md
$ git commit -m 'initial commit'
$ git push origin master

念のためブラウザでhttps://github.com/takehiko/docker-pgroongaにアクセスし,2つのファイルがきちんと登録されているか,Readmeが問題なく表示されているかを確認します.
引き続き,DockerHubへの登録を行います.これまたブラウザを使用します.https://hub.docker.com/u/takehiko/にアクセスし,ログインがまだならしておきます.
ここでページ右上の「Create」を押し,さらに「Create automated build」を選択します(「Create repository」は使用しません).ページが変わり,GitHubとBitBucketから選べますが,もちろんGitHubのほうを選択します.
GitHubの,自分のリポジトリ一覧が出ます.「docker-pgroonga」を選択します.
次のページで,「Repository Namespace & Name*」と表示されたら,takehikoはそのままですが,その右が「docker-pgroonga」となっています.ここを「pgroonga」のみに書き換えます.Short Descriptionも必須らしいので適当に書き,「Create」のボタンを押します.
これでhttps://hub.docker.com/r/takehiko/pgroonga/のページが出来上がります.はじめはそっけなく,Dockerfileを見ても空っぽですが,30分ほど待ってから再読込をすれば,いろいろできていました.