我试图设置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"
我的代码存储在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
我收到错误:
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.
我希望webpack获取app / symfony中的代码,并构建任何资产,然后nginx容器将提供这些资源。
答案 0 :(得分:1)
我遇到了类似的问题。
我的docker-compose.yml
看起来像这样
version: '3.1'
services:
nginx:
build:
context: ./server
ports:
- "8080:80"
volumes:
- ./fw:opt/www/app/
并得到错误“无效的挂载路径:'opt/www/app'挂载路径必须是绝对的 "
我通过在路径前添加斜杠来更改挂载路径来解决它。
volumes:
- ./fw: /opt/www/app/