🐳

GitHub Actions で Docker に SSH で接続する

2022/07/26に公開

Docker CE 18.09より、Dockerデーモンへの接続にSSHが利用できるようになりました。
そこでGitHub Actionsを利用してリモートのDockerデーモンへSSHで接続するサンプルを書きました。

サンプル

解説

  • step1: ランナーのホームディレクトリにSSHの設定を配置する。
    • SSH_CONFIGは接続先とユーザーを定義します。[1]
    • SSH_KNOWN_HOSTSは接続先のフィンガープリントを定義します。[2]
    • SSH_KEYは秘密鍵で、Actions secretsにあるSSH_KEYを使用します。
  • step2: DOCKER_HOST環境変数にSSH_CONFIGで指定した接続先のエイリアスを指定する。
    • 以後は異なるステップでも、DOCKER_HOST環境変数を定義すればリモートにつながります。

使い道

リモートのDockerデーモンに接続できるので、Docker上に任意のコンテナを展開できます。
またDocker Swarmの管理も出来るので、運用面でも使い道が広がるかと思います。

あとがき

GitHubのubuntu-20.04ランナーにdockerが含まれているおかげで、やることは単純でした。
SSHの設定は環境変数を使用していますが、状況に応じてリポジトリへの保管やsecretsを活用してみてください。

脚注
  1. 詳細はssh_config(5)のmanを参照してください。 ↩︎

  2. 事前に接続先のフィンガープリントを入手してください。 ↩︎

Discussion