LoginSignup
4
4

More than 5 years have passed since last update.

CircleCI のジョブ間で docker image を共有する

Last updated at Posted at 2019-04-10

CircleCI の workflow 内のジョブ間で docker image を共有する方法を説明します。

一言で言うと

docker save/load と CircleCI の workspace 機能を使います

詳細な方法

以下の2つのジョブがあるとします。

  • ジョブ a
  • ジョブ b : aのあとに実行される
circleci/config.yml
...
    jobs:
      - a
      - b:
          requires:
            - a
...

ジョブ a では次の処理を行ってください。

  1. docker save コマンドでイメージをファイルとして保存
  2. CircleCI の persist_to_workspace で docker image の保存先を永続化
circleci/config.yml
...
      - setup_remote_docker
      - run:
          name: Save image
          command: |
            mkdir -p /tmp/docker
            docker save hoge/fuga:latest -o /tmp/docker/image
      - persist_to_workspace:
          root: /tmp/docker
          paths:
            - image
...

ジョブ b では次の処理を行ってください。

  1. CircleCI の attach_workspace で docker image のファイルをアタッチ
  2. docker load コマンドでファイルをロード
circleci/config.yml
...
      - attach_workspace:
          at: /tmp/docker
      - setup_remote_docker
      - run: docker load -i /tmp/docker/image
...
4
4
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
4
4