deploy_online.md 5.8 KB

前提说明

项目目录结构说明:
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项目镜像下载

执行下面命令拉去下载镜像

#docker-compose pull redis mysql nginx
#docker-compose pull gmetry-bi gmetry-system gmetry-upgrade gmetry-xxljob
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或域名][:端口]

如果正常打开页面,并且验证码也显示,说明部署成功。