【问题标题】:Linked-Data-Theater | standard_init_linux.go:195: exec user process caused "no such file or directory"链接数据剧院 | standard_init_linux.go:195: exec 用户进程导致“没有这样的文件或目录”
【发布时间】:2018-03-01 07:46:06
【问题描述】:

在为 git 项目运行 docker-compose upLinked-Data-Theater 我收到错误standard_init_linux.go:195: exec user process caused "no such file or directory

下面是堆栈跟踪,

ifour.techno@ifour-137 MINGW64 /d/test/Docker/LinkData_Theater_Repo/Linked-Data-Theatre (master)
$ docker-compose up
Starting virtuoso ...
Starting ldt ... done
Attaching to virtuoso, ldt
virtuoso    | standard_init_linux.go:195: exec user process caused "no such file or directory"
ldt         | Mar 01, 2018 7:35:47 AM org.apache.catalina.startup.VersionLoggerListener log
ldt         | INFO: Server version:        Apache Tomcat/7.0.85
ldt         | Mar 01, 2018 7:35:47 AM org.apache.catalina.startup.VersionLoggerListener log
ldt         | INFO: Server built:          Feb 7 2018 18:52:33 UTC
ldt         | Mar 01, 2018 7:35:47 AM org.apache.catalina.startup.VersionLoggerListener log
ldt         | INFO: Server number:         7.0.85.0
ldt         | Mar 01, 2018 7:35:47 AM org.apache.catalina.startup.VersionLoggerListener log
ldt         | INFO: OS Name:               Linux
ldt         | Mar 01, 2018 7:35:47 AM org.apache.catalina.startup.VersionLoggerListener log
ldt         | INFO: OS Version:            4.4.111-boot2docker
ldt         | Mar 01, 2018 7:35:47 AM org.apache.catalina.startup.VersionLoggerListener log
ldt         | INFO: Architecture:          amd64
ldt         | Mar 01, 2018 7:35:47 AM org.apache.catalina.startup.VersionLoggerListener log
ldt         | INFO: Java Home:             /usr/lib/jvm/java-8-openjdk-amd64/jre
ldt         | Mar 01, 2018 7:35:47 AM org.apache.catalina.startup.VersionLoggerListener log
ldt         | INFO: JVM Version:           1.8.0_151-8u151-b12-1~deb9u1-b12
ldt         | Mar 01, 2018 7:35:47 AM org.apache.catalina.startup.VersionLoggerListener log
ldt         | INFO: JVM Vendor:            Oracle Corporation
ldt         | Mar 01, 2018 7:35:47 AM org.apache.catalina.startup.VersionLoggerListener log
ldt         | INFO: CATALINA_BASE:         /usr/local/tomcat
ldt         | Mar 01, 2018 7:35:47 AM org.apache.catalina.startup.VersionLoggerListener log
ldt         | INFO: CATALINA_HOME:         /usr/local/tomcat
virtuoso exited with code 1
ldt         | Mar 01, 2018 7:35:47 AM org.apache.catalina.startup.VersionLoggerListener log
ldt         | INFO: Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
ldt         | Mar 01, 2018 7:35:47 AM org.apache.catalina.startup.VersionLoggerListener log
ldt         | INFO: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
ldt         | Mar 01, 2018 7:35:47 AM org.apache.catalina.startup.VersionLoggerListener log
ldt         | INFO: Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
ldt         | Mar 01, 2018 7:35:47 AM org.apache.catalina.startup.VersionLoggerListener log
ldt         | INFO: Command line argument: -Dignore.endorsed.dirs=
ldt         | Mar 01, 2018 7:35:47 AM org.apache.catalina.startup.VersionLoggerListener log
ldt         | INFO: Command line argument: -Dcatalina.base=/usr/local/tomcat
ldt         | Mar 01, 2018 7:35:47 AM org.apache.catalina.startup.VersionLoggerListener log
ldt         | INFO: Command line argument: -Dcatalina.home=/usr/local/tomcat
ldt         | Mar 01, 2018 7:35:47 AM org.apache.catalina.startup.VersionLoggerListener log
ldt         | INFO: Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
ldt         | Mar 01, 2018 7:35:48 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
ldt         | INFO: Loaded APR based Apache Tomcat Native library 1.2.16 using APR version 1.5.2.
ldt         | Mar 01, 2018 7:35:48 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
ldt         | INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
ldt         | Mar 01, 2018 7:35:48 AM org.apache.catalina.core.AprLifecycleListener initializeSSL
ldt         | INFO: OpenSSL successfully initialized (OpenSSL 1.1.0f  25 May 2017)
ldt         | Mar 01, 2018 7:35:48 AM org.apache.coyote.AbstractProtocol init
ldt         | INFO: Initializing ProtocolHandler ["http-apr-8080"]
ldt         | Mar 01, 2018 7:35:48 AM org.apache.coyote.AbstractProtocol init
ldt         | INFO: Initializing ProtocolHandler ["ajp-apr-8009"]
ldt         | Mar 01, 2018 7:35:48 AM org.apache.catalina.startup.Catalina load
ldt         | INFO: Initialization processed in 890 ms
ldt         | Mar 01, 2018 7:35:48 AM org.apache.catalina.core.StandardService startInternal
ldt         | INFO: Starting service Catalina
ldt         | Mar 01, 2018 7:35:48 AM org.apache.catalina.core.StandardEngine startInternal
ldt         | INFO: Starting Servlet Engine: Apache Tomcat/7.0.85
ldt         | Mar 01, 2018 7:35:48 AM org.apache.coyote.AbstractProtocol start
ldt         | INFO: Starting ProtocolHandler ["http-apr-8080"]
ldt         | Mar 01, 2018 7:35:48 AM org.apache.coyote.AbstractProtocol start
ldt         | INFO: Starting ProtocolHandler ["ajp-apr-8009"]

在这个堆栈跟踪中,您可以看到standard_init_linux.go:195: exec user process caused "no such file or directory

下面是我的docker-compose.yml文件,

version: '2'

services:
  ldt:
    privileged: true
    container_name: ldt
    image: tomcat:7-jre8
    hostname: ldt.local
    ports:
      - "8080:8080"
    volumes:
      - ./webapps:/usr/local/tomcat/webapps
      - ./shared_import:/usr/local/tomcat/temp:z
    networks:
      - ldt

  virtuoso:
    privileged: true
    container_name: virtuoso
    build:
      context: virtuoso
    hostname: virtuoso.local
    ports:
      - "1111:1111"
      - "8890:8890"
    environment:
      DBA_PASSWORD: "dba"
      SPARQL_UPDATE: "true"
      VIRTUOSO_DBA_PWD: dba
    volumes:
      - ./virtuoso_data:/var/lib/virtuoso/db:z
      - ./shared_import:/var/lib/virtuoso/usr/local/tomcat/temp:z
    networks:
      - ldt

networks:
  ldt:
    external:
      name: ldt

缺少什么?我是 docker 的初学者,所以请帮我解决这个问题,也给我一些建议。我用谷歌搜索了它,但在任何地方都没有找到问题的解决方案。

我也尝试了docker-compose up --build,但得到与上述相同的错误。

【问题讨论】:

  • 这看起来更像是a Linked-Data-Theater issue,而不是 docker 或 Virtuoso 问题。
  • 其实这个看起来很像Issue #60。假设这是一个 Virtuoso 启动问题,请检查virtuoso.log,它可能会提供有关丢失文件的更具体信息。如果那里什么都没有,系统日志可能会显示失败的特定和完整命令,从而导致解决方案。

标签: docker docker-compose dockerfile virtuoso


【解决方案1】:

您遇到的问题可能有几个原因,我通过尝试以下方法解决了同样的问题:-

  1. 确保所有文件夹都存在,这在您的 docker compose 中看起来不错
  2. 将一些shell脚本文件从windows复制到unix docker容器,确保复制后执行dos2unix命令。在复制特殊字符时添加可能会导致上述问题。

请添加您的 docker 文件,它可能是在 docker 文件中而不是在 docker-compose 中

【讨论】:

    【解决方案2】:

    如果您使用 Windows 作为主机操作系统,则此答案适用。

    Yml 文件不允许查明问题的确切位置。 问题似乎出在您的 virtuoso 容器内。您需要查看此容器在启动时运行的文件。很可能它有一个行尾格式错误的 .sh 文件。文件中的行尾在某个时候从 Unix 格式 (LF) 转换为 Windows 格式 (CR LF)。

    如果这种转换发生在将在 Docker 容器内运行的 .sh 文件上,Linux 将无法识别 Windows 格式的行尾,并将整个文件视为一行。会导致类似standard_init_linux.go:XXX: exec user process caused "no such file or directory"的错误

    原因

    EOL 转换可能由于以下原因之一发生:

    • 您的本地 Git 配置为在您 git pull 来源时自动将行尾转换为 Windows 格式 (autocrlf = true)
    • 您在 Windows 的某个编辑器中保存了其中一个文件,因此它以 CR LF 行结尾保存

    解决方案

    • 作为一种快速修复,您可以在 Notepad++ 中打开文件,转到菜单 Edit/EOL Conversion/Unix,然后保存文件
    • 另一个快速修复:使用 CLI 工具 dos2unix 从命令行转换文件
    • 通过关闭自动转换为 Windows EOL 格式来更改 git 配置:

    git config --global core.autocrlf 输入

    它将全局更改设置,适用于您机器上的所有存储库

    您也可以设置它每个存储库。 详情请见https://help.github.com/articles/dealing-with-line-endings/

    【讨论】:

      猜你喜欢
      • 2018-12-07
      • 2020-10-25
      • 2020-08-03
      • 2019-01-01
      • 2019-09-19
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多