使用 docker-compose 启动报错:No such file or directory 如何解决?

使用 docker-compose 方式启动容器,提示 No such file or directory,我怀疑是不是这里错了,docker-compose.yml 如下:

version: "3.1"

services:
  php:
    image: php:7.1.7-cli
    volumes:
      - .:/opt/php
    privileged: true
    command: ["/opt/php/docker/test_runner.sh"]

这里 volumes 想表达的是当前目录跟镜像中的 /opt/php 目录做共享,但是 windows 下可能不是这样写,试了 ./ 也不行,求解!

具体报错如下:

PS C:\Users\tanteng\website\DesignPatternsPHP> docker-compose up
Starting designpatternsphp_php_1 ...
Starting designpatternsphp_php_1 ... done
Attaching to designpatternsphp_php_1
: No such file or directory
designpatternsphp_php_1 exited with code 127
阅读 21.5k
2 个回答

给你看看我的 nginx 配置:

services:
    nginx:
        image: "nginx:alpine"
        container_name: oxf-nginx
        restart: on-failure
        ports:
            - "80:80"
        volumes:
            - ./data/conf/nginx.conf:/etc/nginx/nginx.conf
            - ./data/html/:/usr/share/nginx/html
            - ./data/log/:/var/log/nginx
        environment:
            - NGINX_PORT=80
        command: nginx -g 'daemon off;'

目录树如下:

.
├── data
│   ├── conf
│   │   └── nginx.conf
│   ├── html
│   │   ├── index.html
│   │   ├── test
│   │   │   ├── index.html
│   │   │   ├── test.htm
│   │   │   └── test.html
│   │   └── test.htm
│   └── log
│       ├── access.log
│       └── error.log
└── docker-compose.yaml

Windows或者Linux下,我一般都是直接写的绝对路径
同时也建议写成完整路径,这些看起来更加清晰易懂

volumes:
  - H:/code:/webser/www  # H是盘符,H:/code是Windows共享目录
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进