【问题标题】:Unterminated quoted string in DockerDocker中未终止的引用字符串
【发布时间】:2018-02-06 10:35:23
【问题描述】:

我正在尝试在 docker 命令 shell 中打印一个循环。当我在第一行运行容器时,它似乎在执行 ID 时工作,但是当我打印日志时,它显示“语法错误:未终止的引号字符串” 我无法找出这里有什么问题?你能帮帮我吗?

C:\Users\Anik Barua
λ docker run -d --name simple2 busybox /bin/sh -c 'i=0; while true; do echo ; i=1; sleep 1; done'
8bb4bfbe11f24f897ba66bb090e010eed24fd8cf1685e7c0a41b77abe34f864d

C:\Users\Anik Barua
λ docker logs simple2
while: line 1: syntax error: unterminated quoted string

C:\Users\Anik Barua
λ docker logs -f simple2
while: line 1: syntax error: unterminated quoted string

【问题讨论】:

    标签: docker docker-for-windows


    【解决方案1】:

    我正在按照本教程设置 debezium 结构来监控 sql 数据库中的更改。(debezuim tutorial)

    docker run -it --rm --name mysqlterm --link mysql --rm mysql:5.7 sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
    

    问题是将'exec ...'中的单引号替换为双引号,它可以正常工作。

    工作版本

    docker run -it --rm --name mysqlterm --link mysql --rm mysql:5.7 sh -c "exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD""
    

    【讨论】:

      【解决方案2】:

      你的引用不正确,你不应该使用

      '

      但是

      "

      相反

      【讨论】:

      • 非常感谢,它现在工作了...你能帮我解决另一个问题吗?现在,似乎程序正在运行,因为光标将移至下一行,但它没有在控制台中显示数字。
      • 你的程序什么都没有回显,所以不显示什么是正常的,试试echo $i
      【解决方案3】:

      如果有任何未终止的字符串,请检查您的 Dockerfile。例如

      ENTRYPOINT ["java","-jar","/dockerdemo-1.0.jar]  
      

      而不是

      ENTRYPOINT ["java","-jar","/dockerdemo-1.0.jar"]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多