👀

CircleCIのビルドコンテナ環境に接続してみた

2021/07/08に公開

前書き

  • タイトルの通り今回はCircleCIのコンテナ環境にSSH接続してみようと思います。
    • SSH接続してみたいと思ったモチベーション
      • 試した事なかったから
      • ローカル環境では正常に動いたがコンテナでエラーを起こしてみたいと思ったから
      • SSHキーの登録等を行い、管理画面になれるため
  • でもその前に、CircleCIでのビルドの流れとか、継続的インテグレーションについてざっくりまとめておきます。

ビルドの流れ

  • Github or Bitbucket上のリポジトリをCircleCIに登録する
  • そうすると、クリーンコンテナ or VMが起動して自動化されたコード(テスト)が実行される
    • ※CircleCIはジョブ毎にそれぞれ独立したコンテナ or VMで実行できる
  • テストが完了すると、ユーザーに通知を行う(メール, Slack等カスタマイズが可能らしい)

継続的インテグレーションについて(CI/CDのCIにあたるもの)

  • CircleCIによると以下で定義しているみたい

コードを共有リポジトリの master ブランチに常時頻繁に統合することを奨励する開発手法

  • ※GitHubのブランチ運用を最初に決める必要がある
  • メリットとしては、
    • 開発時のコスト低減/生産性の向上
      • CIツールによりテストがこけた際に改修箇所の早期発見ができる
    • テストの自動化により品質が安定する
    • デプロイ作業の自動化
      • 各環境でのデプロイにおいても設定次第では自動化できる

CircleCIのコンテナへSSH接続する

事前準備

  • CircleCIとGithubリポジトリの連携
  • CircleCI上で、最低一つはProjectを登録しておく
  • CircleCIの管理画面でジョブに対してSSH鍵の登録を行う
    • 管理画面 > Projectsから任意のものを選択 > Project Settings > SSH Keys
    • SSH鍵については事前に作成したものを利用する

手順

  1. Dashboard > Projects > Branch > Workflow
  2. Rerunプルダウンから Return job with SSHを選択する
  3. Jobが実行され、SSH sessionsにSSH接続情報が表示されるのでターミナルにそれを入力する
    # 以下を適宜編集
    ssh -p xxxxx yyy.yyy.yyy.yyy
    
  4. ターミナルで実行環境にログインできたら成功!!

参考にさせて頂いたリソース

https://circleci.com/docs/ja/2.0/ssh-access-jobs/

Discussion