質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

解決済

docker-compose v1 で build した結果新しいイメージが作成されたかどうかを取得したい

advanceboy
advanceboy

総合スコア8

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

1回答

0リアクション

0クリップ

129閲覧

投稿2022/10/05 04:21

編集2022/10/05 04:26

使用中の環境

Docker version 20.10.11
docker-compose version 1.29.2
ホストOS: Ubuntu 20.04LTS

※: 使用中の IaC が対応していない事情で、 Docker Compose CLI (v2) が使用できません


目的

雑に docker-compose でサービスを動かしている環境で、 イメージの取得と再ビルドを行い、 その結果いずれかのイメージに更新があればコンテナの再起動を、定期的に自動で行いたいと考えています。
イメージをビルドするマシンと、コンテナを実行するマシンは同じです。

前提状況

docker-compose.yml では、以下のようにイメージを直接利用するものと、手元でビルドして利用するものが混在しています。

services: aaa1: build: ./aaa aaa2: build: ./aaa bbb: image: alpine:latest
FROM alpine:latest RUN apk add --no-cache jq

試した事

イメージを直接利用するものについては、以下のように標準出力から新イメージの取得の有無で判別できそうだという事までたどり着きました。

shell

$ docker-compose pull --no-parallel | grep "Downloaded newer image"

一方、自前でビルドするほうについては、 docker-compose build --pull と実行した場合に、最終イメージがキャッシュされたかに関わらず、以下のようになってしまうため、更新されたイメージが作成されたかどうかの判別ができずに悩んでいます。

Successfully built xxxxxxxxxxxx Successfully tagged dir_aaa1:latest

質問

docker-compose で build した結果、新しいイメージが作成されたかどうかを取得する方法はありませんか?

上述の理由から、 新イメージの取得・ビルド後の新しいイメージの有無・再起動 をワンライナーで書けるのが望ましいです。

また、 この更新コードは cron 実行したいので、 /bin/sh (POSIX シェル) で動いた方が少しうれしいですが、 bash でも構いません。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです