首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >传递环境变量时“无效的卷规范”

传递环境变量时“无效的卷规范”
EN

Stack Overflow用户
提问于 2020-08-11 15:32:50
回答 2查看 327关注 0票数 0

主机: Centos 7 Docker版本: 19.03.12,build 48a66213fe Docker组合版本:版本1.26.2,构建eefe0d31

我正在使用提供给这里的关于在shell中指定环境变量的建议,然后将这些变量传递到撰写文件中。所以我的docker-compose文件如下所示:

代码语言:javascript
复制
version: '3.8'
services:
 springboot:
  image: <my image>
  ports:
   - "8445:8445"
  depends_on:
   - "database"
  environment:
   - SPRING_PROFILES_ACTIVE=dev
 database:
  image: "mongo"

下面是我遇到的错误:

代码语言:javascript
复制
ERROR: for 39b165c237b9_deploy_springboot_1  Cannot create container for service springboot: invalid volume specification: 'a9d7debde5ffcba2a023c12d5f1e822567e9b4047a1bda76efeefbfc80c1f622:app/data:rw': invalid mount config for type "volume": invalid mount path: 'app/data' mount path must be absolute

相应的Docker文件确实有对VOLUME app/data的引用,但是这似乎没有争议。

如果我取出environment块,它似乎工作得很好(虽然应用程序启动时没有正确的配置,但至少没有错误)。

那么,向容器传递shell环境变量的正确方法是什么呢?

感谢@David,编辑,它确实是原始Docker文件中的卷声明--与docker-compose无关。删除了它,现在起作用了。谢谢!

EN

回答 2

Stack Overflow用户

发布于 2020-08-11 15:44:40

有两种方法可以指定停靠目录。

  • 绝对路径,即根路径,例如/var/lib
  • 相对路径,即相对于撰写文件,例如./app/data
票数 0
EN

Stack Overflow用户

发布于 2020-08-11 15:52:57

尝试用SPRING_PROFILES_ACTIVE: dev代替SPRING_PROFILES_ACTIVE: dev,所以用:替换=。还应该将volume添加到docker-compose文件中:

代码语言:javascript
复制
version: "3.8"
services:
    .
    .
  volumes:
   - Path/to/your/volume
  environment:
   ENV_VAR1: Value1
   ENV_VAR2: Value2
   .
   .
   .

根据错误消息,路径必须是绝对的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63361515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档