local (수중)에서 circleci의 localstack 컨테이너를 디버깅

소개하는 내용


  • circleci에 구축 한 localstack 컨테이너를 디버깅하는 방법 공유입니다.
  • Primary 컨테이너는 python 컨테이너이고 localstack 컨테이너는 Primary 컨테이너가 아닙니다

  • circleci docker executor 사용

  • 결론


  • circleci를 local로 움직이는 것은 docker입니다. 따라서 Primary 컨테이너가 아닌 컨테이너에 docker attach 로 붙이면 컨테이너의 출력이 보입니다

  • 그러나 circleci 컨테이너는 컨테이너 이름을 지정할 수 없습니다.
  • 이 때문에 사람이 컨테이너 이름을 수동으로 확인한 후 docker attach 手動で確認したコンテナ名하는 것이 가장 좋습니다
  • .
  • 여기에 사용할 수있는 옵션이지만 컨테이너 이름을 설정하는 옵션은 없습니다.

  • h tps : // / rc ぇ시. 코 m / 드 cs / 2.0 / 곤후 쿠라 치온 - 러프 렌세 / # 드 c r



  • 소개 시작



    이 기사의 프로젝트는 circleciにlocalstackをterraformで構築する 기사의 프로젝트를 그대로 사용 중입니다.
    circleci에 localstack을 terraform으로 구축하는 자세한 내용은 여기에서 확인할 수 있습니다.
    htps : // 코 m / 치에 ky 코 rkin d / 그리고 ms / 8이다 683934d7 아 3233d724

    구축 실험 환경



    리눅스


  • CentOS Linux release 7.7.1908 (Core)

  • Docker Compose


  • VERSION : 1.24.1

  • 도커


  • VERSION : 19.03.5

  • local circleci 설치



    디렉토리 구성



    전체 소스 코드는 htps : // 기주 b. 코 m / 치에 ky 코 r kin d / shi rc ぇ에서 확인할 수 있습니다.
  • 전체도
  • circleci config 부분

  • circleci에서 수행되는 작업의 순서를 알려줍니다.


  • circleci local execute --job test에서 circleci를 local 실행
  • circleci/python : 3.7-buster-node 컨테이너 (Primary 컨테이너)가 생성됩니다
  • localstack 컨테이너를 만들 수 있습니다
  • Primary 컨테이너의 step이 실행됩니다.
  • name: Wait for localstack step에서 적어도 포트가 열릴 때까지 기다립니다
  • 파이썬 패키지를 디렉토리 /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의 기본 호스트 이름을 넣은 $COMMON_NETWORK를 전달합니다
  • terraform은 lambda를 만듭니다


  • 위에서 말한 실행 중, Primaryコンテナのstepが実行されます의 전까지 계속 수동으로 docker ps를 치게 됩니다.

    디버깅 방법을 보여줍니다.



    이제 localstack 컨테이너의 출력을 볼 수 있으며 circleci에서 localstack을 사용할 때
    localstack 오류인지 localstack이 원래 시작되지 않았는지 확인할 수 있습니다.

    좋은 웹페이지 즐겨찾기