“b'OCI 运行时创建失败:container_linux.go:380?
"b'OCI runtime create failed: container_linux.go:380?
Client Error: Bad Request ("b'OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "/usr/lib/jvm/java-8-openjdk-amd64/bin/java": stat /usr/lib/jvm/java-8-openjdk-amd64/bin/java: no such file or directory: unknown'")
这是我的错误,当我使用 docker-compose 和 docker 时,我无法解决这个问题
我的版本
Client: Docker Engine - Community
Version: 19.03.12
API version: 1.40
Go version: go1.13.10
Git commit: 48a66213fe
Built: Mon Jun 22 15:45:44 2020
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.12
API version: 1.40 (minimum version 1.12)
Go version: go1.13.10
Git commit: 48a66213fe
Built: Mon Jun 22 15:44:15 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.12
GitCommit: 7b11cfaabd73bb80907dd23182b9347b4245eb5d
runc:
Version: 1.0.2
GitCommit: v1.0.2-0-g52b36a2
docker-init:
Version: 0.18.0
GitCommit: fec3683
docker compose version
docker-compose version 1.25.0, build unknown
docker-py version: 4.1.0
CPython version: 3.8.10
OpenSSL version: OpenSSL 1.1.1f 31 Mar 2020
Docker 文件
FROM openjdk:8-jdk
# Install maven
RUN apt-get update
RUN apt-get install -y maven
WORKDIR /code
# Prepare by downloading dependencies
ADD pom.xml /code/pom.xml
RUN ["mvn", "dependency:resolve", "-U"]
RUN ["mvn", "verify"]
# Adding source, compile and package into a fat jar
ADD src /code/src
RUN ["mvn", "package", "-DskipTest=True", "-Dmaven.javadoc.skip=true", "-Dmaven.test.skip=true", "--offline"]
EXPOSE 4458
# CMD ["ls", "-la", "target/"]
ENTRYPOINT ["/usr/lib/jvm/java-8-openjdk-amd64/bin/java", "-jar", "target/pbft-jar-with-dependencies.jar"]
docker-compose.yml
version: '2'
services:
node_java:
extends:
file: docker-compose.node-java.yml
service: node
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
NODE_DEBUG: "False"
docker-compose.node-java.yml
version: '2'
services:
node:
build: .
environment:
NODE_PORT: 4458
command: ["-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"]
# restart: "unless-stopped"
# stdin_open: true
node-pi:
build:
context: .
dockerfile: ARM.Dockerfile
environment:
NODE_PORT: 4458
任何建议都会有所帮助!!!
非常感谢
我认为图像中 java 可执行文件的路径与您使用的路径不同。
您可以尝试像这样替换您的 DOCKERFILE 中的路径吗?
ENTRYPOINT ["/usr/local/openjdk-8/bin/java", "-jar", "target/pbft-jar-with-dependencies.jar"]
我使用以下程序来找出答案:
docker pull openjdk:8-jdk
docker run openjdk:8-jdk
docker container ls -a
mkdir -p /tmp/snapshot
cd /tmp/snapshot
docker export 7778d9fa6ce9> snapshot.tar
tar -xvf snapshot.tar
find . -type f -name java
修改旧 java 站点
至此
/usr/local/openjdk-8/bin/java
错误
秒
我使用旧版本 docker 和 docker-compose
修复了这个问题
修改版本:
由于我的项目是2017年的,所以我选择了docker的旧版本和接近2017年的dockercompose版本
详细版
docker-ce | 5:18.09.0~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker撰写
https://github.com/docker/compose/releases/tag/1.16.1
1.16.1
Client Error: Bad Request ("b'OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "/usr/lib/jvm/java-8-openjdk-amd64/bin/java": stat /usr/lib/jvm/java-8-openjdk-amd64/bin/java: no such file or directory: unknown'")
这是我的错误,当我使用 docker-compose 和 docker 时,我无法解决这个问题 我的版本
Client: Docker Engine - Community
Version: 19.03.12
API version: 1.40
Go version: go1.13.10
Git commit: 48a66213fe
Built: Mon Jun 22 15:45:44 2020
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.12
API version: 1.40 (minimum version 1.12)
Go version: go1.13.10
Git commit: 48a66213fe
Built: Mon Jun 22 15:44:15 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.12
GitCommit: 7b11cfaabd73bb80907dd23182b9347b4245eb5d
runc:
Version: 1.0.2
GitCommit: v1.0.2-0-g52b36a2
docker-init:
Version: 0.18.0
GitCommit: fec3683
docker compose version
docker-compose version 1.25.0, build unknown
docker-py version: 4.1.0
CPython version: 3.8.10
OpenSSL version: OpenSSL 1.1.1f 31 Mar 2020
Docker 文件
FROM openjdk:8-jdk
# Install maven
RUN apt-get update
RUN apt-get install -y maven
WORKDIR /code
# Prepare by downloading dependencies
ADD pom.xml /code/pom.xml
RUN ["mvn", "dependency:resolve", "-U"]
RUN ["mvn", "verify"]
# Adding source, compile and package into a fat jar
ADD src /code/src
RUN ["mvn", "package", "-DskipTest=True", "-Dmaven.javadoc.skip=true", "-Dmaven.test.skip=true", "--offline"]
EXPOSE 4458
# CMD ["ls", "-la", "target/"]
ENTRYPOINT ["/usr/lib/jvm/java-8-openjdk-amd64/bin/java", "-jar", "target/pbft-jar-with-dependencies.jar"]
docker-compose.yml
version: '2'
services:
node_java:
extends:
file: docker-compose.node-java.yml
service: node
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
NODE_DEBUG: "False"
docker-compose.node-java.yml
version: '2'
services:
node:
build: .
environment:
NODE_PORT: 4458
command: ["-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"]
# restart: "unless-stopped"
# stdin_open: true
node-pi:
build:
context: .
dockerfile: ARM.Dockerfile
environment:
NODE_PORT: 4458
任何建议都会有所帮助!!!
非常感谢
我认为图像中 java 可执行文件的路径与您使用的路径不同。 您可以尝试像这样替换您的 DOCKERFILE 中的路径吗?
ENTRYPOINT ["/usr/local/openjdk-8/bin/java", "-jar", "target/pbft-jar-with-dependencies.jar"]
我使用以下程序来找出答案:
docker pull openjdk:8-jdk
docker run openjdk:8-jdk
docker container ls -a
mkdir -p /tmp/snapshot
cd /tmp/snapshot
docker export 7778d9fa6ce9> snapshot.tar
tar -xvf snapshot.tar
find . -type f -name java
修改旧 java 站点
至此
/usr/local/openjdk-8/bin/java
错误
秒 我使用旧版本 docker 和 docker-compose
修复了这个问题修改版本:
由于我的项目是2017年的,所以我选择了docker的旧版本和接近2017年的dockercompose版本
详细版
docker-ce | 5:18.09.0~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker撰写
https://github.com/docker/compose/releases/tag/1.16.1
1.16.1