配置环境 1 2 3 4 5 6 7 8 配置jenkins与前端服务器与git连接 10.31.162.25 nginx-server 10.31.162.32 java-server 10.31.162.35 jenkinx-server 10.31.162.39 mysql-redis-server 10.31.162.124 haobor-server 10.31.162.125 git-server
安装前端服务器 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 10.31.162.25 nginx-server 安装docker[root@nginx-server ~] [root@nginx-server ~] [root@nginx-server ~] [root@nginx-server ~] [root@nginx-server ~] [root@nginx-server ~] 先运行一次容器(为了拷贝配置文件):[root@nginx-server ~] 将容器内nginx的配置文件拷贝到宿主机上面[root@nginx-server ~] [root@nginx-server ~] [root@nginx-server nginx] total 0 drwxr-xr-x 2 root root 6 May 14 00:37 html drwxr-xr-x 2 root root 6 May 14 00:37 logs drwxr-xr-x 3 root root 177 Feb 9 2021 nginx[root@nginx-server nginx] [root@nginx-server nginx] total 0 drwxr-xr-x 3 root root 177 Feb 9 2021 conf drwxr-xr-x 2 root root 6 May 14 00:37 html drwxr-xr-x 2 root root 6 May 14 00:37 logs[root@nginx-server nginx] [root@nginx-server conf.d] [root@nginx-server conf.d] [root@nginx-server conf.d] upstream java-web { server 10.31.162.32:8080 }[root@nginx-server conf.d] server { listen 80 listen [::] :80 server_name localhost location / { root /usr/share/nginx/html try_files $uri $uri/ /index.html index index.html index.htm } location /prod-api/{ proxy_pass http://java-web/ proxy_set_header Host $http_host proxy_set_header X-Real-IP $remote_addr proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for } } 停止并删除容器[root@nginx-server ~] [root@nginx-server ~] 创建启动脚本[root@nginx-server ~] [root@nginx-server ~] nginx.sh up_path =/root/upload/code =*.tar.gzsrc =/application/nginx/htmldocker_name =web-nginx docker login -uadmin -p'Harbor12345' 10.31.162.124 cd $up_path tar xzf $code -C $src cd $src && chmod 777 * -R if [ $? -eq 0 ] docker run -itd --restart =always --name web-nginx -p 80 :80 -v /application/nginx/html/:/usr/share/nginx/html -v /application/nginx/logs/:/var/log/nginx/ -v /application/nginx/conf:/etc/nginx 10.31 .162.124 /nginx/mynginx:v1.0 sleep 1 if [ $? -eq 0 ] echo "nginx is started" else echo "启动失败,请手动处理" fi else echo "解压失败" fi chmod 777 $src/ -R[root@nginx-server ~] 配置连接harbor仓库地址[root@nginx-server ~] { "insecure-registries": ["192.168.209.166"] }[root@nginx-server ~]
安装mysql与redis 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 10.31.162.39 mysql-redis-server 1.安装redis[root@mysql-redis ~] [root@mysql-redis ~] [root@mysql-redis ~] [root@mysql-redis ~] [root@mysql-redis redis] [root@mysql-redis redis] [root@mysql-redis redis] bind 10.31.162.39 daemonize yes port 6379 protected-mode no 启动redis[root@mysql-redis redis] [root@mysql-redis redis] tcp 0 0 192.168.209.159:6379 0.0.0.0:* LISTEN 5770/src/redis-serv 2.安装mysql[root@mysql-redis ~] [root@mysql-redis ~] [root@mysql-redis ~] 将8.0关闭,将5.7开启[root@mysql-redis ~] [root@mysql-redis ~] [root@mysql-redis ~] [root@mysql-redis ~] 2023-05-09T12:37:58.805419Z 1 [Note] A temporary password is generated for root@localhost: :h,=.RRr28kt[root@mysql-redis ~] [root@mysql-redis ~] mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with Your MySQL connection id is 3 Server version: 5.7.31 MySQL Community Server (GPL) ... 创建数据库ry mysql> create database ry character set utf8 collate utf8_general_ci Query OK, 1 row affected (0.00 sec) 设置root允许远程登录 mysql> update mysql.user set host = '%' where user = 'root' Query OK, 1 row affected (0.10 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> flush privileges mysql> \q Bye
git-server获取代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 10.31.162.125 git-server[root@git-server ~] [root@git-server ~] [root@git-server ~] [root@git-server ~] [root@git-server ~] [root@git-server RuoYi-Vue] bin pom.xml ruoyi-common ruoyi-quartz ry.bat doc README.md ruoyi-framework ruoyi-system ry.sh LICENSE ruoyi-admin ruoyi-generator ruoyi-ui sql 1.先配置连接redis服务[root@git-server RuoYi-Vue] [root@git-server resources] redis: host: 10.31.162.39 port: 6379 password: 2.修改mysql[root@git-server resources] spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver druid: master: url: jdbc:mysql://10.31.162.39:3306/ry?useUnicode =true &characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true &serverTimezone=GMT%2 B8 username: root password: QianFeng@123! 同时注意数据库连接这里是否启动加密连接,如果启用了加密连接有可能会造成代码与数据库连接不上。修改为: &useSSL =false & 配置完成 安装mysql客户端[root@git-server ~] [root@git-server ~] [root@git-server sql] quartz.sql ry_20230223.sql[root@git-server sql] [root@git-server sql] 开始创建版本库[root@git-server ~] [root@git-server ~] [root@git-server ~] [root@git-server ~] [root@git-server git-server] Initialized empty Git repository in /git-server/ryvue/[root@git-server git-server] Initialized empty Git repository in /git-server/ryjava/[root@git-server git-server] 在本机将两个仓库克隆下来进行代码提交:[root@git-server ~] [root@git-server ~] [root@git-server ~] Cloning into 'ryvue'... warning: You appear to have cloned an empty repository.[root@git-server ~] Cloning into 'ryjava'... warning: You appear to have cloned an empty repository. 将代码提交到相应的代码库中 注:在这里没有办法区分前端和后端打包时需要的依赖,顾将所有代码都拷贝到两个版本库中。[root@git-server ~] [root@git-server ryvue] [root@git-server ryvue] [root@git-server ryjava] [root@git-server ryjava] [root@git-server ryjava] [root@git-server ryjava] 在编写后端的Dockerfile[root@git-server ryjava] FROM 10.31.162.124/myjdk/my-jdk:v1.0 WORKDIR /application/app ADD ruoyi-admin/target/*.jar /application/app EXPOSE 8080 ENTRYPOINT ["java","-jar","ruoyi-admin.jar"] [root@git-server ryjava] [root@git-server ryjava] [master 76f71f4] docker 1 1 file changed, 1 insertion(+), 1 deletion(-)[root@git-server ryjava] Counting objects: 5, done. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 294 bytes | 0 bytes/s, done. Total 3 (delta 2), reused 0 (delta 0) To [email protected] :/git-server/ryjava/ 2b539ad..76f71f4 master -> master[root@git-server ryjava] [root@git-server ryvue] [root@git-server ryvue] [root@git-server ryvue]
安装harbor仓库 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 10.31.162.124 haobor-server 安装docker[root@harbor ~] [root@harbor ~] [root@harbor ~] [root@harbor ~] [root@harbor ~] [root@harbor ~] [root@harbor ~] [root@harbor ~] [root@harbor ~] [root@harbor ~] http访问方式的配置:[root@harbor harbor] hostname: 10.31.162.124[root@harbor harbor] [root@harbor-server harbor] 浏览器访问测试: http://10.31.162.124 用户名admin 密码:Harbor12345[root@harbor harbor]
创建项目仓库
jenkins服务器 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 10.31.162.35 jenkinx-server 1.安装jenkins 略 2.配置jenkins免密连接git、nginx、java服务器--略 安装git命令[root@jenkins-server ~] 安装java打包命令 安装maven打包命令--可以安装在java目录里 设置java、maven变量--/etc/profile[root@jenkins-server ~] [root@jenkins-server ~] Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe 安装node.js前端打包工具命令npm[root@jenkins-server ~] [root@jenkins-server ~] [root@jenkins-server ~] [root@jenkins-server local] [root@jenkins-server ~] NODE_HOME =/usr/local/nodePATH =$NODE_HOME /bin:$PATH export NODE_HOME PATH[root@jenkins-server ~] [root@jenkins-server ~] v12.18.4 安装docker[root@jenkins-server ~] [root@jenkins-server ~] [root@jenkins-server ~] 启动并设置开机启动[root@jenkins-server ~] 配置jenkins连接harbor仓库[root@jenkins-server ~] { "insecure-registries": ["10.31.162.124"] }[root@jenkins-server ~] [root@jenkins-server ~] Password: Harbor12345 Login Succeeded 创建带有java环境的基础镜像[root@jenkins-server ~] 将对应版本的jdk包上传到该目录中[root@jenkins-server java] FROM daocloud.io/library/centos:7 RUN yum -y upgrade RUN yum install -y kde-l10n-Chinese RUN yum -y reinstall glibc-common RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 RUN echo 'LANG ="zh_CN.UTF-8" ' > /etc/locale.conf RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ENV LANG zh_CN.UTF-8 ENV LC_ALL zh_CN.UTF-8 # jdk1.8.0_321和自己下载的版本一致 ENV JAVA_HOME /usr/local/jdk1.8.0_321 ENV PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH ENV CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar # jdk-8u321-linux-x64.tar.gz和自己下载的版本一致 ADD jdk-8u321-linux-x64.tar.gz /usr/local/ 构建镜像 [root@jenkins-server java]# docker build -t my-jdk:v1.0 . [root@jenkins-server java]# docker images [root@jenkins-server java]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE my-jdk v1.0 617a86a455e1 2 minutes ago [root@jenkins-server java]# docker tag my-jdk:v1.0 10.31.162.124/myjdk/my-jdk:v1.0 将基础镜像上传到harbor仓库 [root@jenkins-server java]# docker push 10.31.162.124/myjdk/my-jdk:v1.0 制作nginx基础镜像 [root@jenkins-server nginx]# cat nginx.repo [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [root@jenkins-server nginx]# cat Dockerfile FROM daocloud.io/library/centos:7 # 更新软件 RUN yum -y upgrade # 安装中文包 RUN yum install -y kde-l10n-Chinese # 重新安装glibc-common RUN yum -y reinstall glibc-common # 编译生成语言库 RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 # 设置语言默认值为中文,时区改为东八区 RUN echo ' LANG="zh_CN.UTF-8" ' > /etc/locale.conf RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ENV LANG zh_CN.UTF-8 ENV LC_ALL zh_CN.UTF-8 ADD nginx.repo /etc/yum.repos.d/ RUN yum install -y nginx EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] [root@jenkins-server nginx]# docker build -t myningx:v1.0 . [root@jenkins-server nginx]# docker tag myningx:v1.0 10.31.162.124/nginx/mynginx:v1.0 [root@jenkins-server nginx]# docker push 10.31.162.124/nginx/mynginx:v1.0
配置ssh连接前端服务器 配置前端服务器 访问10.31.162.35:8080/jenkins
创建后端构建任务 )
1 2 3 4 5 脚本内容提供: docker build -t java-server:v1.0 . docker tag java-server:v1.0 10.31.162.124/java-server/java-server:v1.0 docker login -u admin -p Harbor12345 192.168.209.166 docker push 192.168.209.166/java-server/java-server:v1.0 && docker rmi 10.31.162.124/java-server/java-server:v1.0
创建前端构建任务
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 前端脚本 echo $PATH cd ${WORKSPACE} npm install --unsafe-perm --registry =https://registry.npm.taobao.org npm run build:prod cd dist/ rm -rf *.tar.gz tar -zcvf `date +%F`.tar.gz * cd ../
配置构建后操作
保存返回面板,开始构建
部署后端java服务 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 下载jocker[root@java-server ~] [root@java-server ~] [root@java-server ~] [root@java-server ~] 配置连接harbor仓库地址[root@java-server ~] { "insecure-registries": ["10.31.162.124"] }[root@java-server ~] 登陆仓库[root@java-server ~] 下载镜像[root@java-server ~] [root@java-server ~] REPOSITORY TAG IMAGE ID CREATED SIZE 192.168.209.166/java-server/java-server v1.0 23d4017d23fc Less than a second ago 725MB[root@java-server ~]
查看nginx服务器端口有没有起来
登入web测试 访问 10.31.162.25会出来偌依的界面