被拖欠薪酬,公司服务器到期不续费,项目收尾备份服务文件。

作者:微信小助手

发布时间:2024-04-16T20:35:14

引言

背景:预算不足,项目终止。

计划:停止服务 

方案:

  • 代码备份、流水线配置备份
  • 备份数据库、ngnix、redis、nacos等中间件相关配置文件。

I  文件备份

1.1 数据库文件/证书

可从宝塔面板下载证书、数据库等文件。

1.2 redis

redis持久化操作

# 1、进入redis的配置文件目录
cd /mydata/redis/conf/
# 2、猫一眼此时的配置文件内容,没错,是空的
cat redis.conf
# 3、编辑该配置文件,设置数据持久化
vim redis.conf
# 4、进入该文件的插入模式,将下面的代码复制进去
appendonly yes
# 5、保存并退出【先按[Esc]键】
:wq


redis.conf

[root@iZbp1554676oowtsluc7nkZ conf]# cat redis.conf
requirepass 8888_prod
appendonly yes
appendfsync no
maxclients 1000 
timeout 300 
tcp-keepalive 60

创建容器

docker run -p 6379:6379 --name redis -e "TZ=Asia/Shanghai" --restart=on-failure:3 -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -v /app/D/code/log/redis.log:/app/D/code/log/redis.log -d redis redis-server /etc/redis/redis.conf

docker run -it --name redis_6379 -p 6379:6379 -v /usr/local/software/redis/6379/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /usr/local/software/redis/6379/data/:/data -v /usr/local/software/redis/6379/log/redis.log:/var/log/redis.log  -d redis:6.2.7 /usr/local/etc/redis/redis.conf


HostConfig

   "HostConfig": {
      "Binds": [
         "/mydata/redis/data:/data",
         "/mydata/redis/conf/redis.conf:/etc/redis/redis.conf",
         "/app/D/code/log/redis.log:/app/D/code/log/redis.log"
      ],
      "PortBindings": {
         "6379/tcp": [
            {
               "HostIp""",
               "HostPort""6379"
            }
         ]
      },

1.3 nacos

docker pull zhusaidong/nacos-server-m1:2.0.3

docker run -d -p 8848:8848 --env MODE=standalone  --name nacos  zhusaidong/nacos-server-m1:2.0.3

docker run --env MODE=standalone  --name nacos -d -p 8848:8848   --restart=always  nacos/nacos-server:latest


外接mysql,docker部署方式

docker run  --env NACOS_APPLICATION_PORT=8848 --env MODE=standalone  -e SPRING_DATASOURCE_PLATFORM=mysql -e MYSQL_SERVICE_HOST=xxx  -e MYSQL_SERVICE_PORT=3306 -e MYSQL_SERVICE_USER=wcp -e MYSQL_SERVICE_PASSWORD='hwWwR' -e MYSQL_SERVICE_DB_NAME=nacos_config -v /mydata/nacos/conf/:/home/nacos/conf --name nacos -d -p 8848:8848  --restart=on-failure:3  nacos/nacos-server:latest

#on-failure:3

https://blog.csdn.net/z929118967/article/details/132918836

II JAVA流水线备份

2.1 java构建

2.2 镜像构建

2.3 docker 部署

#部署脚本会在部署组的每台机器上执行。一个典型Docker部署脚本如下:
#示例中使用的$image是您在脚本下方的变量处定义的变量(上游输出或自定义)
#docker run $image
echo $DOCKER_PASSWORD | docker login --username $DOCKER_USERNAME --password-stdin registry.cn-hangzhou.aliyuncs.com
docker stop web-api
docker rm web-api
docker run -v /nfs:/nfs --name  web-api -d --net=host $image
# docker run --name  -d --net=host $image

# docker run --name  web-api -d -p 7005:7005  $image

docker update web-api  --restart=on-failure:3
# docker rmi $(docker images -qa)
docker rmi  $(docker images -qa)  2>/dev/null
#不打印错误输出,不换行后续没指令也会报错,但文件能写入成功。
#如果想要不报错,在后面加上其他指令即可:
echo "执行完毕"

2.4 子模块构建

# maven build default command
# mvn -B clean package -Dmaven.test.skip=true -Dautoconfig.skip
mvn clean install org.apache.maven.plugins:maven-deploy-plugin:2.8:deploy -DskipTests

# gradle build default command
# ./gradlew build

# ant build default command
# ant

2.5 Dockerfile_prod

# FROM openjdk:8-jdk
# FROM registry.cn-hangzhou.aliyuncs.com/dontony/public:openjdk-8-jdk-alpine-cn
FROM registry.cn-beijing.aliyuncs.com/hub-mirrors/openjdk:8-jdk-alpine

# 设置上海时区
ENV TZ=Asia/Shanghai

# 开放端口
EXPOSE 7005

# 指定工作目录
WORKDIR /app

# 将当前目录下的jar包复制道镜像中的/app目录下
COPY target/web-api-1.0-SNAPSHOT.jar .

RUN chown 1001:0 -R /app && chmod 775 -R /app

# java启动jar包
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Dfile.encoding=UTF8","-Dsun.jnu.encoding=UTF8","-jar","-Xms2048m","-Xmx4096m","web-api-1.0-SNAPSHOT.jar","--spring.profiles.active=prod"]

III VUE项目流水线备份

3.1 Node.js 构建

# input your command here
cnpm install
cnpm run build:pro

3.2 Dockerfile_prod

## 使用 Node.js 18 作为基础镜像
#FROM node:16.8
## 设置工作目录
#WORKDIR /app
#COPY . .
## 暴露容器的端口

#COPY package*.json ./
### 运行应用程序
#CMD [ "npm", "run", "test" ]
### 运行命令
##CMD [ "npm", "run", "test" ]
FROM nginx
RUN rm /etc/nginx/conf.d/default.conf

ADD default_prod.conf /etc/nginx/conf.d/
COPY dist/ /usr/share/nginx/html/

3.3 docker部署

#部署脚本会在部署组的每台机器上执行。一个典型Docker部署脚本如下:
#示例中使用的$image是您在脚本下方的变量处定义的变量(上游输出或自定义)
#docker run $image
echo $DOCKER_PASSWORD | docker login --username $DOCKER_USERNAME --password-stdin registry.cn-hangzhou.aliyuncs.com
docker stop admin
docker rm admin 
docker run --name admin -d -p 8006:8006 $image
docker update admin --restart=on-failure:3
docker rmi  $(docker images -qa)  2>/dev/null
#不打印错误输出,不换行后续没指令也会报错,但文件能写入成功。
#如果想要不报错,在后面加上其他指令即可:
echo "执行完毕"