Фактический адрес торгового центра проекта электронной коммерции SpringBoot:GitHub.com/macro-positive/…
Введение
Самый простой способ развернуть mall под Linux — использовать два скрипта docker-compse для завершения развертывания. Первый скрипт используется для развертывания сервисов (mysql, redis, nginx, rabbitmq, elasticsearch, kibana, mongo), от которых зависит торговый центр, а второй скрипт используется для развертывания приложений в торговом центре (mall-admin, mall- поиск, торговый центр-портал).
Создание и использование среды Docker
Конкретная ссылка:Основные команды Docker для разработчиков
создание и использование среды docker-compose
Конкретная ссылка:Развертывание приложений SpringBoot с помощью Docker Compose
docker-compose развертывание проекта торгового центра
Требования к конфигурации запуска
Версия CenterOS7.6, рекомендуемая память выше 4G
Файлы, связанные с развертыванием
- Скрипт базы данных mall.sql:GitHub.com/macro-positive/…
- Файл конфигурации nginx nginx.conf:GitHub.com/macro-positive/…
- docker-compose-env.yml:GitHub.com/macro-positive/…
- docker-compose-app.yml:GitHub.com/macro-positive/…
Подготовка к развертыванию
Упакуйте и загрузите образ приложения торгового центра
Вам необходимо упаковать образы докеров mall-admin, mall-search и mall-portal.Создавайте образы Docker для приложений SpringBoot с помощью подключаемого модуля Maven.
Скачайте все необходимые образы Docker для установки
docker pull mysql:5.7
docker pull redis:3.2
docker pull nginx:1.10
docker pull rabbitmq:3.7.15-management
docker pull elasticsearch:6.4.0
docker pull kibana:6.4.0
docker pull mongo:3.2
elasticsearch
- Необходимо установить параметры ядра системы, иначе оно не запустится из-за нехватки памяти.
# 改变设置
sysctl -w vm.max_map_count=262144
# 使之立即生效
sysctl -p
- Вам необходимо создать каталог /mydata/elasticsearch/data и установить разрешения, иначе запуск не будет выполнен из-за несанкционированного доступа.
# 创建目录
mkdir /mydata/elasticsearch/data/
# 创建并改变该目录权限
chmod 777 /mydata/elasticsearch/data
nginx
Вам нужно скопировать файл конфигурации nginx, иначе запуск не удастся, потому что при монтировании нет файла конфигурации.
# 创建目录之后将nginx.conf文件上传到该目录下面
mkdir /mydata/nginx/
Выполните скрипт docker-compose-env.yml
На сервере Linux, на который загружен файл, выполните команду docker-compose up, чтобы запустить все службы, от которых зависит mall.
version: '3'
services:
mysql:
image: mysql:5.7
container_name: mysql
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
restart: always
environment:
MYSQL_ROOT_PASSWORD: root #设置root帐号密码
ports:
- 3306:3306
volumes:
- /mydata/mysql/data/db:/var/lib/mysql #数据文件挂载
- /mydata/mysql/data/conf:/etc/mysql/conf.d #配置文件挂载
- /mydata/mysql/log:/var/log/mysql #日志文件挂载
redis:
image: redis:3.2
container_name: redis
command: redis-server --appendonly yes
volumes:
- /mydata/redis/data:/data #数据文件挂载
ports:
- 6379:6379
nginx:
image: nginx:1.10
container_name: nginx
volumes:
- /mydata/nginx/nginx.conf:/etc/nginx/nginx.conf #配置文件挂载
- /mydata/nginx/html:/usr/share/nginx/html #静态资源根目录挂载
- /mydata/nginx/log:/var/log/nginx #日志文件挂载
ports:
- 80:80
rabbitmq:
image: rabbitmq:3.7.15-management
container_name: rabbitmq
volumes:
- /mydata/rabbitmq/data:/var/lib/rabbitmq #数据文件挂载
- /mydata/rabbitmq/log:/var/log/rabbitmq #日志文件挂载
ports:
- 5672:5672
- 15672:15672
elasticsearch:
image: elasticsearch:6.4.0
container_name: elasticsearch
environment:
- "cluster.name=elasticsearch" #设置集群名称为elasticsearch
- "discovery.type=single-node" #以单一节点模式启动
- "ES_JAVA_OPTS=-Xms512m -Xmx512m" #设置使用jvm内存大小
volumes:
- /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件文件挂载
- /mydata/elasticsearch/data:/usr/share/elasticsearch/data #数据文件挂载
ports:
- 9200:9200
kibana:
image: kibana:6.4.0
container_name: kibana
links:
- elasticsearch:es #可以用es这个域名访问elasticsearch服务
depends_on:
- elasticsearch #kibana在elasticsearch启动之后再启动
environment:
- "elasticsearch.hosts=http://es:9200" #设置访问elasticsearch的地址
ports:
- 5601:5601
mongo:
image: mongo:3.2
container_name: mongo
volumes:
- /mydata/mongo/db:/data/db #数据文件挂载
ports:
- 27017:27017
После загрузки выполните следующую команду в текущем каталоге:
docker-compose -f docker-compose-env.yml up -d
Сделайте следующие настройки для зависимых служб
Когда все зависимые службы запущены, необходимо выполнить некоторые настройки для следующих служб.
mysql
Необходимо создать базу данных торгового центра и создать средство чтения объектов, к которому можно получить удаленный доступ.
- Скопируйте файл mall.sql в каталог / контейнера mysql:
docker cp /mydata/mall.sql mysql:/
- Заходим в контейнер mysql и делаем следующее:
#进入mysql容器
docker exec -it mysql /bin/bash
#连接到mysql服务
mysql -uroot -proot --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;
elasticsearch
Китайский токенизатор IKAnalyzer необходимо установить и перезапустить.
docker exec -it elasticsearch /bin/bash
#此命令需要在容器中运行
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.0/elasticsearch-analysis-ik-6.4.0.zip
docker restart elasticsearch
rabbitmq
Вам нужно создать пользователя торгового центра и установить виртуальный хост в /mall.
- Посетите адрес страницы управления:http://192.168.3.101:15672/
- Введите пароль учетной записи и войдите в систему: гость гость
- Создайте учетную запись и назначьте ей роль администратора: торговый центр торговый центр
- Создайте новый виртуальный хост как: /mall
- Щелкните пользователя торгового центра, чтобы перейти на страницу конфигурации пользователя.
- Настройте разрешения виртуального хоста для пользователя торгового центра.
Выполните скрипт docker-compose-app.yml
На Linux-сервере, куда загружен файл, выполните команду docker-compose up, чтобы запустить все приложения торгового центра.
version: '3'
services:
mall-admin:
image: mall/mall-admin:1.0-SNAPSHOT
container_name: mall-admin
ports:
- 8080:8080
external_links:
- mysql:db #可以用db这个域名访问mysql服务
mall-search:
image: mall/mall-search:1.0-SNAPSHOT
container_name: mall-search
ports:
- 8081:8081
external_links:
- elasticsearch:es #可以用es这个域名访问elasticsearch服务
- mysql:db #可以用db这个域名访问mysql服务
mall-portal:
image: mall/mall-portal:1.0-SNAPSHOT
container_name: mall-portal
ports:
- 8085:8085
external_links:
- redis:redis #可以用redis这个域名访问redis服务
- mongo:mongo #可以用mongo这个域名访问mongo服务
- mysql:db #可以用db这个域名访问mysql服务
- rabbitmq:rabbit #可以用rabbit这个域名访问rabbitmq服务
После загрузки выполните следующую команду в текущем каталоге:
docker-compose -f docker-compose-app.yml up -d
Откройте брандмауэр, чтобы получить доступ ко всем службам на других хостах.
systemctl stop firewalld
Пока все службы запускались нормально
публика
проект торгового центраПолный набор учебных пособий сериализуется,Обратите внимание на общедоступный номерПолучите это прямо сейчас.