cloudfoundry
CircleCI
Bluemix

CircleCI 2.0 から IBM Bluemix へデプロイする方法

More than 1 year has passed since last update.

CircleCI 2.0 とは?

CircleCI 2.0 は Docker ベースの CI サービスで、現在 β 版として利用できます。
任意の Docker イメージを指定してビルド・テスト・デプロイができることが特徴です。

参考

IBM Bluemix とは?

IBM が提供する PaaS です。Cloud Foundry をベースに構築されています。
Java、Ruby、PHP、Python、Node 等、メジャーな言語には一通り対応しています。

無期限の無料枠が用意されているため、開発環境としての利用や小さなサービス運営などが無料で行なえます。

参考

CircleCI 2.0 から IBM Bluemix へデプロイする手法

公式で用意された Cloud Foundry のコンソールツール cf-cli を使います。

下記は Node.js で構築されたアプリケーションを、テストしデプロイする設定ファイル .circleci/config です。

version: 2
jobs:
  build:
    working_directory: ~/workspace
    docker:
      - image: node:6.10.2
    steps:
      - checkout
      - restore_cache:
          key: project-{{ .Branch }}-{{ checksum "yarn.lock" }}
      - run:
          name: System information
          command: |
            echo "Node $(node -v)"
            echo "Yarn v$(yarn --version)"
      - run:
          name: Install dependencies
          command: yarn
      - run:
          name: Test
          command: yarn test
      - save_cache:
          key: project-{{ .Branch }}-{{ checksum "yarn.lock" }}
          paths:
            - ~/workspace/node_modules
            - ~/.cache/yarn/
      - deploy:
          name: Deploy to IBM Bluemix
          command: |
            if [ "${CIRCLE_BRANCH}" == "master" ]; then
              apt-get update -qq
              apt-get install -qq -y apt-transport-https
              wget -q -O - https://packages.cloudfoundry.org/debian/cli.cloudfoundry.org.key | apt-key add -
              echo "deb http://packages.cloudfoundry.org/debian stable main" | tee /etc/apt/sources.list.d/cloudfoundry-cli.list
              apt-get update
              apt-get install -qq -y cf-cli
              cf -v
              cf api https://api.au-syd.bluemix.net
              cf login -u $BLUEMIX_USER -p $BLUEMIX_PASSWORD
              cf push
            fi

deploy フェーズで実行されているコマンドが部分が重要になります。今回は Ubuntu をベースにしたイメージなため、apt-get にてインストールを行っています。

インストール後、下記 3 つの cf-cli コマンドを実行する必要があります。

# デプロイ先の指定
cf api https://api.au-syd.bluemix.net

# ログイン
cf login -u $BLUEMIX_USER -p $BLUEMIX_PASSWORD

# デプロイ実行
cf push

ログイン時の情報は、CircleCI の環境変数で事前に指定しておきます。環境変数の指定方法は、CircleCI 1.0 の時と変わりません。

プロジェクトの設定

環境変数の設定

まとめ

IBM Bluemix は CircleCI 2.0 から簡単にデプロイ可能です。また、他の Cloud Foundary ベースの PaaS に対しても、同様の手法が適応することができはずです。

IBM Bluemix は無料で試せるので、興味のある方はぜひ触ってみてください。