docker compose部署mall

2024-02-09 15:52
文章标签 部署 docker compose mall

本文主要是介绍docker compose部署mall,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

安装环境软件

1.拉取镜像

docker pull mysql:5.7
docker pull redis:7
docker pull nginx:1.22
docker pull rabbitmq:3.9-management
docker pull elasticsearch:7.17.3
docker pull kibana:7.17.3
docker pull logstash:7.17.3
docker pull mongo:4
docker pull minio/minio

2.创建目录

mkdir -p  /opt/mall/minio/data
mkdir -p /opt/mall/redis/data
mkdir -p /opt/mall/mysql/{data,conf,log}
mkdir -p /opt/mall/nginx/{conf,html,logs}
mkdir -p /opt/mall/rabbitmq/data
mkdir -p /opt/mall/elasticsearch/{plugins,data}
mkdir -p /opt/mall/logstash
mkdir -p /opt/mall/mongo/db
mkdir -p /opt/mall/minio/data

3.修改目录权限

chmod 777 /opt/mall/elasticsearch/data

4.配置nginx

4.1nginx.conf

cd /opt/mall/nginx/conf
vim nginx.conf

内容如下

user  nginx;
worker_processes  1;error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;keepalive_timeout  65;#gzip  on;server {listen       80;server_name  localhost;location / {root   /usr/share/nginx/html;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}}
}

4.2mime.types

vim mime.types

内容如下


types {text/html                                        html htm shtml;text/css                                         css;text/xml                                         xml;image/gif                                        gif;image/jpeg                                       jpeg jpg;application/javascript                           js;application/atom+xml                             atom;application/rss+xml                              rss;text/mathml                                      mml;text/plain                                       txt;text/vnd.sun.j2me.app-descriptor                 jad;text/vnd.wap.wml                                 wml;text/x-component                                 htc;image/avif                                       avif;image/png                                        png;image/svg+xml                                    svg svgz;image/tiff                                       tif tiff;image/vnd.wap.wbmp                               wbmp;image/webp                                       webp;image/x-icon                                     ico;image/x-jng                                      jng;image/x-ms-bmp                                   bmp;font/woff                                        woff;font/woff2                                       woff2;application/java-archive                         jar war ear;application/json                                 json;application/mac-binhex40                         hqx;application/msword                               doc;application/pdf                                  pdf;application/postscript                           ps eps ai;application/rtf                                  rtf;application/vnd.apple.mpegurl                    m3u8;application/vnd.google-earth.kml+xml             kml;application/vnd.google-earth.kmz                 kmz;application/vnd.ms-excel                         xls;application/vnd.ms-fontobject                    eot;application/vnd.ms-powerpoint                    ppt;application/vnd.oasis.opendocument.graphics      odg;application/vnd.oasis.opendocument.presentation  odp;application/vnd.oasis.opendocument.spreadsheet   ods;application/vnd.oasis.opendocument.text          odt;application/vnd.openxmlformats-officedocument.presentationml.presentationpptx;application/vnd.openxmlformats-officedocument.spreadsheetml.sheetxlsx;application/vnd.openxmlformats-officedocument.wordprocessingml.documentdocx;application/vnd.wap.wmlc                         wmlc;application/wasm                                 wasm;application/x-7z-compressed                      7z;application/x-cocoa                              cco;application/x-java-archive-diff                  jardiff;application/x-java-jnlp-file                     jnlp;application/x-makeself                           run;application/x-perl                               pl pm;application/x-pilot                              prc pdb;application/x-rar-compressed                     rar;application/x-redhat-package-manager             rpm;application/x-sea                                sea;application/x-shockwave-flash                    swf;application/x-stuffit                            sit;application/x-tcl                                tcl tk;application/x-x509-ca-cert                       der pem crt;application/x-xpinstall                          xpi;application/xhtml+xml                            xhtml;application/xspf+xml                             xspf;application/zip                                  zip;application/octet-stream                         bin exe dll;application/octet-stream                         deb;application/octet-stream                         dmg;application/octet-stream                         iso img;application/octet-stream                         msi msp msm;audio/midi                                       mid midi kar;audio/mpeg                                       mp3;audio/ogg                                        ogg;audio/x-m4a                                      m4a;audio/x-realaudio                                ra;video/3gpp                                       3gpp 3gp;video/mp2t                                       ts;video/mp4                                        mp4;video/mpeg                                       mpeg mpg;video/quicktime                                  mov;video/webm                                       webm;video/x-flv                                      flv;video/x-m4v                                      m4v;video/x-mng                                      mng;video/x-ms-asf                                   asx asf;video/x-ms-wmv                                   wmv;video/x-msvideo                                  avi;
}

 

5.配置logstash

cd /opt/mall/logstash/vim logstash.conf

内容如下


input {tcp {mode => "server"host => "0.0.0.0"port => 4560codec => json_linestype => "debug"}tcp {mode => "server"host => "0.0.0.0"port => 4561codec => json_linestype => "error"}tcp {mode => "server"host => "0.0.0.0"port => 4562codec => json_linestype => "business"}tcp {mode => "server"host => "0.0.0.0"port => 4563codec => json_linestype => "record"}
}
filter{if [type] == "record" {mutate {remove_field => "port"remove_field => "host"remove_field => "@version"}json {source => "message"remove_field => ["message"]}}
}
output {elasticsearch {hosts => "192.168.168.110:9200"index => "mall-%{type}-%{+YYYY.MM.dd}"}
}

6.编写环境软件脚本

cd /opt/mall
vim docker-compose-env.yml

内容如下

version: '3'
services:mysql:image: mysql:5.7container_name: mysqlcommand: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_cirestart: alwaysenvironment:MYSQL_ROOT_PASSWORD: 123456 #设置root帐号密码ports:- 3306:3306volumes:- /opt/mall/mysql/data:/var/lib/mysql #数据文件挂载- /opt/mall/mysql/conf:/etc/mysql #配置文件挂载- /opt/mall/mysql/log:/var/log/mysql #日志文件挂载redis:image: redis:7container_name: rediscommand: redis-server --appendonly yesvolumes:- /opt/mall/redis/data:/data #数据文件挂载ports:- 6379:6379nginx:image: nginx:1.22container_name: nginxvolumes:- /opt/mall/nginx/conf:/etc/nginx #配置文件目录挂载- /opt/mall/nginx/html:/usr/share/nginx/html #静态资源根目录挂载- /opt/mall/nginx/logs:/var/log/nginx #日志文件挂载ports:- 80:80rabbitmq:image: rabbitmq:3.9-managementcontainer_name: rabbitmqvolumes:- /opt/mall/rabbitmq/data:/var/lib/rabbitmq #数据文件挂载ports:- 5672:5672- 15672:15672elasticsearch:image: elasticsearch:7.17.3container_name: elasticsearchenvironment:- "cluster.name=elasticsearch" #设置集群名称为elasticsearch- "discovery.type=single-node" #以单一节点模式启动- "ES_JAVA_OPTS=-Xms512m -Xmx1024m" #设置使用jvm内存大小volumes:- /opt/mall/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件文件挂载- /opt/mall/elasticsearch/data:/usr/share/elasticsearch/data #数据文件挂载ports:- 9200:9200- 9300:9300logstash:image: logstash:7.17.3container_name: logstashenvironment:- TZ=Asia/Shanghaivolumes:- /opt/mall/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf #挂载logstash的配置文件depends_on:- elasticsearch #kibana在elasticsearch启动之后再启动links:- elasticsearch:es #可以用es这个域名访问elasticsearch服务ports:- 4560:4560- 4561:4561- 4562:4562- 4563:4563kibana:image: kibana:7.17.3container_name: kibanalinks:- elasticsearch:es #可以用es这个域名访问elasticsearch服务depends_on:- elasticsearch #kibana在elasticsearch启动之后再启动environment:- "elasticsearch.hosts=http://es:9200" #设置访问elasticsearch的地址ports:- 5601:5601mongo:image: mongo:4container_name: mongovolumes:- /opt/mall/mongo/db:/data/db #数据文件挂载ports:- 27017:27017minio:image: minio/miniocontainer_name: miniocommand: server /data --console-address ":9001" #指定数据目录及console运行端口启动volumes:- /opt/mall/minio/data:/data #数据目录挂载environment:- "MINIO_ROOT_USER=minioadmin"- "MINIO_ROOT_PASSWORD=minioadmin"ports:- 9090:9000- 9001:9001

7.启动所有环境软件

docker-compose -f docker-compose-env.yml up -d

 

8.配置mysql

mkdir -p /opt/mall/mysql/backup

拷贝官方的数据库脚本

脚本名称:mall.sql

脚本内容

导入数据库脚本

#进入mysql容器
docker exec -it mysql /bin/bash
#连接到mysql服务
mysql -uroot -p123456 --default-character-set=utf8
#创建远程访问用户
grant all privileges on *.* to 'reader' @'%' identified by '123456';
#创建mall数据库
create database mall character set utf8;
#使用mall数据库
use mall;
#导入mall.sql脚本
source /mall.sql;

9.配置rabbitmq


rabbitmq
创建mall用户,账户/密码:mall/mall
创建一个新的虚拟host为:/mall
将新的虚拟host授予mall用户

安装应用

1.创建目录

mkdir -p /opt/mall/app/mall-admin/logs
mkdir -p /opt/mall/app/mall-search/logs
mkdir -p /opt/mall/app/mall-portal/logs

2.创建配置文件

/opt/mall/app
vim docker-compose-app.yml

内容如下

version: '3'
services:mall-admin:image: mall/mall-admin:1.0-SNAPSHOTcontainer_name: mall-adminports:- 10061:8080volumes:- /opt/mall/app/mall-admin/logs:/var/logs- /etc/localtime:/etc/localtimeenvironment:- 'TZ="Asia/Shanghai"'external_links:- mysql:db #可以用db这个域名访问mysql服务mall-search:image: mall/mall-search:1.0-SNAPSHOTcontainer_name: mall-searchports:- 10062:8081volumes:- /opt/mall/app/mall-search/logs:/var/logs- /etc/localtime:/etc/localtimeenvironment:- 'TZ="Asia/Shanghai"'external_links:- elasticsearch:es #可以用es这个域名访问elasticsearch服务- mysql:db #可以用db这个域名访问mysql服务mall-portal:image: mall/mall-portal:1.0-SNAPSHOTcontainer_name: mall-portalports:- 10063:8085volumes:- /opt/mall/app/mall-portal/logs:/var/logs- /etc/localtime:/etc/localtimeenvironment:- 'TZ="Asia/Shanghai"'external_links:- redis:redis #可以用redis这个域名访问redis服务- mongo:mongo #可以用mongo这个域名访问mongo服务- mysql:db #可以用db这个域名访问mysql服务- rabbitmq:rabbit #可以用rabbit这个域名访问rabbitmq服务

3.启动

docker compose -f docker-compose-app.yml up -d

这篇关于docker compose部署mall的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/694651

相关文章

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

Linux部署中的文件大小写问题的解决方案

《Linux部署中的文件大小写问题的解决方案》在本地开发环境(Windows/macOS)一切正常,但部署到Linux服务器后出现模块加载错误,核心原因是Linux文件系统严格区分大小写,所以本文给大... 目录问题背景解决方案配置要求问题背景在本地开发环境(Windows/MACOS)一切正常,但部署到

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

MySQL 主从复制部署及验证(示例详解)

《MySQL主从复制部署及验证(示例详解)》本文介绍MySQL主从复制部署步骤及学校管理数据库创建脚本,包含表结构设计、示例数据插入和查询语句,用于验证主从同步功能,感兴趣的朋友一起看看吧... 目录mysql 主从复制部署指南部署步骤1.环境准备2. 主服务器配置3. 创建复制用户4. 获取主服务器状态5

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

如何在Ubuntu 24.04上部署Zabbix 7.0对服务器进行监控

《如何在Ubuntu24.04上部署Zabbix7.0对服务器进行监控》在Ubuntu24.04上部署Zabbix7.0监控阿里云ECS服务器,需配置MariaDB数据库、开放10050/1005... 目录软硬件信息部署步骤步骤 1:安装并配置mariadb步骤 2:安装Zabbix 7.0 Server