我在 Docker 容器内的 Laravel Mix 中设置热模块重新加载时遇到一些问题。
我有以下 Dockerfile:
FROM php:7.4.0-fpm
RUN curl -sL https://deb.nodesource.com/setup_13.x | bash
RUN apt-get update && \
apt-get install -y -q --no-install-recommends \
nano apt-utils curl unzip default-mysql-client nodejs build-essential git \
libcurl4-gnutls-dev libmcrypt-dev libmagickwand-dev \
libwebp-dev libjpeg-dev libpng-dev libxpm-dev \
libfreetype6-dev libaio-dev zlib1g-dev libzip-dev && \
echo 'umask 002' >> /root/.bashrc && \
apt-get clean
# Docker PHP Extensions
RUN docker-php-ext-install -j$(nproc) iconv gettext gd mysqli curl pdo pdo_mysql zip && \
docker-php-ext-configure gd --with-freetype=/usr/include/ …Run Code Online (Sandbox Code Playgroud) laravel docker docker-compose webpack-dev-server laravel-mix
我正在尝试在托管前端和后端容器的 Windows 机器上托管开发环境。到目前为止,我只在后端工作。所有文件都在通过 Docker 桌面共享的 C 盘上。
我有以下 docker-compose 文件和 Dockerfile,后者位于根目录中名为 backend 的目录中。
Dockerfile:
FROM node:12.15.0-alpine
WORKDIR /usr/app
COPY package*.json ./
RUN npm install
EXPOSE 5000
CMD [ "npm", "start" ]
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml:
version: "3"
services:
backend:
container_name: backend
build:
context: ./backend
dockerfile: Dockerfile
volumes:
- ./backend:/usr/app
environment:
- APP_PORT=80
ports:
- '5000:5000'
client:
container_name: client
build:
context: ./client
dockerfile: Dockerfile
volumes:
- ./client:/app
ports:
- '80:8080'
Run Code Online (Sandbox Code Playgroud)
出于某种原因,当我对本地文件进行更改时,它们不会反映在容器内。我正在通过稍微修改我的一个文件的输出来测试这个,但我每次都必须重建容器才能看到更改生效。
我之前在 PHP 应用程序中使用过 Docker,并且基本上做了同样的事情。所以我不确定为什么这不适用于 Node.js 应用程序。我想知道我是否只是遗漏了一些显而易见的东西,为什么这不起作用。
任何帮助,将不胜感激。
我有一些 PHP 和前端 JavaScript 经验,但我正在尝试制作一个 Node.js REST API 来为我的一个应用程序的 Vue.js 客户端提供服务,但是我正在努力解决某个概念。到目前为止,我主要关注在线文档和指南。
我正在使用 Express.js 和 MySQL 数据库。
在这个例子中,我有一个定义客户本身的客户模型,以及与数据库交互的方法。
// constructor
const Customer = function(customer) {
this.email = customer.email;
this.name = customer.name;
this.active = customer.active;
this.created_at = customer.created_at
};
Customer.getAll = result => {
sql.query("SELECT * FROM customers", (err, res) => {
if (err) {
console.log("error: ", err);
result(null, err);
return;
}
console.log("customers: ", res);
result(null, res);
});
};
...
Run Code Online (Sandbox Code Playgroud)
然后我有一个客户控制器,它控制被调用的方法并在将其检索到前端之前进行任何操作。
const Customer = require("../models/customer.model.js");
exports.findAll = (req, res) => {
Customer.getAll((err, …Run Code Online (Sandbox Code Playgroud) 我创建了一个基本的 Laravel REST API,它将为一些使用 axios 发出请求的 JavaScript 应用程序提供服务。
我的应用程序使用基本控制器来确保所有响应都以相同的格式发送:
class BaseController extends Controller
{
/**
* success response method.
*
* @param $result
* @param $message
*
* @return JsonResponse
*/
public function sendResponse($result, $message)
{
$response = [
'success' => true,
'data' => $result,
'message' => $message,
];
return response()->json($response, 200);
}
/**
* return error response.
*
* @param $error
* @param array $errorMessages
* @param int $code
*
* @return JsonResponse
*/
public function sendError($error, $errorMessages = …Run Code Online (Sandbox Code Playgroud) docker ×2
laravel ×2
node.js ×2
rest ×2
axios ×1
express ×1
javascript ×1
laravel-api ×1
laravel-mix ×1