はじめに
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/