前回、IBM Cloud Code Engine上にGithubのパブリックリポジトリからPythonのStreamlitサンプルプログラムを取得してデプロイする方法を説明しましたが、今回はGithubのプライベートリポジトリからソースを取得するための設定について説明します。
前回記事:Streamlit PythonをIBM Cloudへデプロイするよ
Githubプライベートリポジトリからのソース取得
メカニズムはGithub上で自分の公開鍵を登録しておいて、IBM Cloud Code Engine側にはその秘密鍵を登録します。IBM Cloud Code Engine側からはSSHを使ってGithub上のソースを取得する仕組みです。
SSH鍵の作成
これはすでに自分で作成して持っている人は飛ばしてください。そんなものは作った覚えがないということであれば次の手順で公開鍵と秘密鍵を作成します。
Macでターミナルを開いて公開鍵と秘密鍵があるか確認する
ターミナルを開いて前に作ったことがあるか確認します。自分は2016年に作ってたみたい
(base) saboten-no-MacBook-Pro:~ saboten$ ls -al .ssh
total 24
drwx------ 5 saboten staff 160 9 15 2016 .
drwxr-xr-x+ 59 saboten staff 1888 2 3 10:06 ..
-rw------- 1 saboten staff 1675 9 15 2016 id_rsa
-rw-r--r-- 1 saboten staff 418 9 15 2016 id_rsa.pub
公開鍵と秘密鍵の作成
もし利用している環境で上記のファイルがなければ今回新しく公開鍵と秘密鍵を作成します。
$ mkdir ~/.ssh
$ cd ~/.ssh
$ ssh-keygen -t rsa
このコマンドで下記3つを質問されます。すべてディフォルトでいいのでリターンキーを押してください。
- 鍵の保存フォルダ(ディフォルトでホームディレクトリ直下の.sshフォルダです)
- パスフレーズ(これ設定しません※)
- パスフレーズ確認
※IBM Cloud Code Engine側から利用するときにパスフレーズで保護しないでと書かれていたので。
下記2つのファイルが~/.sshフォルダ以下に作成されれば公開鍵と秘密鍵が準備できました。
id_rsa
id_rsa.pub
Githubへの公開鍵の登録方法
これはGithubのヘルプにも記載されている手順ですが、Githubのアカウントから設定メニューを開いてSSH公開鍵をペーストします。
GithubのアカウントメニューからSettingsを選択します。
New SSH keyを押します
### 自分の公開鍵を設定します$ pbcopy < ~/.ssh/id_rsa.pub
Macのターミナルでさきほど作成した公開鍵をクリップボードに入れます。
このあと、Github側のKey欄にクリップボードに入っている内容をペーストします。
そしてAdd SSH keyボタンを押して完了です。
これでGithub側の準備はできました。
IBM Cloud Code Engine側設定
コード・リポジトリー・アクセスの追加
IBM Cloud Code Engine側でコード・リポジトリー・アクセスを追加していきます。
- Code Engine->プロジェクト->自分のプロジェクト
画面左側のコード・リポジトリー・アクセスを選択して、作成ボタンを押します。
作成ボタンを押すとこの画面が出てくるので下記3つを入力します。
- 名前 :任意の文字列で名前をつけます
- コード・リポジトリー・サーバー
- SSH秘密鍵
コードリポジトリーサーバー
下記のような記述をします。
github.com/(githubユーザー名)/(リポジトリ名)
自分の場合は次のリポジトリでやってみます。
github.com/saboten10/azure_text_to_speech
SSH秘密鍵
先ほど作成した秘密鍵を利用します。Macのコンソールで下記コマンドで秘密鍵をクリップボードに格納します。
$ pbcopy < ~/.ssh/id_rsa
この内容を画面のSSH秘密鍵のフィールドにペーストします。作成ボタンを押すとこのプロジェクトからコード・リポジトリー・アクセスが追加されます。
動作確認
実際にコードを引っ張ってきてデプロイしてみます。
ビルド詳細の指定
アプリケーションのビルド指定で、コード・リポジトリーURLにGithubへのSSHアクセス用の宛先を記述します。
git@github.com:(ユーザー名)/(リポジトリ名).git
コード・リポジトリー・アクセスには先程作成したアクセス名を指定します。
これでGithubからソースを取得してきてビルドができるようになります。
まとめ
今回はIBM Cloud Code EngineでGithubのプライベート設定されているリポジトリからソースを取得してCode Engineにデプロイする方法を説明しました。Githubで公開したくないソースもたくさんあると思いますのでこの方法で試してみてください。