1. ホーム

[解決済み】Dockerfileにイメージ名を設定する方法は?

2022-03-23 09:49:36

質問

カスタム画像を作成する際に、以下のように画像名を設定することができます。

docker build -t dude/man:v2 . # Will be named dude/man:v2

Dockerfile でイメージの名前を定義する方法はありますか? docker build コマンドを使用してください。

解決方法は?

Dockerfileの中では、イメージのタグ付けはサポートされていません。これは、ビルドコマンドで行う必要があります。回避策として、ターゲットイメージ名を特定する docker-compose.yml でビルドを行い、その後に docker-compose build . docker-compose.ymlのサンプルは次のようなものです。

version: '2'

services:
  man:
    build: .
    image: dude/man:v2

とはいえ、composeでビルドするとswarmモードでのデプロイがうまくいかないので、composeでビルドすることを推奨しています。そのため、質問にあるようなコマンドを実行することになります。

docker build -t dude/man:v2 .

個人的には、自分のフォルダにある小さなシェルスクリプト(build.sh)でビルドすることが多いのですが、入力作業を省くために、任意の引数を渡してそこに画像の名前を含めます。そして、本番環境では、パイプラインスクリプト内に画像名を含むci/cdサーバーによってビルドが処理されます。