项目目录结构说明:
1、 项目日志:/data/webapp/logs
2、 项目上传资源文件:/data/webapp/uploads
3、 项目docker环境:/data/docker/webapp
4、 前端项目目录:/data/webapp/www
5、 部署文件临时存放位置:/data/software 【注意:提前创建好】 6、 以下操作均为root用户操作
# cp /data/software
# tar -zxvf docker-20.10.23.tgz
# cp -pf docker/* /usr/bin
# 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
# 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"
}
# systemctl daemon-reload
# systemctl start docker
# systemctl enable docker // 开机启动
# docker info //查看docker是否启动成功
# 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 //查看是否成功
上传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
执行下面命令拉去下载镜像
#docker-compose pull redis mysql nginx
#docker-compose pull gmetry-bi gmetry-system gmetry-upgrade gmetry-xxljob
项目启动必须按照顺序【每一个步骤启动完成后,稍等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
# 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"
# 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
如果用户的访问是域名,需要修改server_name【注意:IP访问无需改动】
# cd /data/docker/webapp
# vim nginx/conf.d/default.conf
server_name localhost [域名]
//修改完成后,需要重启nginx容器
# docker-compose restart nginx
默认系统页面访问端口是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
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
浏览器打开:http://[ip或域名][:端口]
如果正常打开页面,并且验证码也显示,说明部署成功。