You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Docker传递含等号环境变量时触发无效引用格式错误求助

解决Docker Run传递含等号环境变量时的"invalid reference format"错误

我一眼就看出问题所在了——你的Docker命令格式写错了!

你在传递第二个环境变量APP_DB_PASSWORD的时候,没有加上--env(或者简写-e)参数,这就导致Docker把APP_DB_PASSWORD=gAAAAABhRil3bGI9o_nCmMEf6oJ3cBuMD6y9to6GX05apQp2GO3GPkxrmeOLBfzeKNPPsp_P8vX2tma3EUEM7m5DuI94K84riA==当成了镜像名称来解析。而镜像名称要求全小写,这里的APP_DB_PASSWORD有大写字母,所以触发了docker: invalid reference format: repository name must be lowercase这个错误。和环境变量里的等号其实没关系,等号本身是环境变量键值对的合法分隔符。

正确的命令写法

你需要给每个环境变量都单独加上--env参数,正确的命令应该是这样的:

docker run --env FERNET_KEY=Jo9HlTULeWylXz39Q25v9cqsHx4_7ZDAHlsQPuJiiHY= --env APP_DB_PASSWORD=gAAAAABhRil3bGI9o_nCmMEf6oJ3cBuMD6y9to6GX05apQp2GO3GPkxrmeOLBfzeKNPPsp_P8vX2tma3EUEM7m5DuI94K84riA== localhost:5000/app-name_app-name

或者用更简洁的-e简写参数:

docker run -e FERNET_KEY=Jo9HlTULeWylXz39Q25v9cqsHx4_7ZDAHlsQPuJiiHY= -e APP_DB_PASSWORD=gAAAAABhRil3bGI9o_nCmMEf6oJ3cBuMD6y9to6GX05apQp2GO3GPkxrmeOLBfzeKNPPsp_P8vX2tma3EUEM7m5DuI94K84riA== localhost:5000/app-name_app-name

额外注意事项

  • 每个环境变量都需要单独用--env/-e声明,不能把多个键值对堆在同一个参数后面
  • 如果环境变量值里包含空格、引号这类特殊字符,记得用单引号或双引号把值括起来,比如:-e MY_VAR="hello world"
  • Docker对镜像名称的大小写要求很严格,必须全小写,哪怕是私有仓库的镜像也不能违反这个规则

内容的提问来源于stack exchange,提问作者vector8188

火山引擎 最新活动