无法为〇〇创建容器:创建。:卷名太短,名称至少应包含两个字母数字字符


错误陈述

1
2
3
$ docker-compose up -d
中略
Cannot create container for service webserver: create .: volume name is too short, names should be at least two alphanumeric characters

我很生气,路径名

.太短。

原因

docker-compose.yml

1
2
3
4
5
6
version: "3.7"
services:
  webserver:
    volumes:
      - ./bar/:/foo/bar/
      - ${HOGE_CFG}:/foo/hoge.ctg

我检查了

docker-compose.yml,但是似乎没有任何卷仅将.指定为路径名。
所以我闪了一下,决定看一下第六行的$HOGE_CFG的内容。

1
$ echo $HOGE_CFG

shell变量$HOGE_CFG的内容为空。
由于$HOGE_CFG中没有任何内容,因此似乎docker-compose.yml的第六行与- .:/foo/hoge.ctg相同。

找到

$HOGE_CFG的定义位置并解决了未定义$HOGE_CFG的问题后,此问题也得到解决。

离题

在Ubuntu桌面上运行" rm -rf /"

例如,假设指定了诸如a = / var / tmp / log2之类的变量,并执行了诸如rm -rf $ a /之类的处理。如果变量a由于脚本重写或逻辑错误而为空,则将执行命令rm -rf /。由于rm -rf / *是在没有rm命令警告的情况下按原样执行的,因此,系统将完全崩溃,如下所示。

我认为这是同一种问题。
如果编写自己的脚本,如果在shell变量中指定了路径,那么如果shell变量中没有任何内容,它将是什么路径?我以为我要小心点。

参考文章

即使我指定了相对路径,我也想让docker运行!