Posted at

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 は無料で試せるので、興味のある方はぜひ触ってみてください。