LoginSignup
29
25

More than 5 years have passed since last update.

(小ネタ)docker-compose.yml をビルドに使う

Last updated at Posted at 2018-07-23

多分いろんな人が書いているであろう小ネタ。

たとえば、 Dockerfile をビルドする際に、毎度毎度、下記のようにするぐらいなら、

$ docker build -t foobar.com/foobar:1.0.0 .

下記のような docker-compose.yml ファイルを用意しておいて、

docker-compose.yml
version: "2.4"

services:
  build_foobar:
    image: foobar.com/foobar:1.0.0
    build:
      context: ./

docker-compose build コマンドを実行すればいいです。そのまま docker-compose push も可能です。

$ docker-compose build
$ docker-compose push

複数個のDockerイメージをビルドするのもdocker-compose build で一発対応できますし、サブディレクトリにDockerfileがあっても、Dockerfileの名前が異なってもへっちゃらです。

docker-compose.yml
version: "2.4"

services:
  build_foobar:
    image: foobar.com/foobar:1.0.0
    build:
      context: ./

  build_barbaz:
    image: foobar.com/barbaz:1.0.0
    build:
     context: ./subdir
     dockerfile: barbaz.Dockerfile

バージョンは環境変数から与えたい?それなら、

docker-compose.yml
version: "2.4"

services:
  build_foobar:
    image: foobar.com/foobar:${VERSION}
    build:
      context: ./

  build_barbaz:
    image: foobar.com/barbaz:${VERSION}
    build:
     context: ./subdir
     dockerfile: barbaz.Dockerfile

としておいて、 VERSION=0.0.1 docker-compose build みたいにしてもいいでしょう。

$ VERSION=0.0.1 docker-compose build
Building build_foobar
Step 1/1 : FROM busybox
 ---> 22c2dd5ee85d

Successfully built 22c2dd5ee85d
Successfully tagged foobar.com/foobar:0.0.1
Building build_barbaz
Step 1/1 : FROM busybox
 ---> 22c2dd5ee85d

Successfully built 22c2dd5ee85d
Successfully tagged foobar.com/barbaz:0.0.1

リンク

29
25
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
29
25