ERROR: Service ‘server’ failed to build: Error parsing reference: “node:10 as frontend-builder” is not a valid repository/tag: invalid reference format

はじめに

git cloneしたリポジトリで “` docker build “` を行ったところ、“` invalid reference format “`というエラーが発生したので、原因と対策について記載する。

エラー内容

docker build .
Sending build context to Docker daemon 7.027 MB
Step 1/18 : FROM node:10 as frontend-builder
Error parsing reference: "node:10 as frontend-builder" is not a valid repository/tag: invalid reference format

原因

Dockerにmulti stage buildという事ができるようになった事をきっかけに、Dockerfileの書き方が数年前に変わった。

この記事(https://qiita.com/minamijoyo/items/711704e85b45ff5d6405)にわかりやすく解説してある。

multi stage buildの名前の通り、docker buildを複数のビルドに分割して実行できる。

手元のdockerのversionを確認すると、確かに古かった。

Client:
 Version:         1.13.1
 API version:     1.26
 Package version: docker-1.13.1-102.git7f2769b.el7.centos.x86_64
 Go version:      go1.10.3
 Git commit:      7f2769b/1.13.1
 Built:           Mon Aug  5 15:09:42 2019
 OS/Arch:         linux/amd64

Server:
 Version:         1.13.1
 API version:     1.26 (minimum version 1.12)
 Package version: docker-1.13.1-102.git7f2769b.el7.centos.x86_64
 Go version:      go1.10.3
 Git commit:      7f2769b/1.13.1
 Built:           Mon Aug  5 15:09:42 2019
 OS/Arch:         linux/amd64
 Experimental:    false

対処

dockerをremoveし、最新のdocker(docker-ce)をインストールした。

# rpm -qa | grep docker
docker-common-1.13.1-102.git7f2769b.el7.centos.x86_64
docker-client-1.13.1-102.git7f2769b.el7.centos.x86_64
docker-1.13.1-102.git7f2769b.el7.centos.x86_64

削除

rpm -e docker
rpm -e docker-client
rpm -e docker-common

その後、インストール。
インストール手順は以下公式ドキュメントを参照。

https://weblabo.oscasierra.net/docker-ce-install-centos7/