docker-compose up"无法启动服务前端:oci运行时错误:不是目录"

时间:2016-09-20 02:31:08

标签: docker docker-compose

我尝试使用Docker Compose启动一系列Docker容器。问题是我不断收到一条错误消息,指出目录无效。我不知道我的dos目录不存在。

这是我的docker-compose.yaml(在myProj文件夹中):

version: '2'
services:
  postgres:
    build: ./postgres
    environment:
      - POSTGRES_PASSWORD=mysecretpassword
  frontend:
    build: ./frontend
    ports:
      - "4567:4567"
    depends_on:
      - postgres
  backend:
    build: ./backend
    ports:
       - "5000:5000"
    depends_on:
       - postgres

我的后端容器中的docker文件(myProj / backend):

FROM openjdk:8-alpine
ADD ./backend-0.0.1-SNAPSHOT.jar /usr/src/myproj/
WORKDIR /usr/src/myproj/
CMD java -jar backend-0.0.1-SNAPSHOT.jar

当我跑步" docker-compose up"我收到以下消息:

docker_postgres_1 is up-to-date
Starting docker_backend_1
Starting docker_frontend_1

ERROR: for frontend  Cannot start service frontend: oci runtime error: not a directory

ERROR: for backend  Cannot start service backend: oci runtime error: not a directory
ERROR: Encountered errors while bringing up the project.

似乎Postgres容器构建良好。我需要修复哪个目录?

编辑: 文件夹结构

myProj
  - postgres
    - Dockerfile
  - frontend
    - Dockerfile
    - frontend-0.0.1-SNAPSHOT.jar
  - backend
    - Dockerfile
    - backend-0.0.1-SNAPSHOT.jar

2 个答案:

答案 0 :(得分:1)

首先尝试重新启动Docker服务。

如果这不起作用,请在Dockerfile中的FROM语句之后添加:

RUN mkdir -p /usr/src/myproj/

答案 1 :(得分:0)

我(有点)解决了我自己的问题。我决定使用Vagrant实例化CoreOS VM。一旦我使用CoreOS运行Docker-Compose,一切都开始正常工作。事实证明问题不在我的实现中,但它必须是Docker-Compose,Docker-Machine或Docker的错误。

给我带来问题的版本是:

  • docker-compose版本1.8.0,build d988a55
  • docker-machine version 0.8.0,build b85aac1
  • docker version 1.12.0,build 8eab29e

在使用VirtualBox的Windows 10上运行时。