LoginSignup
9
2

More than 5 years have passed since last update.

CircleCI2.0でDockerImageを使う

Last updated at Posted at 2017-05-24

CircleCIのビルドが遅い問題

codenize-toolsを利用して、AWSまわりの設定をリポジトリで管理しているが、
設定のチェック、デプロイに時間がかかっていた。

=> 2.0のDocker対応で解決しよう!!

CustomImageを作ってみる

CircleCIはCustomのDockerImageをサポートしています。
saorio/codenize_tools_circleciような、DockerImageを作ります。

内容としては、
 - circleCIの公式イメージ ※ここではruby2.2系を使用。
 - codenize-toolsのgem一式をインストール

Dockerfile
FROM circleci/ruby:2.2.7
WORKDIR /root/
ADD work work

COPY work/Gemfile $WORKDIR

RUN sudo apt-get update && sudo apt-get upgrade -y
RUN sudo apt-get install -y libpcap-dev

WORKDIR /root/work/
RUN sudo bundle install

CircleCI公式を使った方が、よく使われるライブラリなどが入っててOSの公式を使うよりDockerfileがシンプルになって良いのでこちらを利用しています。

これをpullしてきて使うcircle.ymlを書く。

circle.yml
version: 2
jobs:
  build:
    docker:
      - image: saorio/codenize_tools_circleci:latest
    working_directory: ~/<your-repository-name>
    environment:
      AWS_REGION: us-east-1
    steps:
      - checkout
      - run:
          name: miam dry-run
          command: |
            miam --dry-run --apply -f IAMfile --region ${AWS_REGION} --no-color --no-progress
      - deploy:
          name: miam deploy
          command: |
            if [ "${CIRCLE_BRANCH}" == "master" ]; then
              miam --apply -f IAMfile --region ${AWS_REGION} --no-color --no-progress
            fi

そのままAWSにdeployするなら --dry-run を外してdeploy可能。
長い時で3分くらいかかっていたのが10秒程度になりました :smiley:

pasted_image_at_2017_05_25_01_56_pm.png

pasted_image_at_2017_05_25_01_57_pm.png

9
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
2