毋峻舷 发表于 2025-6-7 10:18:18

云计算-容器云-编排部署商城gpmall-single

gpmall-single

环境准备

# vim local.repo

name=centos
baseurl=http://10.24.1.75/centos/
gpgcheck=0
enabled=1


name=yum
baseurl=file:///root/gpmall-repo
gpgcheck=0
enabled=11、【实操题】容器化部署Redis(1分)

在master节点上编写/root/redis/Dockerfile文件构建chinaskill-redis:v1.1镜像,具体要求如下:(需要用到的软件包:gpmall-single.tar.gz)
(1)基础镜像:centos:centos7.5.1804;
(2)作者:Chinaskill;
(3)修改配置文件中的bind 127.0.0.1为bind 0.0.0.0;
(4)设置Redis免密,并关闭保护模式;
(5)开放端口:6379;
(6)设置服务开机自启。
完成后构建镜像,并提交master节点的用户名、密码和IP地址到答题框。
# mkdir redis
# cp local.repo redis/
# cp -rgpmall-repo/ redis/
# vim redis/Dockerfile
FROM centos:7.9.2009

RUN rm -rf /etc/yum.repos.d/*
ADD local.repo /etc/yum.repos.d/
ADD gpmall-repo /root/gpmall-repo
RUN yum install redis -y

RUN sed -i 's/protected-mode yes/protected-mode no/g' /etc/redis.conf
RUN sed -i 's/bind 127.0.0.1/bind 0.0.0.0/g' /etc/redis.conf

EXPOSE 6379
CMD ["redis-server","/etc/redis.conf"]
# docker build -t chinaskill-redis:v1.1 -f redis/Dockerfile .2、【实操题】容器化部署MariaDB(1.5分)

在master节点上编写/root/mariadb/Dockerfile文件构建chinaskill-mariadb:v1.1镜像,具体要求如下:(需要用到的软件包:gpmall-single.tar.gz)
(1)基础镜像:centos:centos7.5.1804;
(2)作者:Chinaskill;
(3)设置数据库密码:123456;
(4)创建数据库gpmall并导入数据库文件gpmall.sql;
(5)设置数据库字符编码:UTF-8;
(6)开放端口:3306;
(7)设置服务开机自启。
完成后构建镜像,并提交master节点的用户名、密码和IP地址到答题框。
# mkdir mariadb
# cd mariadb/
# vim Dockerfile
FROM centos:7.9.2009

RUN rm -rf /etc/yum.repos.d/*
ADD local.repo /etc/yum.repos.d/
ADD gpmall-repo /root/gpmall-repo
RUN yum install mariadb mariadb-server -y

RUN echo -e "\ncharacter-set-server=utf8">>/etc/my.cnf
ENV LC_ALL en_US.UTF-8

COPY gpmall.sql /root/
RUN mysql_install_db --user=root
RUN mysqld_safe --user=root& sleep 8 ;\
    mysqladmin password 123456 ;\
    mysql -u root -p123456 -e "grant all privileges on *.* to 'root'@'%' identified by '123456';" ;\
    mysql -u root -p123456 -e "create database gpmall; use gpmall;source /root/gpmall.sql;"

EXPOSE 3306
CMD ["mysqld_safe","--user=root"]
# cp /root/gpmall-single/gpmall.sql .
# cp -r/root/gpmall-single/gpmall-repo/ .
# cp /root/gpmall-single/local.repo .
# docker build -t chinaskill-mariadb:v1.1 -f Dockerfile .3、【实操题】容器化部署Zookeeper(1.5分)

在master节点上编写/root/zookeeper/Dockerfile文件构建chinaskill-zookeeper:v1.1镜像,具体要求如下:(需要用到的软件包:gpmall-single.tar.gz)
xxxxxxxxxx 【检测类型】命令行检测【登录管理器】账户密码【检测命令1】docker-compose -f /root/Monitor/docker-compose.yaml ps|grep running【判分标准】monitor-alertmanager || 9093->9093 || monitor-grafana || 3000->3000 || monitor-node || 9100->9100 || monitor-prometheus || 9090->9090【判分结束】​【检测命令2】docker exec monitor-prometheus cat /data/prometheus/prometheus.yml【判分标准】node-exporter || alertmanager【判分结束】​【检测命令3】curl -L http://$(hostname -i):9090/targets【判分标准】alertmanager (1/1 up) || node (1/1 up) || prometheus (1/1 up)【判分结束】​【检测命令4】curl -u admin:admin http://$(hostname -i):3000/datasources【判分标准】nginx【判分结束】​【检测命令5】curl -L http://$(hostname -i):9093【判分标准】Alertmanager【判分结束】​shell
(2)作者:Chinaskill;
(3)开放端口:2181;
(4)设置服务开机自启。
xxxxxxxxxx # cat docker-compose.yamlversion: '3'services:app:    container_name: hyperf-service    image: hyperf-service:v1.0    restart: always    command: "sleep 2h"hyperf-mysql:    container_name: hyperf-mysql    image: hyperf-mariadb:v1.0    restart: always    ports:    - 3306:3306hyperf-redis:    container_name: hyperf-redis    image: hyperf-redis:v1.0    restart: alwayshyperf-ui:    container_name: hyperf-ui    image: hyperf-nginx:v1.0    restart: always    ports:    - "8081:80"    volumes:    - /root/hyperf/project/docker/conf.d:/etc/nginx/conf.d    - /root/hyperf/project/frontend:/var/www/frontend# docker-compose up -dshell
# mkdir zookeeper
# cd zookeeper/
# vim Dockerfile
FROM centos:7.9.2009

RUN rm -rf /etc/yum.repos.d/*
ADD local.repo /etc/yum.repos.d/
ADD gpmall-repo /root/gpmall-repo
# RUN yum install java-1.8.0-* -y
RUN yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel -y

ADD zookeeper-3.4.14.tar.gz /opt
RUN mv /opt/zookeeper-3.4.14/conf/zoo_sample.cfg /opt/zookeeper-3.4.14/conf/zoo.cfg

EXPOSE 2181
CMD ["sh","-c","/opt/zookeeper-3.4.14/bin/zkServer.sh start-foreground"]

# cp /root/gpmall-single/gpmall-repo/.-r
# cp /root/gpmall-single/local.repo .
# cp /root/gpmall-single/zookeeper-3.4.14.tar.gz .
# docker build -t chinaskill-zookeeper:v1.1 -f Dockerfile .4、【实操题】容器化部署Kafka(1分)

在master节点上编写/root/kafka/Dockerfile文件构建chinaskill-kafka:v1.1镜像,具体要求如下:(需要用到的软件包:gpmall-single.tar.gz)
(1)基础镜像:centos:centos7.5.1804;
(2)作者:Chinaskill;
(3)开放端口:9092;
(4)设置服务开机自启。
完成后构建镜像,并提交master节点的用户名、密码和IP地址到答题框。
# mkdir kafka
# cd kafka/
# vim Dockerfile
FROM centos:7.9.2009

RUN rm -rf /etc/yum.repos.d/*
ADD local.repo/etc/yum.repos.d/
ADD gpmall-repo /root/gpmall-repo
RUN yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel -y

ADD zookeeper-3.4.14.tar.gz /opt/
ADD kafka_2.11-1.1.1.tgz /opt/
RUN mv /opt/zookeeper-3.4.14/conf/zoo_sample.cfg /opt/zookeeper-3.4.14/conf/zoo.cfg

EXPOSE 9092
CMD ["sh","-c","/opt/zookeeper-3.4.14/bin/zkServer.sh start && /opt/kafka_2.11-1.1.1/bin/kafka-server-start.sh /opt/kafka_2.11-1.1.1/config/server.properties"]
# cp -r /root/gpmall-single/local.repo .
# cp -r /root/gpmall-single/gpmall-repo/ .
# cp -r /root/gpmall-single/zookeeper-3.4.14.tar.gz .
# cp -r /root/gpmall-single/kafka_2.11-1.1.1.tgz.
# docker build -t chinaskill-kafka:v1.1 -f Dockerfile .5、【实操题】容器化部署Nginx(1分)

在master节点上编写/root/nginx/Dockerfile文件构建chinaskill-nginx:v1.1镜像,具体要求如下:(需要用到的软件包:gpmall-single.tar.gz)
(1)基础镜像:centos:centos7.5.1804;
(2)作者:Chinaskill;
(3)编写/etc/nginx/conf.d/default.conf文件,配置反向代理,将80端口请求转发到8081、8082和8083;
(4)将dist中的文件复制到/usr/share/nginx/html/目录下;
(5)复制所有的jar包到镜像中;
(6)开放端口:80、443、8081、8082、8083;
(7)设置服务开机自启。
完成后构建镜像,并提交master节点的用户名、密码和IP地址到答题框。
# mkdir nginx
# cd nginx/
# vim Dockerfile
FROM centos:centos7.5.1804
MAINTAINER Chinaskill

RUN rm -rf /etc/yum.repos.d/*
ADD local.repo /etc/yum.repos.d/
ADD gpmall-repo /root/gpmall-repo
COPY *.jar /root/
RUN yum -y install nginx java-1.8.0-openjdk java-1.8.0-openjdk-devel

RUN sed -i '1a location /shopping { proxy_pass http://127.0.0.1:8081 ;}' /etc/nginx/conf.d/default.conf
RUN sed -i '2a location /user { proxy_pass http://127.0.0.1:8082 ;}' /etc/nginx/conf.d/default.conf
RUN sed -i '3a location /cashier { proxy_pass http://127.0.0.1:8083 ;}' /etc/nginx/conf.d/default.conf

RUN rm -rf /usr/share/nginx/html/
COPY dist/ /usr/share/nginx/html/
ADD start.sh /root/
RUN chmod +x /root/start.sh

EXPOSE 80 443 8081 8082 8083
CMD ["nginx","-g","daemon off;"]
# vim start.sh
nohup java -jar /root/shopping-provider-0.0.1-SNAPSHOT.jar &
sleep 5
nohup java -jar /root/user-provider-0.0.1-SNAPSHOT.jar &
sleep 5
nohup java -jar /root/gpmall-shopping-0.0.1-SNAPSHOT.jar &
sleep 5
nohup java -jar /root/gpmall-user-0.0.1-SNAPSHOT.jar &
sleep 5
# cp -r /root/gpmall-single/gpmall-repo/ .
# cp -r /root/gpmall-single/*.jar .
# cp -r /root/gpmall-single/dist .
# cp -r /root/gpmall-single/local.repo.
# docker build -t chinaskill-nginx:v1.1 -f Dockerfile .6、【实操题】编排部署商城(4分)

在master节点上编写/root/chinaskillmall/docker-compose.yaml文件部署,具体要求如下:
(1)容器1名称:mall-mysql;镜像:chinaskill-mariadb:v1.1;端口映射:13306:3306;
(2)容器2名称:mall-redis;镜像:chinaskill-redis:v1.1;端口映射:16379:6379;
(3)容器3名称:mall-kafka;镜像:chinaskill-kafka:v1.1;端口映射:19092:9092;
(4)容器4名称:mall-zookeeper;镜像:chinaskill-zookeeper:v1.1;端口映射:12181:2181;
(5)容器5名称:mall-nginx;镜像:chinaskill-nginx:v1.1;端口映射:83:80,1443:443;自启动所有的jar包程序。
完成后编排部署商城,并能成功访问商城首页。然后提交master节点的用户名、密码和IP地址到答题框
# mkdir chinaskillmall
# cd chinaskillmall/
# vim docker-compose.yaml
version: '3'
services:
mall-mysql:
    container_name: mall-mysql
    image: chinaskill-mariadb:v1.1
    restart: always
    ports:
      - 13306:3306
mall-redis:
    depends_on:
      - mall-mysql
    container_name: mall-redis
    image: chinaskill-redis:v1.1
    restart: always
    ports:
      - 16379:6379
mall-zookeeper:
    depends_on:
      - mall-redis
    container_name: mall-zookeeper
    image: chinaskill-zookeeper:v1.1
    restart: always
    ports:
      - 12181:2181
mall-kafka:
    depends_on:
      - mall-zookeeper
    container_name: mall-kafka
    image: chinaskill-kafka:v1.1
    restart: always
    ports:
      - 19092:9092
mall-nginx:
    depends_on:
      - mall-kafka
    container_name: mall-nginx
    image: chinaskill-nginx:v1.1
    restart: always
    ports:
      - 83:80
      - 1443:443
    links:
      - mall-mysql:mysql.mall
      - mall-redis:redis.mall
      - mall-zookeeper:zookeeper.mall
      - mall-kafka:kafka.mall
    command: ["sh","-c","/root/start.sh && nginx && tail -f /etc/shadow"]本文由博客一文多发平台 OpenWrite 发布!

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 云计算-容器云-编排部署商城gpmall-single