容器云练习-基于Docker Compose编排ERP管理系统
一、什么是EPR管理系统,为什么要用ERP系统1.ERP 就像公司的“中央大脑”把各个部门财务、采购、销售、仓库、人事等的数据和流程全部打通避免信息孤岛。2.没有ERP时前台写了个小票后厨不知道小票内容只能凭感觉加料仓库也只能自己记账。当小票丢了、原料没了这时候也没人知道会出现信息不对等之类的问题最后会导致亏钱。3.有了ERP后当顾客下单后系统自动扣除库存数量。当库存数量低于警戒线后自动生成采购单发给供应商。同时销售数据可以实时更新月底自动计算成本、利润、员工提成。二、资源准备1.两台linux服务器这里我用的是CentOS72.部署好的k8s集群在本次实验中使用的是master节点3.开放8080、6379、9999、3306端口三、实验步骤步骤1获取资源包#从本地服务器下载资源包 curl -O http://192.168.75.10/yum/ERP.tar.gz #解压资源包 tar -xzvf ERP.tar.gz #切换至解压后的目录 cd ERP #查看目录文件 tree ERP ├── app.jar #ERP的java可执行包 ├── CentOS_7.9.2009.tar #CentOS7的基本镜像 ├── jsh_erp.sql #ERP的数据库初始化文件 ├── nginx #nginx相关配置文件 │ ├── app.tar.gz #ERP的前端页面资源 │ └── nginx.conf #nginx的代理文件 └── yum #需要的安装包步骤2配置样本源cat local.repo EOF [yum] nameyum gpgcheck0 enable1 baseurlfile:///opt/yum EOF步骤3加载基础镜像#加载基础镜像 docker load -i CentOS_7.9.2009.tar #查看是否成功 docker image ls | grep centos centos centos7.9.2009 eeb6ee3f44bd 4 years ago 204MB步骤4:构建数据库镜像文件erp-mysql:v1.0cat Dockerfile-mariadb EOF #加载原始镜像 FROM centos:centos7.9.2009 #作者名 MAINTAINER 17-60 #配置样本源 RUN rm -rf /etc/yum.repos.d/* COPY local.repo /etc/yum.repos.d/local.repo COPY yum /opt/yum #配置数据库 ENV LC_ALL en_US.UTF-8 COPY init.sh /opt/init.sh COPY jsh_erp.sql /opt/jsh_erp.sql RUN yum install -y mariadb mariadb-server RUN chmod ax /opt/init.sh RUN /opt/init.sh #声明端口 EXPOSE 3306 #开启命令 CMD [mysqld_safe,--userroot] EOF#创建数据库初始化脚本 cat init.sh EOF #!/bin/bash mysql_install_db --userroot mysqld_safe --userroot sleep 8 mysqladmin -uroot -p 123456 mysql -uroot -p123456 -e grant all on *.* to root% identified by 123456;flush privileges; mysql -uroot -p 123456 -e create databases jsh_erp; use jsh_erp; source /opt/jsh_rep.sql; EOF#创建镜像 docker build -t erp-mysql:v1.0 -f Dockerfile-mariadb .步骤5:构建内存键值数据库erp-redis:v1.0镜像#创建Dockerfile_redis cat Dockerfile_redis EOF FROM centos:centos7.9.2009 MAINTAINER 17-60 RUN rm -rf /etc/yum.repos.d/* COPY local.repo /etc/yum.repos.d/local.repo COPY yum /opt/yum RUN yum install redis -y RUN sed -i s/127.0.0.1/0.0.0.0/g /erc/redis.conf RUN sed -i s/protected-mode yes/protected-mode no/g /etc/redis.conf RUN echo requirepass 123456 /etc/redis.conf EXPOSE 6379 CMD [/usr/bin/redis-server,/etc/redis.conf] EOF#创建镜像 docker build -t erp-redis:v1.0 -f Dockerfile-redis .步骤6:构建web服务器erp-nginx:v1.0镜像cat Dockerfile-nginx EOF FROM centos:centos7.9.2009 MAINTAINER 17-60 RUN rm -rf /etc/yum.repos.d/* COPY local.repo /etc/yum.repos.d/local.repo COPY yum /opt/yum RUN yum install -y nginx ADD nginx/app.tar.gz / COPY nginx/nginx.conf /etc/nginx/nginx.conf EXPOSE 80 CMD [nginx,-g,daemon off;] EOF#创建镜像 docker build -t erp-nginx:v1.0 -f Dockerfile-nginx .步骤7:构建erp服务erp-server:v1.0镜像#创建Dockerfile-erp cat Dockerfile-erp EOF FROM centos:centos7.9.2009 RUN rm -rf /etc/yum.repos.d/* COPY local.repo /etc/yum.repos.d/local.repo COPY yum /opt/yum RUN yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel COPY app.jar /jshERP_boot/ COPY start.sh /opt/start.sh RUN chmod ax /opt/start.sh EXPOSE 9999 CMD [/bin/bash,/opt/start.sh] EOF#创建启动脚本 cat start.sh EOF #!/bin/bash nohup java -jar /jsh_ERP-boot/app.jar EOF#创建镜像 docker build -t erp-server:v1.0 -f Dockerfile-erp .步骤8:构建docker-compose编排程序#创建docker-compose cat docker-compose EOF version: 3 services: erp-mysql: image: erp-mysql:v1.0 container_name: erp-mysql ports: - 3306:3306 restart: always erp-redis: image: erp-redis:v1.0 container_name: erp-redis ports: - 6379:6379 restart: always erp-server: image: erp-server:v1.0 container_name: erp-server environment: DB_USERNAME: root DB_PASSWORD: 123456 REDIS_HOST: erp-redis REDIS_PASSWORD: 123456 links: - erp-mysql - erp-redis ports: - 9999:9999 restart: always erp-nginx: image: erp-nginx:v1.0 container_name: erp-nginx ports: - 8080:80 links: - erp-server:erp-server restart: always EOF#启动编排程序 docker-compose up -d#验证是否成功 docker ps | grep erp f626a5a6843a erp-nginx:v1.0 nginx -g daemon of… 3 hours ago Up 3 hours 0.0.0.0:8080-80/tcp, :::8080-80/tcp erp-nginx 93d94d819a25 erp-server:v1.0 /bin/bash /opt/star… 3 hours ago Up 1 second 0.0.0.0:9999-9999/tcp, :::9999-9999/tcp erp-server 91cdc9f55ec1 erp-mysql:v1.0 mysqld_safe --user… 3 hours ago Up 3 hours 0.0.0.0:3306-3306/tcp, :::3306-3306/tcp erp-mariadb b1101ff8c93f erp-redis:v1.0 /usr/bin/redis-serv… 3 hours ago Up 3 hours 0.0.0.0:6379-6379/tcp, :::6379-6379/tcp erp-redis到此实验完成四、最终验证登录http://服务器IP:8080账号:admin密码:123456登录成功说明成功部署了五、总结本次实验通过Docker docker-compose技术将jshERP系统从零部署到Centos7的k8s服务上实现经销管理系统的容器化部署容器名镜像端口技术栈职责erp-mysqlerp-mysql:v1.03306Mariadb数据持久化存储erp-rediserp-redis:v1.06379Redis高速缓存加速erp-nginxerp-nginx:v1.08080-80Nginx前端页面展示 反向代理erp-servererp-server:v1.09999Java Spring Boot后端业务逻辑处理