返回
庖丁解牛,Docker部署Vue+Node服务+MySQL+Redis应用
前端
2023-12-29 07:40:01
准备工作
在开始之前,确保您已经安装了以下软件:
- Docker
- Vue.js
- Node.js
- MySQL
- Redis
部署Vue.js前端服务
1.创建一个新的Vue.js项目:
vue create my-app
2.安装必要的依赖项:
npm install
3.启动开发服务器:
npm run serve
4.将项目打包为静态文件:
npm run build
5.将静态文件复制到Docker镜像中:
docker build -t my-vue-app .
部署Node.js后端服务
1.创建一个新的Node.js项目:
mkdir my-node-app
cd my-node-app
npm init -y
2.安装必要的依赖项:
npm install express mysql redis
3.创建服务器文件:
// server.js
const express = require('express');
const mysql = require('mysql');
const redis = require('redis');
const app = express();
// MySQL连接
const mysqlConnection = mysql.createConnection({
host: 'mysql',
user: 'root',
password: 'password',
database: 'my_database'
});
// Redis连接
const redisClient = redis.createClient({
host: 'redis',
port: 6379
});
// 连接数据库
mysqlConnection.connect();
// 设置路由
app.get('/', (req, res) => {
res.send('Hello, world!');
});
app.get('/data', (req, res) => {
// 从数据库中获取数据
mysqlConnection.query('SELECT * FROM my_table', (err, rows) => {
if (err) throw err;
// 将数据存储在Redis中
redisClient.set('my_data', JSON.stringify(rows));
// 返回数据
res.send(rows);
});
});
// 启动服务器
app.listen(3000);
4.将项目打包为Docker镜像:
docker build -t my-node-app .
部署MySQL数据库
1.创建新的MySQL数据库:
docker run --name mysql -e MYSQL_ROOT_PASSWORD=password -d mysql
2.创建新的数据库和表:
docker exec -it mysql mysql -uroot -ppassword
CREATE DATABASE my_database;
USE my_database;
CREATE TABLE my_table (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
age INT NOT NULL
);
INSERT INTO my_table (name, age) VALUES ('John', 30), ('Mary', 25), ('Bob', 40);
部署Redis数据库
1.创建新的Redis数据库:
docker run --name redis -d redis
将组件连接在一起
1.创建一个Docker网络:
docker network create my-network
2.将每个组件连接到网络:
docker network connect my-network my-vue-app
docker network connect my-network my-node-app
docker network connect my-network mysql
docker network connect my-network redis
3.启动所有组件:
docker start my-vue-app
docker start my-node-app
docker start mysql
docker start redis
测试应用
1.打开浏览器并导航到Vue.js前端服务的URL。
2.单击"数据"按钮。
3.您应该会看到从MySQL数据库中检索到的数据。
结论
在本文中,我们学习了如何使用Docker部署Vue+Node服务+MySQL+Redis应用,而不使用Docker Compose。我们介绍了如何设置每个组件,以及如何将它们连接在一起,以便它们能够作为一个完整的应用程序运行。希望本文对您有所帮助。