Docker 部署 sharp-admin 应用

mkdir -p /usr/local/projects/sharp-admin

目录结构

├── data
├── deploy
│   └── sharp-admin-2.0-SNAPSHOT.jar
├── docker-compose.yaml
├── Dockerfile
└── init
    └── sharp-admin.sql
└── mysqldump
    └── mysqldump.sh
  • 安装 docker & docker-compose
  • 运行
docker-compose up -d
  • 域名解析 & 配置方向代理
vim /etc/nginx/conf.d/sharp-admin.conf

sharp-admin.conf

server {
    listen 80;
    server_name sharp-admin.xhope.top;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

访问 sharp-admin.xhope.top
– 数据库备份

crontab -e
00 23 * * * docker exec db /bin/bash /var/backups/mysqldump.sh
  • 开机启动 docker
sudo systemctl enable docker
crontab -e
40 23 * * * bash -c 'source ~/.bash_profile && /usr/bin/python3 /usr/local/projects/sharp-admin/upload.py'

其他参考:
Linux自动打包上传并运行SpringBoot程序

docker 部署 sharp-admin + 1Panel 管理面板

使用 Let’s Encrypt 免费申请泛域名 SSL 证书,并实现自动续期

参考:

https://www.cnblogs.com/michaelshen/p/18538178
https://letsencrypt.org/getting-started/
https://certbot.eff.org/

certbot 选择平台

My HTTP website is running Nginx ON Linux(snap)

按照提示操作如下:

sudo yum install snapd

sudo systemctl enable --now snapd.socket

sudo ln -s /var/lib/snapd/snap /snap

sudo snap install --classic certbot

sudo ln -s /snap/bin/certbot /usr/bin/certbot

sudo certbot --nginx

sudo certbot renew --dry-run

手动部署 sharp-admin 应用

vim /etc/nginx/conf.d/sharp-admin.conf

sharp-admin.conf

server {
    listen 80;
    server_name sharp-admin.xhope.top;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

mkdir -p /usr/local/projects/sharp-admin

目录结构

├── deploy
│   └── sharp-admin-2.0-SNAPSHOT.jar
├── application-prod.yml(可选)
├── sharp-admin.sql
├── config.sh
└── deploy.sh
└── mysqldump.sh
└── mysqldump
  • 数据库初始化
 mysql -uroot -p123456 sharp-admin < /usr/local/projects/sharp-admin/sharp-admin.sql

– 启动 sharp-admin 应用

sh deploy.sh

访问 sharp-admin.xhope.top
– 数据库备份

chmod +x /usr/local/projects/sharp-admin/mysqldump.sh
crontab -e
0 23 * * * /usr/local/projects/sharp-admin/mysqldump.sh
crontab -e
40 23 * * * bash -c 'source ~/.bash_profile && /usr/bin/python3 /usr/local/projects/sharp-admin/upload.py'

其他参考:
Linux自动打包上传并运行SpringBoot程序

docker 部署 sharp-admin + 1Panel 管理面板

创建服务,开机启动 sharp-admin 应用

创建 Service 文件

vim /etc/systemd/system/sharp-admin.service

写入以下内容:

[Unit]
Description=Sharp Admin Deploy Service
After=network.target mysql.service
Requires=mysql.service

[Service]
Type=simple
# ExecStart=/bin/bash -c 'nohup java -Xms1024m -Xmx2048m -Dspring.profiles.active=prod -jar /usr/local/projects/sharp-admin/sharp-admin-2.0-SNAPSHOT.jar --server.port=8080 &'
ExecStart=/usr/local/projects/sharp-admin/deploy.sh
WorkingDirectory=/usr/local/projects/sharp-admin
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

如果数据库是 mariadb 上面需要替换成 mariadb.service

添加deploy.sh可执行权限

chmod +x /usr/local/projects/sharp-admin/deploy.sh

启用并启动服务

sudo systemctl daemon-reload
sudo systemctl enable sharp-admin.service
sudo systemctl start sharp-admin.service