6

这是使用 Docker。它在使用时有效,wsl2但在使用时hyper-v我遇到了问题。

我正在尝试运行mix watch -- --watch-options-poll=3000,或者mix --production每次运行时都会遇到以下问题。

[webpack-cli] [错误:EEXIST:文件已存在,打开 '/var/www/html/public/website/images/e-side.png'] { errno:-17,
代码:'EEXIST',系统调用: '打开',路径:'/var/www/html/public/website/images/e-side.png' }

webpack.mix.js

const mix = require('laravel-mix');
const oldMix = require('laravel-mix');
const path = require('path');
const glob = require('glob');
const PurgeCSSPlugin = require('purgecss-webpack-plugin');

//-- Website Mix --
mix.babelConfig({
   plugins: ['@babel/plugin-syntax-dynamic-import', '@babel/plugin-proposal-class-properties', '@babel/plugin-proposal-optional-chaining'],
});

mix.webpackConfig({
    watchOptions: {
        ignored: /node_modules/
    },
    stats: {
        warnings: false,
    },
    output: {
        chunkFilename: 'website/js/chunks/[chunkhash].js',//replace with your path
    },
    resolve: {
        alias: {
            '@fonts': path.resolve(__dirname, 'resources/website/styles/fonts'),
            '@images': path.resolve(__dirname, 'resources/website/images')
        }
    },
    plugins: [
        new PurgeCSSPlugin({
            paths: glob.sync('website/*',  { nodir: true }),
        })
    ]
});

mix.options({
    postCss: [
        require('autoprefixer'),
    ],
    fileLoaderDirs:  {
        fonts: 'website/fonts',
        images: 'website/images'
    }
});

mix.js('resources/website/index.js', 'public/website/js').react();
mix.version();
//-- Website Mix End --

//-- Old Application and Dashboard --
oldMix.webpackConfig({
    watchOptions: {
        ignored: /node_modules/
    }
});

oldMix.babel([
    'public/old/Scripts/Core/Primitive/jQuery.js',
    'public/old/Scripts/Core/Primitive/Slick.js',
    'public/old/Scripts/Core/Primitive/Angular.js',
    'public/old/Scripts/Core/Primitive/Bootstrap.js',
    'public/old/Scripts/Core/Primitive/Masonry.js',
    'public/old/Scripts/Core/Primitive/Images.js',
    'public/old/Scripts/Core/Primitive/Moment.js',
    'public/old/Scripts/Core/Primitive/Date.js',
    'public/old/Scripts/Core/Primitive/UTM.js',
    'public/old/Scripts/Dashboard/Tinymce/TinyMCE.js',
    'public/old/Scripts/Core/Primitive/Pusher.js',
    'public/old/Scripts/Core/Primitive/Reviews.js',
    'public/old/Scripts/Core/Primitive/Fancybox.js',
    'public/old/Scripts/Core/Primitive/Confetti.js',
    'public/old/Scripts/Core/Primitive/Signature.js',
], 'public/old/Build/Scripts/Primitive.js');

oldMix.babel([
    'public/old/Scripts/Core/Angular/*.js',
    'public/old/Scripts/Dashboard/Tinymce/UITinyMCE.js'
], 'public/old/Build/Scripts/Directives.js');

oldMix.babel([
    'public/old/Scripts/Dashboard/UI.js',
    'public/old/Scripts/Dashboard/Modules/OriginFactories.js',
    'public/old/Scripts/Dashboard/Modules/AddonsControllers.js',
    'public/old/Scripts/Dashboard/Modules/ProductsControllers.js',
    'public/old/Scripts/Dashboard/Modules/BoilerAdviceControllers.js',
    'public/old/Scripts/Dashboard/Modules/DashboardAnalytics.js',
    'public/old/Scripts/Dashboard/Controllers.js',
    'public/old/Scripts/Dashboard/Routes.js',
], 'public/old/Build/Scripts/Dashboard.js');

oldMix.babel([
    'public/old/Scripts/Application/UI.js',
    'public/old/Scripts/Application/Controllers.js',
    'public/old/Scripts/Application/Routes.js',
], 'public/old/Build/Scripts/Application.js');


oldMix.babel([
    'public/old/Scripts/Core.js'
], "public/old/Build/App.js");

oldMix.styles(['public/old/Styles/*.css'], 'public/old/Build/Styles/Core.css');
oldMix.styles(['public/old/Styles/Home/*.css'], 'public/old/Build/Styles/Home.css');
oldMix.styles(['public/old/Styles/Dashboard/*.css'], 'public/old/Build/Styles/Dashboard.css');
oldMix.styles(['public/old/Styles/Application/*.css'], 'public/old/Build/Styles/Application.css');
oldMix.version();
//-- Old Application and Dashboard End --

作曲家.docker文件:

FROM composer:1.6.5

RUN addgroup -g 1000 laravel && adduser -G laravel -g laravel -s /bin/sh -D laravel

WORKDIR /var/www/html

CMD ["tail", "-f", "/dev/null"]

码头工人-compose.yml:

version: '3'

networks:
  laravel:

services:
  application-aws:
    build:
      context: .
      dockerfile: nginx.dockerfile
    container_name: nginx-aws
    ports:
      - 5001:5001
    volumes:
      - ./src:/var/www/html:delegated
    depends_on:
      - php
      - mysql
    links:
      - mysql
    networks:
      - laravel

  mysql:
    image: mysql:5.7.33
    container_name: mysql-aws
    restart: unless-stopped
    tty: true
    ports:
      - 3306:3306
    environment:
      MYSQL_HOST: mysql
      MYSQL_DATABASE: heatable
      MYSQL_USER: heatable
      MYSQL_ROOT_PASSWORD: password
    networks:
      - laravel
    volumes:
      - ./mysql:/var/lib/mysql

  php:
    build:
      context: .
      dockerfile: php.dockerfile
    container_name: php-aws
    volumes:
      - ./src:/var/www/html:delegated
    networks:
      - laravel
    links:
      - mysql
    depends_on:
      - mysql

  composer:
    build:
      context: .
      dockerfile: composer.dockerfile
    container_name: composer-aws
    volumes:
      - ./src:/var/www/html
    working_dir: /var/www/html
    depends_on:
      - php
    user: laravel
    entrypoint: ['composer', '--ignore-platform-reqs']
    networks:
      - laravel

  npm:
    image: node:14.17.1
    tty: true
    container_name: npm-aws
    volumes:
      - ./src:/var/www/html
      - /var/www/html/node_modules
    working_dir: /var/www/html
    entrypoint: ['npm']
    networks:
      - laravel

  artisan:
    build:
      context: .
      dockerfile: php.dockerfile
    container_name: artisan-aws
    volumes:
      - ./src:/var/www/html:delegated
    depends_on:
      - mysql
    working_dir: /var/www/html
    user: laravel
    entrypoint: ['php', '/var/www/html/artisan']
    links:
      - mysql
    networks:
      - laravel

nginx.docker文件:

FROM nginx:stable-alpine

ADD ./nginx/nginx.conf /etc/nginx/nginx.conf
ADD ./nginx/default.conf /etc/nginx/conf.d/default.conf

RUN mkdir -p /var/www/html

RUN addgroup -g 1000 laravel && adduser -G laravel -g laravel -s /bin/sh -D laravel

RUN chown laravel:laravel /var/www/html

npm.docker 文件:

FROM node:14.17.1
WORKDIR /var/www/html
COPY ./src/package.json .
RUN npm install

php.docker 文件:

FROM php:7.3-fpm-alpine

ADD ./php/www.conf /usr/local/etc/php-fpm.d/www.conf

RUN addgroup -g 1000 laravel && adduser -G laravel -g laravel -s /bin/sh -D laravel

RUN mkdir -p /var/www/html

RUN chown laravel:laravel /var/www/html

WORKDIR /var/www/html

RUN apk add libpng-dev

RUN docker-php-ext-install mysqli pdo pdo_mysql gd
4

0 回答 0