かべぎわブログ

ブログです

CircleCIでsls deployを実行したときだけdockerizePipをfalseにする

概要

CircleCIでserverless frameworkのsls deployを実行したときだけ、dockerizePipを無効にしてデプロイをしてみたいと思います。

なぜこんなことをするか

dockerizePipがtureだと以下のようなエラーが出力される。

ERROR: Could not open requirements file: [Errno 2] No such file or directory: '/var/task/requirements.txt'

原因はよくわからない。
docker-in-dockerだし…
公式のissueでも話題になっているけれど根本的な解決はなさそう。

対処法

こうする。

  custom:
    pythonRequirements:
      dockerizePip: ${self:custom.isCI.${env:CI}, self:custom.isCI.false}
    isCI:
      true: true
      false: non-linux

CircleCIで実行するときはCI=Trueとなる。
ローカル環境で実行する場合はexport CI=Falseなどで変数CIを事前に設定してあげる必要があるけれど。

おわりに

解決

Docker/Kubernetes 実践コンテナ開発入門

Docker/Kubernetes 実践コンテナ開発入門

  • 作者:山田 明憲
  • 出版社/メーカー: 技術評論社
  • 発売日: 2018/08/25
  • メディア: 単行本(ソフトカバー)