4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Docker】全部小文字なのに "repository name must be lowercase" エラー

Last updated at Posted at 2021-08-21

ローカルにクローンしたリポジトリを Docker にマウントして実行しようとすると、「リポジトリは小文字で」エラーがでます。

$ docker run --rm -it -v $(pwd):/app golang:alpine /bin/sh
docker: invalid reference format: repository name must be lowercase.
See 'docker run --help'.

でも、リポジトリのディレクトリ名は小文字なんです。

「docker: invalid reference format: repository name must be lowercase」でググっても、リポジトリを別箇所に移動したり、Windows 情報ばかりだったので Linux/macOS の情報として自分のググラビリティとして。

TL; DR (今北産業)

  1. 理由: リポジトリの「パス」に半角スペースが含まれています

  2. 原因:
    Docker のボリューム(ディレクトリ)のマウントは、絶対パスである必要があります。しかし、パスが相対パスだったり、スペースが入っていると、引数を展開する際に複数の引数があると判断されてしまい構文(format)エラーになります

  3. 対処: パスをダブルクォートして 1 つの引数として扱います。

    ダブルクォートで囲う
    - $ docker run --rm -it -v $(pwd):/app golang:alpine /bin/sh
    + $ docker run --rm -it -v "$(pwd)":/app golang:alpine /bin/sh
    

pwd は Linux/macOS の UNIX 系コマンドで、現在の作業ディレクトリのパスを返すコマンドです。カレント・ディレクトリの絶対パスを表示する際に使われます。
また、$(...)... を実行した結果を返すコマンドです。() でサブシェル(別プロセス)として実行し、$ で内容を出力します。
シェルの構文であるため、bash でも使えるコマンドなので、Windows でも WSL2 がインストールされていれば Bash on Windows でも使える tips になります。

4
1
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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?