容器化部署ERP管理系统

1.案例准备

1.1规划节点

节点规划,见表2-1-1。

表2-1-1节点规划

IP

主机名

节点

10.24.2.63

master

Kubernetes ALL_IN_ONE节点

1.2 基础准备

Docker和Docker Compose已安装完成。

2.案例实施

2.1 ERP管理系统介绍

企业资源计划即 ERP (Enterprise Resource Planning),建立在信息技术基础上,以系统化的管理思想,为企业决策层及员工提供决策运行手段的管理平台。由美国 Gartner Group 公司于1990年提出。企业资源计划是 MRP II(企业制造资源计划)下一代的制造业系统和资源计划软件。除了MRP II 已有的生产资源计划、制造、财务、销售、采购等功能外,还有质量管理,实验室管理,业务流程管理,产品数据管理,存货、分销与运输管理,人力资源管理和定期报告系统。在我国 ERP 所代表的含义已经被扩大,用于企业的各类软件,已经统统被纳入 ERP 的范畴。它跳出了传统企业边界,从供应链范围去优化企业的资源,是基于网络经济时代的新一代信息系统。它主要用于改善企业业务流程以提高企业核心竞争力。

ERP 是由美国计算机技术咨询和评估集团 Gartner Group Inc 提出的一种供应链的管理思想。企业资源计划是指建立在信息技术基础上,以系统化的管理思想,为企业决策层及员工提供决策运行手段的管理平台。ERP 系统支持离散型、流程型等混合制造环境,应用范围从制造业扩展到了零售业、服务业、银行业、电信业、政府机关和学校等事业部门,通过融合数据库技术、图形用户界面、第四代查询语言、客户服务器结构、计算机辅助开发工具、可移植的开放系统等对企业资源进行了有效的集成。

2.2 容器化部署MariaDB

(1)基础环境准备

下载软件包并解压:

[root@k8s-master-node1 ~]# curl -O http://mirrors.douxuedu.com/competition/ ERP.tar.gz

[root@k8s-master-node1 ~]# tar -zxvf ERP.tar.gz

导入CentOS基础镜像:

[root@k8s-master-node1 ~]# docker load -i ERP/CentOS_7.9.2009.tar
(2)编写Dockerfile

编写yum源:

[root@k8s-worker-node1 ~]# cd ERP/

[root@k8s-worker-node1 ERP]# vi local.repo
[erp]
name=erp
baseurl=file:///root/yum
gpgcheck=0
enabled=1

编写init.sh脚本:

[root@k8s-worker-node1 ERP]# vi mysql_init.sh
#!/bin/bash
mysql_install_db --user=root
mysqld_safe --user=root &
sleep 8
mysqladmin -u root password 'tshoperp'
mysql -uroot -ptshoperp -e "grant all on *.* to 'root'@'%' identified by 'tshoperp'; flush privileges;"
mysql -uroot -ptshoperp -e " create database jsh_erp;use jsh_erp;source /opt/jsh_erp.sql;"

编写Dockerfile:

[root@k8s-worker-node1 ERP]# vi Dockerfile-mariadb
FROM centos:centos7.9.2009
MAINTAINER Chinaskills
RUN rm -rf /etc/yum.repos.d/*
COPY local.repo /etc/yum.repos.d/
COPY yum /root/yum
ENV LC_ALL en_US.UTF-8
RUN yum -y install mariadb-server
COPY jsh_erp.sql /opt/
COPY mysql_init.sh /opt/
RUN bash /opt/mysql_init.sh
EXPOSE 3306
CMD ["mysqld_safe","--user=root"]
(3)构建镜像

构建镜像:

[root@k8s-master-node1 ERP]# docker build -t erp-mysql:v1.0 -f Dockerfile-mariadb .                                                                        
[+] Building 0.3s (13/13) FINISHED                                 docker:default 
 => [internal] load build definition from Dockerfile-mariadb              0.0s
 => => transferring dockerfile: 419B                                      0.0s
 => [internal] load .dockerignore                                         0.0s
 => => transferring context: 2B                                           0.0s
 => [internal] load metadata for docker.io/library/centos:centos7.9.2009  0.0s
 => [1/8] FROM docker.io/library/centos:centos7.9.2009                    0.0s
 => [internal] load build context                                         0.0s
 => => transferring context: 33.23kB                                      0.0s
 => CACHED [2/8] RUN rm -rf /etc/yum.repos.d/*                            0.0s
 => CACHED [3/8] COPY local.repo /etc/yum.repos.d/                        0.0s
 => CACHED [4/8] COPY yum /root/yum                                       0.0s
 => CACHED [5/8] RUN yum -y install mariadb-server                        0.0s
 => CACHED [6/8] COPY jsh_erp.sql /opt/                                   0.0s
 => CACHED [7/8] COPY mysql_init.sh /opt/                                 0.0s
 => CACHED [8/8] RUN bash /opt/mysql_init.sh                              0.0s
 => exporting to image                                                    0.0s
 => => exporting layers                                                   0.0s
 => => writing image sha256:01d497e86d78dea2113ff690d39884234a059b0bdd1383c525a3daf3b1efd209   0.0s
 => => naming to docker.io/library/erp-mysql:v1.0                         0.0s

2.3 容器化部署Redis

(1)编写Dockerfile

编写Dockerfile文件:

[root@k8s-worker-node1 ERP]# vi Dockerfile-redis
FROM centos:centos7.9.2009
MAINTAINER Chinaskills
RUN rm -rf /etc/yum.repos.d/*
COPY local.repo /etc/yum.repos.d/
COPY yum /root/yum
RUN yum -y install redis
RUN sed -i 's/127.0.0.1/0.0.0.0/g' /etc/redis.conf && \
    sed -i 's/protected-mode yes/protected-mode no/g' /etc/redis.conf
EXPOSE 6379
CMD ["/usr/bin/redis-server","/etc/redis.conf"]
(2)构建镜像

构建镜像:

[root@k8s-worker-node1 ERP]# docker build -t erp-redis:v1.0 -f Dockerfile-redis .
[+] Building 14.0s (11/11) FINISHED                                                                                                       
 docker:default
 => [internal] load .dockerignore                                        0.1s
 => => transferring context: 2B                                          0.0s
 => [internal] load build definition from Dockerfile-redis               0.1s
 => => transferring dockerfile: 449B                                     0.0s
 => [internal] load metadata for docker.io/library/centos:centos7.9.2009 0.0s
 => [1/6] FROM docker.io/library/centos:centos7.9.2009                   0.0s
 => [internal] load build context                                        0.1s
 => => transferring context: 33.04kB                                     0.0s
 => CACHED [2/6] RUN rm -rf /etc/yum.repos.d/*                           0.0s
 => CACHED [3/6] COPY local.repo /etc/yum.repos.d/                       0.0s
 => CACHED [4/6] COPY yum /root/yum                                      0.0s
 => [5/6] RUN yum -y install redis                                       11.8s
 => [6/6] RUN sed -i 's/127.0.0.1/0.0.0.0/g' /etc/redis.conf &&  sed -i 's/protected-mode yes/protected-mode no/g' /etc/redis.conf                 1.3s
 => exporting to image                                                   0.5s 
 => => exporting layers                                                  0.5s 
 => => writing image sha256:6e15c000464c400c0396802df6efbcd1466759dec59a0073d79758f2aae5328d  0.0s 
 => => naming to docker.io/library/erp-redis:v1.0                        0.0s
 

2.4 容器化部署前端服务

(1)编写Dockerfile

编写Dockerfile:

[root@k8s-worker-node1 ERP]# vi Dockerfile-nginx
FROM centos:centos7.9.2009
MAINTAINER Chinaskills
RUN rm -rf /etc/yum.repos.d/*
COPY local.repo /etc/yum.repos.d/
COPY yum /root/yum
RUN yum -y install nginx
COPY nginx/nginx.conf /etc/nginx/nginx.conf
COPY nginx/app.tar.gz /
RUN tar -zxvf /app.tar.gz -C /
RUN /bin/bash -c 'echo init ok'
EXPOSE 80
CMD ["nginx","-g","daemon off;"]

#设置容器启动时运行的命令。使用nginx命令启动Nginx服务器,通过-g "daemon off;"参数确保Nginx以前台模式运行,可以让Docker容器保持运行状态,直到Nginx进程终止。

(2)构建镜像

构建镜像:

[root@k8s-worker-node1 ERP]# docker build -t erp-nginx:v1.0 -f Dockerfile-nginx .
[+] Building 20.2s (14/14) FINISHED                                                                                                         docker:default
 => [internal] load build definition from Dockerfile-nginx                0.1s
 => => transferring dockerfile: 437B                                      0.0s
 => [internal] load .dockerignore                                         0.1s
 => => transferring context: 2B                                           0.0s
 => [internal] load metadata for docker.io/library/centos:centos7.9.2009  0.0s
 => [1/9] FROM docker.io/library/centos:centos7.9.2009                    0.0s
 => [internal] load build context                                         0.1s
 => => transferring context: 4.45MB                                       0.1s
 => CACHED [2/9] RUN rm -rf /etc/yum.repos.d/*                            0.0s
 => CACHED [3/9] COPY local.repo /etc/yum.repos.d/                        0.0s
 => CACHED [4/9] COPY yum /root/yum                                       0.0s
 => [5/9] RUN yum -y install nginx                                        16.3s
 => [6/9] COPY nginx/nginx.conf /etc/nginx/nginx.conf                     0.3s 
 => [7/9] COPY nginx/app.tar.gz /                                         0.3s 
 => [8/9] RUN tar -zxvf /app.tar.gz -C /                                  1.6s 
 => [9/9] RUN /bin/bash -c 'echo init ok'                                 0.6s 
 => exporting to image                                                    0.8s 
 => => exporting layers                                                   0.8s 
 => => writing image sha256:ae6988d7e559c846d64e9dde13cab98253fdbf1356dcc94c6b838fce965e87e9   0.0s 
 => => naming to docker.io/library/erp-nginx:v1.0                         0.0s

2.5 容器化部署ERP服务

(1)编写Dockerfile

编写Dockerfile:

[root@k8s-worker-node1 ERP]# vi Dockerfile-erp
FROM centos:centos7.9.2009
MAINTAINER Chinaskills
COPY app.jar /root
ADD yum /root/yum
RUN rm -rfv /etc/yum.repos.d/*
COPY local.repo /etc/yum.repos.d/local.repo
RUN yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
EXPOSE 9999
CMD java -jar /root/app.jar
(2)构建镜像

构建镜像:

[root@k8s-worker-node1 ERP]# docker build -t erp-service:v1.0 -f Dockerfile-erp .
[+] Building 118.7s (11/11) FINISHED                                                                                                        docker:default
 => [internal] load .dockerignore                                        0.1s
 => => transferring context: 2B                                          0.0s
 => [internal] load build definition from Dockerfile-erp                 0.1s
 => => transferring dockerfile: 368B                                     0.0s
 => [internal] load metadata for docker.io/library/centos:centos7.9.2009 0.0s
 => CACHED [1/6] FROM docker.io/library/centos:centos7.9.2009            0.0s
 => [internal] load build context                                        0.4s
 => => transferring context: 41.61MB                                     0.4s
 => [2/6] COPY app.jar /root                                             5.5s
 => [3/6] ADD yum /root/yum                                              14.0s
 => [4/6] RUN rm -rfv /etc/yum.repos.d/*                                 2.0s
 => [5/6] COPY local.repo /etc/yum.repos.d/local.repo                    0.6s
 => [6/6] RUN yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel 92.6s 
 => exporting to image                                                   3.3s 
 => => exporting layers                                                  3.3s 
 => => writing image sha256:1c5adc2becb3f4ca5ba28369fad51fe6e814dec92a7d04a5872469cb9432e5eb  0.0s 
 => => naming to docker.io/library/erp-service:v1.0                      0.0s

2.6 编排部署ERP

(1)编写docker-compose.yaml

编写docker-compose.yaml编排文件:

[root@k8s-master-node1 ERP]# vi docker-compose.yaml
version: '3'
services:
  erp-mysql:
    restart: always       #设置无论退出状态如何,总是重启该服务。
    image: erp-mysql:v1.0
    container_name: erp-mysql
    environment:
      - "MYSQL_DATABASE=jsh_erp"
    ports:
      - 3306:3306
  erp-redis:
    image: erp-redis:v1.0
    container_name: erp-redis
    restart: always
    ports:
      - 6379:6379
    command: redis-server --port 6379 --requirepass tshoperp --appendonly yes  #设置Redis监听的端口、设置Redis密码、启用AOF持久化。
  erp-server:
    restart: always
    image: erp-service:v1.0
    container_name: erp-server
    ports:
      - 9999:9999

  erp-web-ui:
    restart: always
    image: erp-nginx:v1.0
    container_name: erp-web-ui
    ports:
      - 8888:80

查看服务:

[root@k8s-worker-node1 ERP]# docker-compose ps
   Name                 Command               State                    Ports                  
----------------------------------------------------------------------------------------------
erp-mysql    mysqld_safe --user=root          Up      0.0.0.0:3306->3306/tcp,:::3306->3306/tcp
erp-redis    redis-server --port 6379 - ...   Up      0.0.0.0:6379->6379/tcp,:::6379->6379/tcp
erp-server   /bin/sh -c java -jar /root ...   Up      0.0.0.0:9999->9999/tcp,:::9999->9999/tcp
erp-web-ui   nginx -g daemon off;             Up      0.0.0.0:8888->80/tcp,:::8888->80/tcp    

在浏览器上通过http://IP:8888访问ERP管理系统,如图所示:

输入用户名(admin)和密码(123456)进行登录,如图所示:

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值