【问题标题】:Apache PredictionIO - Docker run failedApache PredictionIO - Docker 运行失败
【发布时间】:2019-04-22 13:36:49
【问题描述】:

我一直在尝试http://predictionio.apache.org/install/install-docker/ 这个教程。我已经成功构建了 Docker 映像,但是当我尝试运行 docker run 时,我得到了 Can't open /etc/predictionio/pio-env.sh 错误。

  1. docker build -t predictionio/pio pio
  2. docker run -ti predictionio/pio

PS:如果我注释掉最后一行 CMD ["sh", "/usr/bin/pio_run"] 我可以成功构建和运行 docker 镜像。我也可以从 docker bash 打开文件。

【问题讨论】:

    标签: docker predictionio


    【解决方案1】:

    我认为您需要授予执行此文件的权限。在 Dockerfile 末尾添加以下行

    RUN chmod +x pio_run.sh 
    

    另外,您可能需要将 CMD 更改为 ENTRYPOINT,如下所示:

    ENTRYPOINT ["sh","/usr/bin/pio_run.sh"]
    

    【讨论】:

    • 我已添加 EXEUTE。没有运气。我会试试ENTRYPOINT ["sh","/usr/bin/pio_run.sh"]
    • 相同的结果... :(
    • @biligunb 你的工作目录是什么?似乎在 /usr/bin 中找不到该脚本。确保它在那里。您可以运行 cd /usr/bin&&ls 以确保
    【解决方案2】:

    您的输出表明您正在运行 Windows。您是使用默认命令提示符还是使用 docker 终端?过去我在 Windows 上遇到过同样的错误消息,但在再次尝试教程后它神秘地消失了。我不确定我做了什么不同,除了我可能使用 docker 而不是默认的命令提示符......

    您是否也可以尝试使用 docker-compose 而不是教程中描述的普通 docker 命令?

    在启动 PIO 之前,确保您的存储(Postgres、MySQL 或 ElasticSearch)也在运行。

    【讨论】:

    • 是的。赢 10 专业版。我正在使用命令提示符CMD,我首先尝试了docker-compose,但无济于事。然后我尝试登录 bash 并从 docker 运行。
    【解决方案3】:

    刚刚在我的机器上解决了。

    当您在 Windows 上克隆存储库时,git 将行尾符号从 Unix 样式 (\n) 转换为 Windows 样式 (\r\n)。

    您需要打开文件 C:\wherever-you-cloned-pio-repository\predictionio\docker\pio\pio_run 并将其更改回来(例如,使用 Visual Studio Code 或 Notepad++)。然后你需要重建图像,它应该可以工作。

    此外,您可能希望将来禁用自动转换Disable git EOL Conversions

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-24
      • 1970-01-01
      • 2021-06-03
      • 2011-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多