在docker中编译资产。怎么做对?

时间:2019-01-19 07:59:50

标签: docker webpack docker-compose

在我的应用中,我有许多不同的Docker容器,包括nginxnode。在我的node构建过程中下载依赖项并编译资产后,它们对我的其他容器和主机不可用。

另一方面,如果我挂载卷,node_modules和我的public将被覆盖,那么我的问题是:如何在docker环境中处理编译资产?

这就是我的docker-compose.yml和我的Dockerile的样子:

version: '3.5'

services:
  nginx:
    image: nginx:latest
    volumes:
      - ./:/var/www
      - ./.docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
    working_dir: /var/www
    ports:
      - 8282:80

  node:
    build:
      context: ./
      dockerfile: Dockerfile
    tty: true

Dockerfile:

FROM node:8.15-slim

WORKDIR /var/www
COPY package.json yarn.lock ./

RUN yarn

COPY webpack.config.js ./
COPY resources ./resources/
COPY public ./public/

RUN yarn run dev

如您所见,我没有在node容器上装载任何卷,因此很明显,在public目录中托管“看不到”我的编译资产。

如果装载卷,public文件夹将被覆盖,因为主机的public文件夹为空,所以我也看不到资产。

  node:
    build:
      context: ./
      dockerfile: .docker/node/Dockerfile
    tty: true
    volumes:
      - ./package.json:/var/www/package.json
      - ./yarn.lock:/var/www/yarn.lock
      - ./resources:/var/www/resources
      - ./public/js:/var/www/public/js

0 个答案:

没有答案