【发布时间】: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