【问题标题】:Docker and RUN sed string escapeDocker 和 RUN sed 字符串转义
【发布时间】:2019-09-17 10:07:48
【问题描述】:

我在 Dockerfile 中转义字符串时遇到问题

RUN sed '$ i\<user username=\"${TOMCAT_USER}\" password=\"${TOMCAT_USER_PASSWORD}\" roles=\"${TOMCAT_USER_ROLES}\"\/>' ${CATALINA_HOME}/conf/tomcat-users.xml

在 shell 中直接运行相同的命令完美无缺:

sed '$ i\<user username=\"${TOMCAT_USER}\" password=\"${TOMCAT_USER_PASSWORD}\" roles=\"${TOMCAT_USER_ROLES}\"\/>' ${CATALINA_HOME}/conf/tomcat-users.xml

我还需要为 Dockerfile 转义什么?

【问题讨论】:

  • 你能用你得到的错误更新你的问题吗?
  • 我没有收到错误,它只是不起作用(它应该在文件中的最后一行之前放置一行)看起来它执行了,但不起作用。手动执行命令有效
  • 你能构建镜像,运行容器并检查tomcat-users.xml吗?如果没有更改,则说明 CATALINA_HOME 定义不正确。如果添加了新行,那么我认为您可以从那里推断出问题所在。你如何传递变量?您应该将它们作为 ARG 而不是 ENV 传递。
  • 我只是没有将-i 传递给 sed 命令...

标签: docker sed escaping dockerfile


【解决方案1】:

我的天……

我只是忘记将-i 参数传递给 sed 命令以将其作为就地操作执行...

解决了。

【讨论】:

    猜你喜欢
    • 2011-01-05
    • 2015-01-17
    • 1970-01-01
    • 2019-11-15
    • 2012-02-17
    • 2014-06-14
    • 1970-01-01
    相关资源
    最近更新 更多