Warum nehmen Sie Vue.js nicht in Docker's Laravel auf? !!

"Einführung"

Ich habe eine Laravel + Apach + MySQL-Umgebung mit vorheriger Artikel erstellt, möchte aber Vue.js für meine Front verwenden. Ich habe vergessen, dass ich das gedacht hatte, und nach dem Posten habe ich das Dockerfile geändert und neu erstellt, also werde ich das auch teilen.

Bearbeiten von "Dockerfile"

Lassen Sie uns nun tatsächlich mit der Docker-Datei spielen.

Schließen Sie node.js ein, um Vue.js zu installieren

Anstatt die Installation von Vue.js in der Docker-Datei zu beschreiben, fügen Sie zunächst node.js ein, erstellen Sie es und führen Sie dann die npm-Installation durch. Von hier aus werde ich die Befehle zur Installation von node.js eingeben.

FROM php:7.4-apache

ADD php.ini /usr/local/etc/php/
ADD 000-default.conf /etc/apache2/sites-enabled/

RUN cd /usr/bin && curl -s http://getcomposer.org/installer | php && ln -s /usr/bin/composer.phar /usr/bin/composer

RUN apt-get update \
    && apt-get install -y \
    git \
    zip \
    unzip \
    vim \
    libpng-dev \
    libpq-dev \
    gnupg \
    && docker-php-ext-install pdo_mysql

#Von hier aus hinzufügen
RUN curl -sL https://deb.nodesource.com/setup_11.x | bash -
RUN apt-get install -y nodejs
RUN npm install npm@latest -g
#Addiere hier

RUN mv /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled
RUN /bin/sh -c a2enmod rewrite

Ja einfach. Die Technologie ist wirklich erstaunlich, nicht wahr? (Anderes Personal) Es scheint, dass meine Umgebung Ubuntu ist und es anders ist, also ist es ein bisschen mehr Arbeit.

Es ist in Ordnung, damit fertig zu werden, aber ich werde Herrn Sudo hinzufügen, der nützlich ist. (Es bedeutet Sudo)

FROM php:7.4-apache

ADD php.ini /usr/local/etc/php/
ADD 000-default.conf /etc/apache2/sites-enabled/

RUN cd /usr/bin && curl -s http://getcomposer.org/installer | php && ln -s /usr/bin/composer.phar /usr/bin/composer

RUN apt-get update \
    && apt-get install -y \
    git \
    zip \
    unzip \
    vim \
    libpng-dev \
    libpq-dev \
    gnupg \
    && docker-php-ext-install pdo_mysql

RUN curl -sL https://deb.nodesource.com/setup_11.x | bash -
RUN apt-get install -y nodejs
RUN npm install npm@latest -g
#Von hier aus hinzufügen
RUN apt-get install -y sudo
#Addiere hier

RUN mv /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled
RUN /bin/sh -c a2enmod rewrite

Damit wurde auch Herr Sudo hinzugefügt. Baue es wieder.

> docker-compose build
> docker-compose up -d
> docker -it exec "Containername" bash

Überprüfen Sie, ob es tatsächlich installiert wurde.

root@xxxxxxxxxxxx:/var/www/html# sudo --version
Sudo version 1.8.27
root@xxxxxxxxxxxx:/var/www/html# npm --version
6.14.8

Jetzt müssen Sie nur noch Vue.js hinzufügen. Von hier aus bearbeiten wir package.json in dem Laravel-Projekt, das wir tatsächlich erstellt haben.

{
    "private": true,
    "scripts": {
        "dev": "npm run development",
        "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
        "watch": "npm run development -- --watch",
        "watch-poll": "npm run watch -- --watch-poll",
        "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --disable-host-check --config=node_modules/laravel-mix/setup/webpack.config.js",
        "prod": "npm run production",
        "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
    },
    "devDependencies": {
        "axios": "^0.19",
        "cross-env": "^7.0",
        "laravel-mix": "^5.0.1",
        "lodash": "^4.17.19",
        "resolve-url-loader": "^3.1.0",
        "sass": "^1.15.2",
        "sass-loader": "^8.0.0", 
        "vue": "^2.6.11",⇐ Hinzufügen
        "vue-template-compiler": "^2.6.11"⇐ Hinzufügen
    }
}

Nach dem Hinzufügen befindet es sich im Container mit dem Laravel-Projekt

> docker exec -it "Containername" bash

Weil es in / var / www / html geht

root@xxxxxxxxxxx::/var/www/html# cd "Projektname"
root@xxxxxxxxxxx::/var/www/html/"Projektname"# npm install

Jetzt können Sie Vue verwenden.

"Zusammenfassung"

Es war sehr einfach

Dann

Recommended Posts

Warum nehmen Sie Vue.js nicht in Docker's Laravel auf? !!
Erstellen Sie die Entwicklungsumgebung von Docker + Laravel PHP + Vue.j in 5 Minuten
Warum brauchen Sie überhaupt Setter / Getter?