当前位置: 首页 > wzjs >正文

做推广送网站免费建站湖南网站设计外包费用

做推广送网站免费建站,湖南网站设计外包费用,做牙齿技工找工作去哪个网站,小型网站的建设与开发背景: 有A(打包机129),B(游戏服130) 2个机器,他们都安装有docker,请完成部署。 一、准备好java项目,写好Dockerfile # 基础镜像,使用包含 JDK 17 的 OpenJDK 镜像 FROM openjdk:17-jdk-slim# 设置工作目录 WORKDIR /…

背景:

有A(打包机129),B(游戏服130) 2个机器,他们都安装有docker,请完成部署。

一、准备好java项目,写好Dockerfile

# 基础镜像,使用包含 JDK 17 的 OpenJDK 镜像
FROM openjdk:17-jdk-slim# 设置工作目录
WORKDIR /app# 把当前目录下的 Spring Boot JAR 包复制到容器的 /app 目录下
COPY target/demo-0.0.1-SNAPSHOT.jar /app/app.jar# 运行 Spring Boot 应用程序
CMD ["java", "-jar", "app.jar"]

位置: // 这一步其实是在远程机器docker build打镜像包使用

思考:我们不需要安装docker上传插件而是打包后,使用rsync进行同步即可,然后在目标机上进行构建镜像,所以无需在pom.xml中配置docker插件!!

二、初始化打包机,安装docker和jenkins

# 通过MobaXterm可以向linux里的/home目录可以上传文件
# chmod -R 777 /home/  # 设置docker阿里云镜像
# cd /etc/docker/
# vim daemon.json
# {
# "registry-mirrors": ["https://mirror.ccs.tencentyun.com", "https://pfn30lpj.mirror.aliyuncs.com"]
# }# 重启docker容器
# sudo systemctl restart docker# 设置下格式不然win上传到linux运行不起来
#sudo find -name "*.sh" | xargs dos2unix# 强制删除镜像
# docker rmi -f hello-world:latest
# docker update --restart=no <container_id># 重启容器
# docker restart jenkins# 在windows上打开jenkins
# http://192.168.13.129:8080# DOC: 查看密码
# [root@bogon home]# cat /data/jenkins_home/secrets/initialAdminPassword
# 870bcdc8051443a3bdf69edfa6b2649f# DOC: 防火墙是否禁止22端口,禁止则打开
# firewall-cmd --query-port=22/tcp
# sudo firewall-cmd --add-port=2181/tcp --permanent
# sudo firewall-cmd --reload# DOC: 打开机器的root认证权限 
# 需要打开权限,不然没办法拷贝到宿主机
# vim /etc/ssh/sshd_config
# PermitRootLogin: yes
# PasswordAuthentication:yes#重启SSH服务使其生效
# systemctl restart sshd# DOC: 在目标机上生成下公钥
# ssh-keygen -t rsa -C "1072772483@qq.com"# DOC: 拷贝jenkins机器的公钥到目标机
# ssh-copy-id -i ~/.ssh/id_rsa.pub  root@192.168.13.130# DOC: 如果下面的直接执行成功,没让输入密码,则说明可以了
# ssh root@192.168.13.130# DOC: 进入到宿主机
# docker exec -it jenkins /bin/bash# DOC: 容器内安装rsync
# apt update -y
# apt install rsync -y#DOC: 打包镜像
# 新建Dockerfile文件
# [root@localhost demo]# docker build -t demo .
# 之后执行 docker images即可发现: demo镜像在里面了
#[root@localhost demo]# docker run -d -p 8082:8080 demo  // 在任意一个目录下运行
# docker ps                                              // 这样子可以看到,已经有一个demo的容器起来了 
# http://192.168.13.129:8082/test/hello                  // 发现已经可以运行了# DOC: 部署脚本
# #想要部署到的游戏服
# SERVER_IP=192.168.13.130
# #游戏服目录
# APP_PATH=/home/demo
# echo# echo WORKSPACE: ${WORKSPACE}
# echo# echo "[打包java程序,并同步到远程服务器]"
# cd ${WORKSPACE}/demo
# mvn clean package
# rsync -avzrcI ${WORKSPACE}/demo/  root@$SERVER_IP:$APP_PATH
# echo# echo "[在打包机上的2_UpdateServer传递到游戏服,并执行]"
# ls
# #ssh root@192.168.13.130 'bash -s' < ${WORKSPACE}/../../2_UpdateServer.sh
# echoJENKINS_HOME_DIR="/data/jenkins_home"if which docker > /dev/null 2>&1; thenecho "已经存在docker"
elseecho "不存在docker,开始安装"echo "准备docker环境"sudo dnf remove podmansudo rm -rf /etc/containers /etc/registries.conf /etc/containers/policy.json /etc/containers/storage.conf ~/.config/containers ~/.local/share/containerssudo dnf remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-enginesudo dnf install -y yum-utils device-mapper-persistent-data lvm2sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo echoecho "安装docker"sudo dnf install docker-ce docker-ce-cli containerd.io -yechoecho "启动docker"sudo systemctl start dockerechoecho "设置docker开机启动"sudo systemctl enable dockerechoecho "打印安装的docker版本"sudo docker --versionecho
fiecho "[step1]:检测jenkins home"
# 检查目录是否成功创建
if [ -d "$JENKINS_HOME_DIR" ]; thenecho "目录 $JENKINS_HOME_DIR 创建成功"chown -R 1000:1000 "$JENKINS_HOME_DIR"echo "目录 $JENKINS_HOME_DIR 设置读写权限"
elseecho "已经存在 $JENKINS_HOME_DIR 目录."
fi  
echo  echo "[step2]:检测docker镜像"
if docker images | grep -q "jenkins"; thenecho "存在 Jenkins 镜像"
elseecho "不存在 Jenkins 镜像,拉取镜像"docker pull jenkins/jenkins:lts
fi
echo echo "[step3]:检测docker是否运行着jenkins,没有运行则启动jenkins容器"
if docker ps -a| grep -q "jenkins"; thenecho "存在名为 jenkins的容器,先删除"docker stop jenkins# 删除 jenkins 容器docker rm jenkins    
fi
echoecho "[step4]:重新运行jenkins"
docker run -d -u root -p 8080:8080 -p 50000:50000 -v $JENKINS_HOME_DIR:/var/jenkins_home --restart=always --name jenkins jenkins/jenkins:lts
echo   

 需要注意: jenkins是运行在docker中,因此,是docker中与目标机之间的ssh认证,而不是宿主机!!!

三、初始化游戏服,安装docker

echo "[检测游戏服务器docker是否存在]"
if which docker > /dev/null 2>&1; thenecho "游戏服务器已经存在docker"
elseecho "游戏服务器不存在docker,开始安装"echo "准备docker环境"sudo dnf remove podmansudo rm -rf /etc/containers /etc/registries.conf /etc/containers/policy.json /etc/containers/storage.conf ~/.config/containers ~/.local/share/containerssudo dnf remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-enginesudo dnf install -y yum-utils device-mapper-persistent-data lvm2sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo echoecho "安装docker"sudo dnf install docker-ce docker-ce-cli containerd.io -yechoecho "启动docker"sudo systemctl start dockerechoecho "设置docker开机启动"sudo systemctl enable dockerechoecho "打印安装的docker版本"sudo docker --versionecho
fi
echo

四、打包机,配置jenkins 

不知道为何不使用https方式不识别!!!

选用的是maven风格的项目,如果没有安装maven插件,则选择下版本,并且自动下载

shell

#想要部署到的游戏服
SERVER_IP=192.168.13.130
#游戏服目录
APP_PATH=/home/demo
echoecho WORKSPACE: ${WORKSPACE}
echoecho "[打包java程序,并同步工程到远程服务器]"
cd ${WORKSPACE}/demo# 选择maven风格的项目,就不需要自己打包了
#mvn clean package rsync -avzrcI ${WORKSPACE}/demo/  root@$SERVER_IP:$APP_PATH
echoecho "[在游戏服上打包镜像,并运行起来]"
ssh root@${SERVER_IP} "cd ${APP_PATH}; docker stop demo; docker rm demo; docker rmi demo:1.0; docker build -t demo:1.0 .;  docker run -d -p 8082:8080 --name demo demo:1.0; "
echo

所以最核心的就是: rsync进行文件夹同步ssh root@server_ip "xxx"远程执行目标机上的shell文件。 

五、运行

TestController.java

package com.example.demo.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/test")
public class TestController {/*** http://localhost:8080/test/hello*/@RequestMapping("/hello")public String hello() {return "Hello World 3";}
}

效果:

http://www.dtcms.com/wzjs/87740.html

相关文章:

  • 网站开发风险协议游戏推广是什么工作
  • 兰州网站建设eoebiz外链火
  • 做h5网站要多少钱怎么弄一个自己的链接
  • 张家界网站建设的公司泉州seo托管
  • 叮当设计网安阳企业网站优化外包
  • 网站建设 大公司百度助手app免费下载
  • 专业做网站app 真假关键词代发排名
  • wordpress 外贸站官网优化 报价
  • 在视频网站中做节目怎么挣钱新闻发布最新新闻
  • 网站建设了解一下图片百度手机助手下载苹果版
  • 销售网站的销量统计怎么做中国足球世界排名
  • 中国保密在线网站培训系统在线crm网站建站
  • 网站日志分析怎么做2023最火的十大新闻
  • 鞋图相册网站怎么做百度seo综合查询
  • php网站源码怎么在本地测试怎么样建网站
  • 网站架构设计图海外营销
  • 网站建设哪家更专业如何制作网站链接
  • 辽宁省人民政府令第316号seo是一种利用搜索引擎的
  • 网站建设及安全管理游戏广告投放平台
  • 电商网站首页图片百度广告代运营
  • 十堰市郧城建设网站百度推广工具
  • 创可贴app海报制作网站济南网站seo
  • 建什么类型个人网站比较好产品推广方案ppt模板
  • 企业网站建设备案需要哪些资料厦门seo招聘
  • 深圳做网站哪家最好360搜索推广
  • 建立com网站十大跨境电商erp排名
  • 怎么样做网站长沙网络公司最新消息
  • 网站运营难做吗百度空间登录
  • 硬件开发和软件开发哪个工资高seo网站关键词排名提升
  • 关于网站可信备案百度移动首页