# 前提说明 > 项目目录结构说明: 1、 项目日志:/data/webapp/logs 2、 项目上传资源文件:/data/webapp/uploads 3、 项目docker环境:/data/docker/webapp 4、 前端项目目录:/data/webapp/www 5、 部署文件临时存放位置:/data/software 【注意:提前创建好】 6、 以下操作均为root用户操作 ## 1、安装docker ##### 1.1 上传docker-20.10.23.tgz到服务器[如:/data/software],解压缩并迁移命令 ``` # cp /data/software # tar -zxvf docker-20.10.23.tgz # cp -pf docker/* /usr/bin ``` ##### 1.2 将docker注册为系统服务 ``` # vim /usr/lib/systemd/system/docker.service [Unit] Description=Docker Application Container Engine Documentation=http://docs.docker.com After=network.target docker.socket [Service] Type=notify EnvironmentFile=-/run/flannel/docker WorkingDirectory=/usr/local/bin ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock --selinux-enabled=false ExecReload=/bin/kill -s HUP $MAINPID # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity # Uncomment TasksMax if your systemd version supports it. # Only systemd 226 and above support this version. #TasksMax=infinity TimeoutStartSec=0 # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes # kill only the docker process, not all processes in the cgroup KillMode=process Restart=on-failure [Install] WantedBy=multi-user.target ``` ##### 1.3 设置docker镜像存储位置、国内镜像加速、私服地址信任 ``` # mkdir -p /data/docker/lib && mkdir /etc/docker # vim /etc/docker/daemon.json { "registry-mirrors": [ "https://hub-mirror.c.163.com/", "https://mirror.ccs.tencentyun.com", "https://mirror.baidubce.com" ], "insecure-registries": [ "docker.platomix.net:10000" ], "data-root": "/data/docker/lib" } ``` ##### 1.4 启动docker ``` # systemctl daemon-reload # systemctl start docker # systemctl enable docker // 开机启动 # docker info //查看docker是否启动成功 ``` ##### 1.5 上传docker-compose上传到/data/software ``` # cd /data/software # cp docker-compose /usr/local/bin # chmod a+x /usr/local/bin/docker-compose # ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose # docker-compose --version //查看是否成功 ``` ## 2.部署项目 ##### 2.1、准备文件以及目录 上传webapp.zip和dist.zip到/data/software,解压缩 ``` # mkdir -p /data/webapp/{logs,www,uploads} # unzip webapp.zip -d /data/docker # unzip dist.zip -d /data/webapp/www ``` ##### 2.2、后端docker项目镜像安装 上传所有tar文件到/data/software,然后执行下面命令安装镜像 ``` #docker load < redis-5.0.tar #docker load < nginx-1.23.tar #docker load < mysql-8.tar #docker load < gmetry-bi-[version].tar #docker load < gmetry-system-[version].tar #docker load < gmetry-upgrade-[version].tar #docker load < gmetry-xxljob-[version].tar ``` ##### 2.3、启动后端docker项目 项目启动必须按照顺序【每一个步骤启动完成后,稍等10-20s,使任务完全启动成功后再执行下一个步骤】: ``` 1、创建docker网桥 #docker network create net_webapp #docker network ls #查看网桥 2、启动mysql/redis # cd /data/docker/webapp # docker-compose up -d mysql redis 3、启动BI项目模块 -> 【注意:启动该项目之前,请先修改3.2】 # cd /data/docker/webapp # docker-compose up -d gmetry-xxljob gmetry-bi gmetry-system gmetry-upgrade 4、最后启动nginx # cd /data/docker/webapp # docker-compose up -d nginx ``` ## 3.项目特殊说明 ##### 3.1、修改前端接口地址【必须】 ``` # vim /data/webapp/www/config.js 找到API_URL和API_UPLOADVIEW的值替换为系统访问的IP或域名;比如系统访问ip:port为192.168.0.1:8080[80端口可省略]: API_URL: "http://192.168.0.1:8080", API_UPLOADVIEW: "http://192.168.0.1:8080/uploads" ``` ##### 3.2、修改项目中IP或者域名地址【必须】 ``` # cd /data/docker/webapp # vim docker-compose.yml 替换该文件中所有http://localhost为访问域名或者IP加上端口。比如,系统访问ip:port为192.168.0.1:8080[80端口可省略], http://localhost -> http://192.168.0.1:8080 【注意】:如果是https协议的地址,需要同时修改协议。 //修改完后,需要重启docker容器;如果未启动容器,直接启动即可 # docker-compose up -d gmetry-xxljob gmetry-bi gmetry-system gmery-upgrade ``` ##### 3.3、修改系统访问的域名地址【可选】 如果用户的访问是域名,需要修改server_name【注意:IP访问无需改动】 ``` # cd /data/docker/webapp # vim nginx/conf.d/default.conf server_name localhost [域名] //修改完成后,需要重启nginx容器 # docker-compose restart nginx ``` ##### 3.4、修改对外访问端口【可选】 默认系统页面访问端口是80,如果客户不开通80端口,需要改为其他端口,比如:8080【端口值无要求】 ``` # cd /data/docker/webapp # vim docker-compose.yml 找到nginx的ports配置【第10行】: ports: - "80:80" - "443:443" 修改"80:80" -> "8080:80" //修改完成后,需要重启nginx容器 # docker-compose up -d nginx ``` ##### 3.5、使支持https协议,配置证书【可选】 1、去掉/data/docker/webapp/nginx/conf.d/default.conf中关于tls的注释; 2、上传2个nginx证书文件,并修改为localhost.pem和localhost.key,放到/data/docker/webapp/nginx/nginx/cert目录中; 3、给2个文件添加访问权限: `# chmod 755 localhost.pem && chmod 755 localhost.key ` ``` //重启nginx即可 # cd /data/docker/webapp # docker-compose restart nginx ``` ## 4.验证是否部署成功 浏览器打开:`http://[ip或域名][:端口]` 如果正常打开页面,并且验证码也显示,说明部署成功。