作者:微信小助手
发布时间:2024-04-16T20:35:14
背景:预算不足,项目终止。 计划:停止服务 方案: 可从宝塔面板下载证书、数据库等文件。 redis持久化操作 redis.conf 创建容器 HostConfig 外接mysql,docker部署方式 https://blog.csdn.net/z929118967/article/details/132918836引言
I 文件备份
1.1 数据库文件/证书
1.2 redis
# 1、进入redis的配置文件目录
cd /mydata/redis/conf/
# 2、猫一眼此时的配置文件内容,没错,是空的
cat redis.conf
# 3、编辑该配置文件,设置数据持久化
vim redis.conf
# 4、进入该文件的插入模式,将下面的代码复制进去
appendonly yes
# 5、保存并退出【先按[Esc]键】
:wq[root@iZbp1554676oowtsluc7nkZ conf]# cat redis.conf
requirepass 8888_prod
appendonly yes
appendfsync no
maxclients 1000
timeout 300
tcp-keepalive 60docker 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": {
"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:latestdocker 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:3II 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
# ant2.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:pro3.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 "执行完毕"