docker - dockerfile 中 ENV 变量中的点不起作用
问题描述
当我用名称中的点声明 ENV 变量时,它们没有正确设置。对于我正在 dockerizing 的框架,需要设置此变量:
framework.config.location
Dockerfile
ENV JAVA_HOME=/opt/java/jre1.8 \
framework.config.location=$HOME/framework/config
RUN echo $framework.config.location && \
cd $framework.config.location
.config.location
/bin/sh: 1: cd: 不能 cd 到 .config.location
解决方案
从像 bash 这样的 Unix shell 的角度来看,我认为framework.config.location
(通常是一个包含点的字符串)不是一个有效的标识符。
但是,您可以在 Dockerfile 的 ENV 部分中使用它:结果类似于
env framework.config.location=$HOME/framework/config TheCommand
但是您不能通过$framework.config.location
orf访问变量的值{$framework.config.location}
。您可以使用阅读它value=$(env | grep 'framework.config.location' | cut -f 2 -d '=')
,然后使用 as $value
...
推荐阅读
- if-statement - 谷歌表格 - 费用表的公式
- python - 如何修复“ Python Return Method不返回连接字符串中的整数
- macos - Shell:在 .CSV 中附加时,标题不会停留在顶部
- css - safari 上的边界半径不同
- python - Pandas 和 NumPy 不会读取整个文件
- mongodb - Mongo查询文档字段中数组列表中的2个值
- sql - 在列中的两个值之间重复值
- testing - Testing shared_preferences on flutter
- ruby-on-rails - NameError: unitialized constant ServiceName with default rspec configuration
- java - 使用 Maven 使用注释 @Tag("name_test") 过滤 JUnit 5 测试用例