👀
CircleCIのビルドコンテナ環境に接続してみた
前書き
- タイトルの通り今回はCircleCIのコンテナ環境にSSH接続してみようと思います。
- 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鍵については事前に作成したものを利用する
手順
- Dashboard > Projects > Branch > Workflow
- Rerunプルダウンから Return job with SSHを選択する
- Jobが実行され、SSH sessionsにSSH接続情報が表示されるのでターミナルにそれを入力する
# 以下を適宜編集 ssh -p xxxxx yyy.yyy.yyy.yyy
- ターミナルで実行環境にログインできたら成功!!
参考にさせて頂いたリソース
Discussion