Docker卷“ ./lib:/lib”导致“没有这样的文件或目录

时间:2020-10-07 10:55:44

标签: spring docker docker-compose

我有一个简单的Spring Dockerfile:

FROM openjdk:8-jdk-alpine

VOLUME /tmp

ARG JAR_FILE=target/chatbot-2.4.3.jar

COPY ${JAR_FILE} /opt/sprintbotserver/chatbot.jar
COPY . /opt/sprintbotserver

ENTRYPOINT ["java","-jar","./opt/sprintbotserver/chatbot.jar"]

我正在通过docker-compose.yml进行部署:

version: "3"
services:
  sprintbotserver:
    container_name: sprintbotserver
    image: sprintbotserver:latest
    volumes:
      - "./logs:/logs"
      - "./chatbots:/chatbots"
      - "./config:/config"
      - "./db:/db"
      - "./demo:/demo"
      - "./dic:/dic"
      - "./lib:/lib"    //this line causes error
      - "./models:/models"
      - "./service:/service"
    ports:
      - "8080:8080"

我已经在令人烦恼的一行上发表了评论。除这一卷外,所有卷均按预期工作。添加此行后,我得到standard_init_linux.go:211: exec user process caused "no such file or directory"

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

/lib是Linux中的标准目录,包含系统的重要部分;在上面安装其他任何东西可能会使几乎所有内容崩溃。

您可以(a)使用其他目录名称,还是(b)在子目录中运行整个程序(例如/opt,然后再使用./lib:/opt/lib)?

答案 1 :(得分:0)

好的,我缺少的关键字是WORKDIR:)