云计算-容器云-编排部署商城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]