Laravel + Vue.js + Docker + webpack.mix
1.343 views
docker-compose.yml
version: '3' services: web: build: context: . dockerfile: .docker/web.dockerfile ports: - 80:80 volumes: - .:/var/www/html node: build: context: . dockerfile: .docker/node.dockerfile ports: - 8080:8080 volumes: - .:/home/node/app user: "node" working_dir: /home/node/app
.docker/web.dockerfile
FROM php:7-apache COPY . /var/www/html COPY .docker/laravel.conf /etc/apache2/sites-available/laravel.conf RUN a2ensite laravel.conf \ && a2dissite 000-default.conf \ && service apache2 restart \ && chown -R www-data:www-data /var/www/html
.docker/node.dockerfile
FROM node # Create app directory WORKDIR /home/node/app # Install app dependencies # A wildcard is used to ensure both package.json AND package-lock.json are copied # where available (npm@5+) COPY package.json ./ RUN npm install # If you are building your code for production # RUN npm install --only=production # Bundle app source COPY . . EXPOSE 8080 CMD [ "npm", "start" ]
.docker/laravel.conf
<VirtualHost *:80> DocumentRoot /var/www/html/public <Directory "/var/www/html/public"> AllowOverride all Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
package.json
{ .. "scripts": { .. "start": "npm run watch-poll" } .. }
Ejecución:
$ docker-compose build $ docker-compose up