Docker“无效的安装路径app/symfony”必须是绝对的

Rya*_*iss 7 nginx symfony docker webpack docker-compose

我正在尝试设置 Webpack 以与 docker 一起运行。我希望将其放入自己的容器中,构建文件,然后 nginx 将在其容器上提供生成的代码。

我的docker-compose.yml文件如下所示:

nginx: 
    build: ./nginx/
    ports:
     - 80:80
    links:
     - php
    volumes_from:
      - app
php:
    build: ./php/
    expose:
        - 9000
    links:
        - mysql
    volumes_from:
        - app

app:
    image: php:7.0-fpm
    volumes:
      - ./app/symfony:/var/www/html
    command: "true"

web:
    build: ./webpack
    volumes_from:
        - app
mysql:
    image: mysql:latest
    volumes_from:
        - data
    environment:
        MYSQL_ROOT_PASSWORD: secret
        MYSQL_DATABASE: project
        MYSQL_USER: project
        MYSQL_PASSWORD: project

data:
    image: mysql:latest
    volumes:
        - /var/lib/mysql
    command: "true"
Run Code Online (Sandbox Code Playgroud)

我的代码存储在该app/symfony目录中。webpack 容器的 Dockerfile 当前为:

FROM node:wheezy

WORKDIR /app

RUN apt-get update
RUN apt-get install curl -y
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - && apt-get install nodejs -y
RUN npm install webpack -g
RUN npm install
CMD webpack --watch --watch-polling
Run Code Online (Sandbox Code Playgroud)

我收到错误:

ERROR: for web  Cannot create container for service web: invalid bind mount spec "a60f89607640b36a468b471378a6b7079dfa5890db994a1228e7809b93b8b709:app/symfony:rw": invalid volume specification: 'a60f89607640b36a468b471378a6b7079dfa5890db994a1228e7809b93b8b709:app/symfony:rw': invalid mount config for type "volume": invalid mount path: 'app/symfony' mount path must be absolute
ERROR: Encountered errors while bringing up the project.
Run Code Online (Sandbox Code Playgroud)

我希望 webpack 获取 app/symfony 中的代码,并构建任何资产,然后 nginx 容器将为这些提供服务。

小智 7

我有类似的问题。我的docker-compose.yml看起来像这样

version: '3.1'
services:
  nginx:
    build:
      context: ./server
    ports:
      - "8080:80"
    volumes:
      - ./fw:opt/www/app/
Run Code Online (Sandbox Code Playgroud)

并收到错误“无效的安装路径:'opt/www/app'安装路径必须是绝对的”

我通过在路径前面添加斜杠来更改安装路径来解决这个问题。

 volumes:
          - ./fw: /opt/www/app/
Run Code Online (Sandbox Code Playgroud)