LoginSignup
1

More than 5 years have passed since last update.

CircleCI2.0でdockerのexperimentalを有効にする

Last updated at Posted at 2017-05-12

ただ、--squashをしたかった。

CircleCI2.0では実行環境(Executer)を2種類から選択できる。指定イメージをつかうdockerと1.0のような環境のmachine
dockerデーモンの挙動に手を入れられるのはmachineのほうだけなので、環境にmachineを指定。この時点でdockerは17.03.0-ceだったので、--squashが使える。おそらくもっと新しいバージョンにアップグレードして使うこともできるでしょう。

サンプルで使用したDockerfileはこちら。レイヤに差分がないと--squashがコケるので軽く変更します。

FROM alpine:latest

RUN apk update
ADD Dockerfile /Dockerfile
CMD ["/bin/true"]

.circleci/config.ymlのサンプル

最初のstepで--experimental=trueを追記してリスタート。

.circleci/config.yml
version: 2
jobs:
  build:
    machine: true
    working_directory: /home/circleci/circleci-sandbox-bb
    steps:
      - checkout
      - run:
          name: Enable experimental
          command: |
            set -x
            echo 'DOCKER_OPTS="--experimental=true"' | sudo tee -a /etc/default/docker
            # sudo DEBIAN_FRONTEND=noninteractive apt-get update && sudo apt-get install -y docker-engine ## ついでにdockerデーモンをaptリポジトリの最新にしたい時
            sudo service docker restart
      - run: |
          TAG=0.1.$CIRCLE_BUILD_NUM
          docker build -t local/circleci-sandbox-bb:$TAG --squash .
          docker image history local/circleci-sandbox-bb:$TAG

image historyの実行結果で--squashによる寄せができていることを確認。

circleci-outputs
.
.
.
Successfully built 6d611d5da4fc
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
2de9d6caee54        1 second ago                                                        1.03 MB             merge sha256:6d611d5da4fcfe515263c628140ae8a25a4b870881b8da9f88f9130caf44ae3c to sha256:02674b9cb179d57c68b526733adf38b458bd31ba0abff0c2bf5ceca5bad72cd9
<missing>           1 second ago        /bin/sh -c #(nop)  CMD ["/bin/bash"]            0 B                 
<missing>           1 second ago        /bin/sh -c #(nop) ADD file:00457989c9c63fa...   0 B                 
<missing>           1 second ago        /bin/sh -c apk update                           0 B                 
<missing>           37 hours ago        /bin/sh -c #(nop)  CMD ["/bin/sh"]              0 B                 
<missing>           37 hours ago        /bin/sh -c #(nop) ADD file:63f63606d6e289e...   3.99 MB            

machine-executerは起動がちょっと遅いのと、ちょいちょい環境の変化がありそうなのであまり常用したくはないけど、イメージのビルド用途なら十分。

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
1