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.
Lassen Sie uns nun tatsächlich mit der Docker-Datei spielen.
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.
Es war sehr einfach
Dann