<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[SerryYang的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yangkuo024</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yangkuo024]]></copyright><item><title><![CDATA[Mybatis链接PostgreSQL指定schema]]></title><link>https://blog.youkuaiyun.com/yangkuo024/article/details/125504220</link><guid>https://blog.youkuaiyun.com/yangkuo024/article/details/125504220</guid><author>yangkuo024</author><pubDate>Tue, 28 Jun 2022 16:35:02 +0800</pubDate><description><![CDATA[Mybatis链接PostgreSQL指定schema]]></description><category></category></item><item><title><![CDATA[解决io.grpc.StatusRuntimeException: UNIMPLEMENTED: Service]]></title><link>https://blog.youkuaiyun.com/yangkuo024/article/details/125041641</link><guid>https://blog.youkuaiyun.com/yangkuo024/article/details/125041641</guid><author>yangkuo024</author><pubDate>Mon, 30 May 2022 10:27:37 +0800</pubDate><description><![CDATA[解决io.grpc.StatusRuntimeException: UNIMPLEMENTED: Service]]></description><category></category></item><item><title><![CDATA[kotlin 字符串与数组的相互转换]]></title><link>https://blog.youkuaiyun.com/yangkuo024/article/details/124951814</link><guid>https://blog.youkuaiyun.com/yangkuo024/article/details/124951814</guid><author>yangkuo024</author><pubDate>Tue, 24 May 2022 18:10:22 +0800</pubDate><description><![CDATA[kotlin 字符串与数组的相互转换]]></description><category></category></item><item><title><![CDATA[Java DDD中event机制的应用]]></title><link>https://blog.youkuaiyun.com/yangkuo024/article/details/124951067</link><guid>https://blog.youkuaiyun.com/yangkuo024/article/details/124951067</guid><author>yangkuo024</author><pubDate>Tue, 24 May 2022 17:55:49 +0800</pubDate><description><![CDATA[​​​​​JFinal-event在SpringBoot中的使用]]></description><category></category></item><item><title><![CDATA[rancher环境下，安装kubectl]]></title><link>https://blog.youkuaiyun.com/yangkuo024/article/details/123336205</link><guid>https://blog.youkuaiyun.com/yangkuo024/article/details/123336205</guid><author>yangkuo024</author><pubDate>Mon, 07 Mar 2022 18:20:39 +0800</pubDate><description><![CDATA[1. 查看当前集群的kubeconfig文件





2. 到虚拟机中，创建对应文件，将上述内容保存

a. 下载kubectl客户端：注意：release后面对应的是版本号


curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.20.11/bin/linux/amd64/kubectl

b. 下载完成之后,使二进制文件能够执行:


chmod +x ./kubectl

c. 将二进制文件移动到移动到PATH.]]></description><category></category></item><item><title><![CDATA[rancher部署k8s集群]]></title><link>https://blog.youkuaiyun.com/yangkuo024/article/details/123335767</link><guid>https://blog.youkuaiyun.com/yangkuo024/article/details/123335767</guid><author>yangkuo024</author><pubDate>Mon, 07 Mar 2022 18:03:42 +0800</pubDate><description><![CDATA[1. 添加主机

a. 登录到rancher，点击右上角添加集群：



b. 在页面上选择自定义选项：



c. 设置好集群名称，选择k8s版本，我们这里以测试环境为例：





d. 在主机选项中，三个全部勾选，在内网地址中，填入我们需要部署的虚拟机地址：

  如 192.168.1.16



e. 我们把标记为2的黑框中的内容拷贝出来：



f. 在我们刚刚填写的虚拟机中（如 192.168.1.16），执行此命令：



g. 回到我们的rancher页面，会提示 一台新主机注册...]]></description><category></category></item><item><title><![CDATA[一. Rancher环境搭建]]></title><link>https://blog.youkuaiyun.com/yangkuo024/article/details/123005037</link><guid>https://blog.youkuaiyun.com/yangkuo024/article/details/123005037</guid><author>yangkuo024</author><pubDate>Fri, 18 Feb 2022 15:58:16 +0800</pubDate><description><![CDATA[概要：为了解决手动创建k8s环境繁琐复杂的问题，这里我们选用rancher作为k8s环境的构建及管理工具。使得k8s的环境管理更加方便，快捷！

1. 下载镜像

此处选择 2.5.10版本，个人测试，这个版本比较好用！可依据自己想要的版本进行安装。


docker pull rancher/rancher:v2.5.10

2. 创建文件夹


mkdir -p /home/rancher_home/rancher
mkdir -p /home/rancher_home/auditlog

3. 启动r]]></description><category></category></item><item><title><![CDATA[解决Error response from daemon: Get https://: http: server gave HTTP response to HTTPS client]]></title><link>https://blog.youkuaiyun.com/yangkuo024/article/details/121135602</link><guid>https://blog.youkuaiyun.com/yangkuo024/article/details/121135602</guid><author>yangkuo024</author><pubDate>Thu, 04 Nov 2021 09:31:20 +0800</pubDate><description><![CDATA[背景：在一台服务器上，拉取私有镜像仓库中的镜像报错；

      镜像仓库地址：192.168.1.26:5000

报错信息如下：

ErrImagePull: rpc error: code = Unknown desc = Error response from daemon: Get https://192.168.1.26:5000/v2/: http: server gave HTTP response to HTTPS client

解决方式：

1. 编辑docker dae...]]></description><category></category></item><item><title><![CDATA[docker方式部署Jenkins后，在JenkinsFile中使用docker命令无效问题解决]]></title><link>https://blog.youkuaiyun.com/yangkuo024/article/details/121114557</link><guid>https://blog.youkuaiyun.com/yangkuo024/article/details/121114557</guid><author>yangkuo024</author><pubDate>Wed, 03 Nov 2021 11:54:33 +0800</pubDate><description><![CDATA[背景：本人是以docker形式部署的Jenkins，按照官网的流程：使用中，在JenkinsFile中，使用docker拉取镜像时报错，JenkinsFile如下：


pipeline {
    agent {
        docker { image 'node:7-alpine' }
    }
    stages {
        stage('Test') {
            steps {
                sh 'node --version'
        ]]></description><category></category></item><item><title><![CDATA[Docker安装MediaWiki(最新版)]]></title><link>https://blog.youkuaiyun.com/yangkuo024/article/details/120745478</link><guid>https://blog.youkuaiyun.com/yangkuo024/article/details/120745478</guid><author>yangkuo024</author><pubDate>Wed, 13 Oct 2021 16:18:57 +0800</pubDate><description><![CDATA[1. 安装MySQL5.7依赖

a. 下载镜像：


docker pull mysql:5.7

b. 启动MySQL服务：

  MYSQL_ROOT_PASSWORD=123456 表示生成的容器里的root账户密码是123456


docker run --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

c. 开放3306端口；

2. 安装MediaWiki

a. 下载镜像：


docker ..]]></description><category></category></item><item><title><![CDATA[Java（spring boot）实现操作minio（最新版本minio）]]></title><link>https://blog.youkuaiyun.com/yangkuo024/article/details/120142194</link><guid>https://blog.youkuaiyun.com/yangkuo024/article/details/120142194</guid><author>yangkuo024</author><pubDate>Mon, 06 Sep 2021 18:59:50 +0800</pubDate><description><![CDATA[1. 在yml文件中添加minio的配置信息：


minio:
  endpoint: http://192.168.1.55:9000
  accessKey: 1777QN2GK9S6N02G83NK
  secretKey: 6gMzG26973fXJfKxEOSxaUTrFdy3+QtSggdprESJ
  bucketName: test

2. 创建minio的配置文件：


package com.common.properties;

import org.springframework.]]></description><category></category></item><item><title><![CDATA[Docker安装minio（最新版）-避坑]]></title><link>https://blog.youkuaiyun.com/yangkuo024/article/details/120134202</link><guid>https://blog.youkuaiyun.com/yangkuo024/article/details/120134202</guid><author>yangkuo024</author><pubDate>Mon, 06 Sep 2021 14:54:28 +0800</pubDate><description><![CDATA[1. 拉取docker镜像


docker pull minio/minio

2. 设置minio用到的文件路径


mkdir minio

进入minio目录：


mkdir data


mkdir config

3. 启动服务：注意，这里要单独设置console的端口，不然会报错，且无法访问

这种安装方式 MinIO 自定义 Access 和 Secret 密钥要覆盖 MinIO 的自动生成的密钥


docker run --name minio \
-p 9000:9000 \
-p ]]></description><category></category></item><item><title><![CDATA[Java实现阿里短息服务发送功能]]></title><link>https://blog.youkuaiyun.com/yangkuo024/article/details/119827993</link><guid>https://blog.youkuaiyun.com/yangkuo024/article/details/119827993</guid><author>yangkuo024</author><pubDate>Fri, 20 Aug 2021 18:27:06 +0800</pubDate><description><![CDATA[1. 功能设置

a. 首先在阿里云平台开通短信服务功能：



b. 在平台上，进行短信签名设置，短信签名需要平台人工审核：



c. 进行短信模板设置，以验证码为例：


]]></description><category></category></item><item><title><![CDATA[六. GitLab-CI/CD-实战：前端Vue项目]]></title><link>https://blog.youkuaiyun.com/yangkuo024/article/details/119762122</link><guid>https://blog.youkuaiyun.com/yangkuo024/article/details/119762122</guid><author>yangkuo024</author><pubDate>Tue, 17 Aug 2021 17:55:40 +0800</pubDate><description><![CDATA[1. 环境准备

注册runner，请查阅之前的博客：

https://blog.youkuaiyun.com/yangkuo024/article/details/119215657

注册一个Vue项目使用的runner，注意过程中用到的镜像修改；


Enter the GitLab instance URL (for example, https://gitlab.com/):
你的git地址
Enter the registration token:
上面说到的项目runner的token
Enter a ]]></description><category></category></item><item><title><![CDATA[Java实现阿里云OSS获取临时签名及操作]]></title><link>https://blog.youkuaiyun.com/yangkuo024/article/details/119761050</link><guid>https://blog.youkuaiyun.com/yangkuo024/article/details/119761050</guid><author>yangkuo024</author><pubDate>Tue, 17 Aug 2021 17:24:11 +0800</pubDate><description><![CDATA[1. 背景说明

详细，请参阅阿里云那官方文档：

https://help.aliyun.com/document_detail/31926.html?spm=a2c4g.11186623.6.1737.5f3e3bd36kleqs

a. 采用JavaScript客户端直接签名时，AccessKey ID和AcessKey Secret会暴露在前端页面，因此存在严重的安全隐患。因此，OSS提供了服务端签名后直传的方案。



b. 修改OSS的CORS：

登录OSS管理控制台。
	单击Bucket列表]]></description><category></category></item><item><title><![CDATA[docker中部署Java服务占用内存过大问题]]></title><link>https://blog.youkuaiyun.com/yangkuo024/article/details/119542237</link><guid>https://blog.youkuaiyun.com/yangkuo024/article/details/119542237</guid><author>yangkuo024</author><pubDate>Mon, 09 Aug 2021 17:32:30 +0800</pubDate><description><![CDATA[1. 问题背景

公司内部，使用springboot进行后端接口开发，因为当前后端开发只有自己一人，所以对于一些细节问题，没有进行深入的考虑。

每次开发完一段业务，直接通过 java -jar 命令的方式，把程序放入docker中进行运行。也从来没有考虑过内存问题。偶然间发现内存泄漏问题，导致docker服务直接kill掉。通过命令查看docker服务内存使用情况，发现一个小小的Java服务，内存竟然用到了1G以上，真的是惊呆了。（以内网环境服务进行说明）：

a. 通过查看docker服务的内存使用情况]]></description><category></category></item><item><title><![CDATA[五. GitLab-CI/CD-实战：spring-boot项目]]></title><link>https://blog.youkuaiyun.com/yangkuo024/article/details/119317589</link><guid>https://blog.youkuaiyun.com/yangkuo024/article/details/119317589</guid><author>yangkuo024</author><pubDate>Mon, 02 Aug 2021 10:38:19 +0800</pubDate><description><![CDATA[1. 环境准备

生产环境docker；
	maven
	DK1.8
	gitlab 以及gitlab-runner
总：根据之前的几篇博客，配置好对应的runner，这里 以 test_spring_boot 为runner tag为例说明；

2. 项目目录

在项目跟目录下，创建如下几个文件：

.feature.env --测试环境变量配置文件

.master.env--生产环境变量配置文件

.gitlab-ci.yml--CI/CD核心配置文件

Dockerfile--用于构建Java镜像的]]></description><category></category></item><item><title><![CDATA[四. GitLab-CI/CD-核心（.gitlab-ci.yml）]]></title><link>https://blog.youkuaiyun.com/yangkuo024/article/details/119238972</link><guid>https://blog.youkuaiyun.com/yangkuo024/article/details/119238972</guid><author>yangkuo024</author><pubDate>Fri, 30 Jul 2021 11:02:35 +0800</pubDate><description><![CDATA[1. 什么是 .gitlab-ci.yml

项目的构建流程是由项目根目录的.gitlab-ci.yml文件控制的。

在对代码库进行任何推送时，GitLab都会查找该项目下.gitlab-ci.yml 文件，并根据该文件的内容在Runners上启动作业。完成一些列的操作。

在定义作业（任务）时，每个作业的名称要相对唯一，但是，一些默认保留关键字是不可以作为作业名字使用的：


image
services
stages
types
before_script
after_script
variable.]]></description><category></category></item><item><title><![CDATA[三. GitLab-CI/CD-runner补充说明-整体工作流程说明]]></title><link>https://blog.youkuaiyun.com/yangkuo024/article/details/119216638</link><guid>https://blog.youkuaiyun.com/yangkuo024/article/details/119216638</guid><author>yangkuo024</author><pubDate>Thu, 29 Jul 2021 17:43:51 +0800</pubDate><description><![CDATA[1. 工作流程说明



整体上，大致就是这个流程，整个过程，都由runner进行驱动；

2. 补充说明

a. 上述流程中提到的 镜像服务器（dockerhub），自行百度进行安装即可；

b. 因为流程中，要登录到部署服务的服务器上，所以必要时，要对CI/CD进行一些参数设置，用来保证我们程序能够正确进入到部署服务的服务器：





c. 注意，要把红框中的protect打钩去掉，否者我们程序中会读不到这个参数：



以上，就是要注意的小问题以及整体工作流程，对这个参数不太理解的话，后续的实...]]></description><category></category></item><item><title><![CDATA[二. GitLab-CI/CD-runner]]></title><link>https://blog.youkuaiyun.com/yangkuo024/article/details/119215657</link><guid>https://blog.youkuaiyun.com/yangkuo024/article/details/119215657</guid><author>yangkuo024</author><pubDate>Thu, 29 Jul 2021 17:17:38 +0800</pubDate><description><![CDATA[1. runner注册参数准备

a. 进入gitlab到相关项目下：



b. 进入settings下 CI/CD：



c. 我们打开Runners这一选项：



d. 留意红框中内容，使我们后面注册runners要用到的值：

  一个是git地址，一个是当前项目的token；



2. runner注册

a. 进入已经配置好的runner（上一篇中提到的runner服务）：



docker exec -it test-runner gitlab-runner regist...]]></description><category></category></item></channel></rss>