概要
今まで、jenkinsを使っていましたが、運用が面倒なため、クラウドを試してみる。
雑誌で見かけて、1コンテナ無料なのでまた使ってみることにしました。
とりあえず、環境を整える意味で試してみたことをメモする。
必要なツール
- Docker Toolbox on macOS
-
git
コマンド -
circleci
コマンド
Dockerインストール
Mac上でDockerを使うためにDocker Toolbox
をインストールする。
( ※ Docker for macは遅いので、Toolboxを選択 )
Macなので、Homebrew
でサクッとインストールする。
( ※ ダウンロードしてのインストールはうまくいかないことがある )
$ brew update
$ brew cask install docker-toolbox
git
コマンドのインストール
※ インストール済みの場合は省略
$ brew install git
$ git --version
git version 2.19.1
circleci
コマンドのインストール
$ brew install circleci
$ circleci version
0.1.3923+6fecf9d
リポジトリ作成
下記のようにgitコマンドにてリポジトリを作成する。
※ 例は、bitbucket.orgを利用したものです。
※ 今回は、~/circleci/
フォルダに作成することにします。
# 作業フォルダ作成
$ mkdir ~/circleci/
$ cd ~/circleci/
### リポジトリ作成 & コミット
$ git init
$ echo '# circle-ci' > README.md
$ git add README.md
$ git commit -m "first commit."
# リモート設定 & プッシュ
$ git remote add origin git@bitbucket.org:*****/*************.git
$ git push -u origin master
設定ファイルの作成
下記のように設定ファイルを作る
version: 2
jobs:
build:
docker:
- image: circleci/node:8.11.3
steps:
- run: echo "hello world"
設定ファイルのチェック
設定ファイルの記述が間違っていないかチェックする。
$ circleci config validate
Config file at .circleci/config.yml is valid.
ローカル実行
macにインストールしたdocker toolbox
で実行してみる。
アプリケーション -> Docker -> Docker Quickstart Terminal.app
Dockerが起動したら、下記のコマンドを実行してみる。
$ circleci local execute
・
・
・
====>> echo "hello world"
#!/bin/bash -eo pipefail
echo "hello world"
hello world
Success!
bitbucketへのコミットで実行
circle-ciの管理画面からプロジェクト追加
を行い、bitbucketのリポジトリを登録する。
Circle Ci / Add Projects
https://circleci.com/add-projects/bb/reflet
bitbucketへコミット & プッシュする。
$ vi README.md <- 説明文を修正
$ git add README.md
$ git commit -m "ドキュメントの更新"
$ git push origin master
ジョブが自動実行され、CircleCiの管理画面で下記のように実行結果が見れる。
CIをスキップしたいとき
動作に関係ない説明文(README.md)の修正など、CIを回したくないのでそういった場合には、
コミットメッセージに[ci skip]
を追加したらいいようです。
$ git commit -m "ドキュメントの更新[ci skip]"
ssh接続してみる
デバックなどの目的でSSH接続できるようなので、試してみる。
Circle-Ciの管理画面で、Jobsメニューから接続したいジョブの詳細ページで「Return workflow」メニューから「Return job with SSH」を選択する。
下記の表示がされるので、そこに記載のコマンド(IPアドレス)で接続してみる。
$ ssh -p 64*** ***.***.***.***
# パス確認
circleci@46cc590a9841:~$ pwd
/home/circleci
# ファイル確認
circleci@814b5d524352:~$ ls -la
total 24
drwxr-xr-x 3 circleci circleci 4096 Nov 8 05:28 .
drwxr-xr-x 5 root root 4096 Nov 8 05:28 ..
-rw-r--r-- 1 circleci circleci 220 Nov 5 2016 .bash_logout
-rw-r--r-- 1 circleci circleci 3515 Nov 5 2016 .bashrc
-rw-r--r-- 1 circleci circleci 675 Nov 5 2016 .profile
drwxr-xr-x 2 circleci circleci 4096 Nov 8 05:28 project
# projectフォルダの中は空っぽ?
circleci@814b5d524352:~$ ls -la project
total 24
drwxr-xr-x 3 circleci circleci 4096 Nov 8 05:28 .
drwxr-xr-x 5 root root 4096 Nov 8 05:28 ..
# 終了
circleci@46cc590a9841:~$ exit
exit
Connection to ***.***.***.*** closed.
コンテナは、起動したら10分間ぐらい接続可能なようです。
必要なくなったら、SSH終了後、Circle-Ciの画面からジョブを終了した方が良さそう。
(次のジョブがScheduledになって実行されないようなので・・・)
以上