我有一个 c++ 编译的二进制文件(我们称之为 cbin),我将它添加到 docker 映像中并希望从 java 中执行。
我尝试了几乎所有的参数Runtime.exec:
Runtime.getRuntime().exec(new String[]{"/bin/sh", "cbin"});
Runtime.getRuntime().exec(new String[]{"bash", "-c", "cbin"});
Runtime.getRuntime().exec("cbin");
没有任何效果!
我的 Dockerfile:
FROM openjdk:8-jre-alpine
VOLUME ["/root/.config"]
RUN apk --no-cache add bash
ENV PATH="/app:$PATH"
WORKDIR /app
COPY cbin cbin
COPY ./entrypoint.sh /entrypoint.sh
ENTRYPOINT [ "/entrypoint.sh" ]
入口点.sh:
#!/usr/bin/env sh
set -e
JAVA_ARGS="-cp jar.jar ClassToRun"
chmod +x cbin
java ${JAVA_ARGS}
我尝试运行:
Runtime.getRuntime().exec("ls");
我在那里看到文件,但我不断收到command not found或IOException: no such file or directory error=2等等......