LoginSignup
0
0

More than 1 year has passed since last update.

Cloud BuildでDocker Compose V2を使う

Posted at

背景

  • Cloud Build上でE2Eテストなんかをするときに、たまーにdocker composeコマンドが使いたくなる
  • ガイドから辿れるコミュニティ提供のビルダーにはv1用のものしかない
  • v1からv2への差分として例えば以下がある
    • docker-compose.ymlだけでなくcompose.ymlもデフォルトで読み込まれるようになった
    • compose.ymlversionを設定する必要がなくなった
    • docker-composeコマンドでも動くが、dockerのサブコマンドとしてのdocker composeコマンドが推奨されるようになった
    • 若干早くなった気がするけど多分気のせい
  • 妥協してv1のビルダーを使うこともできるが、上記差分をわざわざ古い方に寄せて書くのも癪なので、v2のビルダーを作成する

結論

FROM ubuntu:bionic

ARG DOCKER_COMPOSE_VERSION

# Dockerインストール
RUN apt-get update && apt-get -y install ca-certificates curl docker.io && \
   rm -rf /var/lib/apt/lists/*

# Docker Compose V2インストール
WORKDIR /usr/local/libexec/docker/cli-plugins
RUN curl -L https://github.com/docker/compose/releases/download/v${DOCKER_COMPOSE_VERSION}/docker-compose-linux-x86_64 -o docker-compose && chmod +x docker-compose

ENTRYPOINT ["docker", "compose"]
cloudbuild.yaml
substitutions:
  _DOCKER_COMPOSE_VERSION: 2.6.1 # 使用したいバージョンに置き換え
steps:
- name: 'gcr.io/cloud-builders/docker'
  args:
  - 'build'
  - '--build-arg'
  - 'DOCKER_COMPOSE_VERSION=${_DOCKER_COMPOSE_VERSION}'
  - '-t'
  - 'gcr.io/$PROJECT_ID/docker-compose:latest'
  - '-t'
  - 'gcr.io/$PROJECT_ID/docker-compose:${_DOCKER_COMPOSE_VERSION}'
  - '.'
- name: 'gcr.io/$PROJECT_ID/docker-compose'
  args: ['version']

images:
- 'gcr.io/$PROJECT_ID/docker-compose:latest'
- 'gcr.io/$PROJECT_ID/docker-compose:${_DOCKER_COMPOSE_VERSION}'
tags: ['cloud-builders-community']

この2ファイルを作成してgcloud builds submitすればOK。

0
0
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
0
0