LoginSignup
0
0

More than 3 years have passed since last update.

local(手元)でcircleciのlocalstackコンテナをデバックする

Posted at

紹介する内容

  • circleciに構築したlocalstackコンテナをデバックする方法共有です
    • Primaryコンテナはpythonコンテナです、localstackコンテナはPrimaryコンテナではありません
  • circleciのdocker executorを使います

結論

  • circleciをlocalで動かしているものはdockerです。よってPrimaryコンテナではないコンテナにdocker attachで張り付くとコンテナの出力が見えます

  • しかし、circleciのコンテナはコンテナの名前が指定できません

    • このせいで人がコンテナ名を手動で確認した後に、docker attach 手動で確認したコンテナ名することが最善です
    • こちらが使用可能なオプションですが、コンテナ名を設定するオプションはなさそうです

紹介始めます

当記事のプロジェクトはcircleciにlocalstackをterraformで構築する記事のプロジェクトをそのまま使用中です。
circleciにlocalstackをterraformで構築する詳しい内容はこちらで確認できます。
https://qiita.com/cheekykorkind/items/8da683934d7a3233d724

構築実験環境

Linux

  • CentOS Linux release 7.7.1908 (Core)

Docker Compose

  • VERSION : 1.24.1

Docker

  • VERSION : 19.03.5

local circleciをインストールします

ディレクトリ構成

全体ソースコードは https://github.com/cheekykorkind/circleci-localstack で確認できます

  • 全体図
    treeD.png

  • circleci config部分
    circleciD.png

circleciで実行される作業の順番を伝えます。

  1. circleci local execute --job testでcircleciをlocal実行します
  2. circleci/python:3.7-buster-nodeコンテナ(Primaryコンテナ)が作られます
  3. localstackコンテナが作れます
  4. Primaryコンテナのstepが実行されます
    • name: Wait for localstack stepで少なくともportが開けるまで待ちます
    • pythonのpackageをディレクトリ/home/circleci/project/sam-lambda/hello_world/packages に指定し、インストールします
    • $LAMBDA_ZIP_PATHに置きます
    • terraformをインストールしあます
    • terraformファイルがいる $TERRAFORM_PATH に移動します
    • terraform initします
    • terraform applyします。同時にterraformでlambdaのzipパス($LAMBDA_ZIP_PATH)とcircleciのデフォルトhost名を入れたを$COMMON_NETWORKを渡します
    • terraformによってlambdaが作られます

上で伝えた実行の内、Primaryコンテナのstepが実行されます の前までずっと手動でdocker psを打つことになります。

デバック方法を見せます

これで、localstackコンテナの出力が見えるようになって、circleciでlocalstackを使う時に
localstackのエラーなのか、localstackがそもそも起動してなかったのかが確認できます。
dockerAttach.gif

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0