Closed14
GitHub SSH接続 + docker build 時にPrivateリポジトリからリソースをPull
ssh-keygen
コマンド実行直後は全部 Enter
$ cd ~/.ssh
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/xxxxx/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/xxxxx/.ssh/id_rsa
Your public key has been saved in /home/xxxxx/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:xxxxx xxxxx@ubuntu2004
The key's randomart image is:
+---[RSA 3072]----+
+----[SHA256]-----+
$ ls -l
total 32
-rw------- 1 xxxxx xxxxx 2610 8月 11 13:34 id_rsa
-rw-r--r-- 1 xxxxx xxxxx 572 8月 11 13:34 id_rsa.pub
-rw-r--r-- 1 xxxxx xxxxx 18644 7月 24 16:08 known_hosts
公開鍵をクリップボードへコピー。Ubuntu の場合は xsel
コマンド。Mac の場合は pbcopy
コマンド。
$ sudo apt install xsel
$ cat ~/.ssh/id_rsa.pub | xsel --clipboard --input
https://github.com/settings/ssh
へアクセス
New SSH Key
ボタンをクリック
Title
に適当な名前を入力し、Key
にクリップボードにコピーした鍵を貼り付けて Add SSH Key
ボタンをクリック。
認証を求められたら認証する。
鍵の登録完了。
一度、接続確認。成功の図。
$ ssh -T git@github.com
Hi PINTO0309! You've successfully authenticated, but GitHub does not provide shell access.
Dockerfile
の先頭に以下1行を追記する。
# syntax=docker/dockerfile:1
対象の Dockerfile が構築時に使う、 Dockerfile 構文syntax の場所を定義します。BuildKit バックエンドは Docker イメージとして配布され、コンテナのサンドボックス環境内で実行される 外部実装external implementation をシームレスに利用できます。
何言ってるか分からんけどそういうことらしい。
Dockerfile
の中でリソースをPullする箇所の前までのどこかに下記を追記する。このコマンドをbuild時に有効にするために、Dockerfile
の序盤で openssh-client
を apt install
しておく必要がある。
RUN mkdir -m 700 ${HOME}/.ssh \
&& ssh-keyscan github.com > ${HOME}/.ssh/known_hosts
リソースを Pull ってくるときは下記のように記載しておく。(試行錯誤中)
gh release download --repo xxxx/xxxx v0.0.1 -p 'flatc.tar.gz'
docker build
コマンドを実行するときに下記のおまじないに従う。 docker build
のシーケンス内でSSHのクレデンシャルが利用できるようにする。
$ export DOCKER_BUILDKIT=1
$ docker build -t xxx --ssh default .
このスクラップは2021/08/11にクローズされました