<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[IMJCW的博客]]></title><description><![CDATA[小孩子的心思像星空，看的见却看不懂。]]></description><link>https://blog.youkuaiyun.com/github_35780607</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; github_35780607]]></copyright><item><title><![CDATA[GitHub Action构建并推送DockerHub]]></title><link>https://blog.youkuaiyun.com/github_35780607/article/details/127610755</link><guid>https://blog.youkuaiyun.com/github_35780607/article/details/127610755</guid><author>github_35780607</author><pubDate>Mon, 31 Oct 2022 10:31:43 +0800</pubDate><description><![CDATA[偶尔会构建一些自己用的容器，之前一直用的是提供的构建服务，然而开始收费了，那只能另寻他法。之所以不本地构建推送，是因为构建的时候经常因为网络问题，访问不了一些资源，所以就依赖外网的服务。之前知道可以做到这个事情，由于官方提供了相关服务，我对于实时性的需求不高，所以一般就将推送到就了事了。如下图操作：这里使用了手动构建，文件变更之后不会自动构建。]]></description><category></category></item><item><title><![CDATA[配置一个 Github Actions 定时任务]]></title><link>https://blog.youkuaiyun.com/github_35780607/article/details/125866755</link><guid>https://blog.youkuaiyun.com/github_35780607/article/details/125866755</guid><author>github_35780607</author><pubDate>Tue, 19 Jul 2022 10:47:49 +0800</pubDate><description><![CDATA[项目中，偶尔会需要用到工作日和休假相关的数据信息。而这个数据是根据国家发布的信息来确定的，每年都不一样。故想写个脚本，生成来年的节假日信息。然而，想要长期执行，需要有个稳定的服务来维持。服务器成本较高，本地不稳定。于是想到了。快去玩耍吧，你值得拥有。httpshttpshttpshttpshttpshttpshttpshttps。.........]]></description><category></category></item><item><title><![CDATA[Windows10远程桌面异常记录]]></title><link>https://blog.youkuaiyun.com/github_35780607/article/details/123474928</link><guid>https://blog.youkuaiyun.com/github_35780607/article/details/123474928</guid><author>github_35780607</author><pubDate>Mon, 14 Mar 2022 11:38:19 +0800</pubDate><description><![CDATA[管理员已结束会话、建立连接时发生错误、出现网络问题

打开编辑组策略

计算机配置-&gt;管理模板-&gt;Windows组件-&gt;远程桌面服务-&gt;远程桌面会话主机-&gt;远程会话环境

右侧找到“为远程桌面连接使用WDDM图形显示程序”，右键编辑为已禁用，保存
重启电脑

未启用对服务器的远程访问、远程计算机已关闭、远程计算机再网络上不可用


打开远程桌面设置



打开远程桌面



您的凭据不工作 之前用于连接到******的凭据无法工作。请输入新凭据的问题

检索凭据管理器
2. W]]></description><category></category></item><item><title><![CDATA[Jira统计工时]]></title><link>https://blog.youkuaiyun.com/github_35780607/article/details/123270985</link><guid>https://blog.youkuaiyun.com/github_35780607/article/details/123270985</guid><author>github_35780607</author><pubDate>Fri, 04 Mar 2022 10:31:16 +0800</pubDate><description><![CDATA[背景
随着公司流程越来越正规，也越来越卷了。
为了统计项目的输入输出，公司要求要知道每个人在项目上花费的时间，用于统计输入。
环境

Jira

RestApi
使用官方的API解决这个问题。
接口: /rest/api/latest/search
请求方式: GET
参数:




key
type
demo




jql
string
worklogAuthor%20%3D%20你的用户名%20AND%20worklogDate%20%3E%3D%20%22开始时间%22%20AND%20worklo]]></description><category></category></item><item><title><![CDATA[Nginx+LUA实现动态反向代理]]></title><link>https://blog.youkuaiyun.com/github_35780607/article/details/122751070</link><guid>https://blog.youkuaiyun.com/github_35780607/article/details/122751070</guid><author>github_35780607</author><pubDate>Sun, 30 Jan 2022 13:30:32 +0800</pubDate><description><![CDATA[前言

作者本人使用的是远程开发的模式，所以会用到DNS解析服务，和LUA脚本

本地通过 Hyper-V 安装了一个 Ubuntu 虚拟机，并在虚拟机中安装了一些 Docker 服务。
然后通过路由转发将容器路由转发到宿主机，相当于是将容器做成了一个个服务器。
然而，尴尬的是，为了能够提升服务效率，我将代码都放在了虚拟机中。开发的方式也是远程开发，但这个时候，调试的时候出错了。
因为 PHP 是通过端口传递 DEBUG 内容的。虚拟机中监听了 9000 端口，宿主机通过访问了容器服务，容器发现宿主机的 9]]></description><category></category></item><item><title><![CDATA[Docker设置DNS]]></title><link>https://blog.youkuaiyun.com/github_35780607/article/details/122745172</link><guid>https://blog.youkuaiyun.com/github_35780607/article/details/122745172</guid><author>github_35780607</author><pubDate>Sun, 30 Jan 2022 10:31:52 +0800</pubDate><description><![CDATA[前言
之前将 Docker 中的路由转发到了宿主机，相当于每个容器都变成了一个小型服务器。
然而各个服务之间都会可能会通过自定义域名进行交互，这个时候，我们需要在容器中的 etc/hosts 中写入所依赖的服务IP及其域名。
为了能够更好的解决这个问题，再次之前自建了 DNS 服务，这个时候，只需要指定一下 Docker 的 DNS 配置即可。
配置
Linux

这里以 Ubuntu20.04 为例

编辑 Docker 的 daemon.json
sudo vim /etc/docker/daemon.]]></description><category></category></item><item><title><![CDATA[Ubuntu使用dnsmasq自建dns服务]]></title><link>https://blog.youkuaiyun.com/github_35780607/article/details/122744999</link><guid>https://blog.youkuaiyun.com/github_35780607/article/details/122744999</guid><author>github_35780607</author><pubDate>Sun, 30 Jan 2022 10:23:25 +0800</pubDate><description><![CDATA[前言 服务上自定义了一些域名，当有用户在局域网中能够通过自定义域名访问到这些服务。
]]></description><category></category></item><item><title><![CDATA[Docker容器IP访问容器服务]]></title><link>https://blog.youkuaiyun.com/github_35780607/article/details/122712852</link><guid>https://blog.youkuaiyun.com/github_35780607/article/details/122712852</guid><author>github_35780607</author><pubDate>Sun, 30 Jan 2022 10:16:28 +0800</pubDate><description><![CDATA[前言 使用 Docker 搭建了一些服务，每一次新增服务，都需要在 nginx 的容器做一些操作。 于是乎，就探究探究能不能直接通过 容器IP+端口 来访问容器中的服务。

]]></description><category></category></item><item><title><![CDATA[Hyper-V固定虚拟机IP]]></title><link>https://blog.youkuaiyun.com/github_35780607/article/details/122712836</link><guid>https://blog.youkuaiyun.com/github_35780607/article/details/122712836</guid><author>github_35780607</author><pubDate>Sun, 30 Jan 2022 10:05:21 +0800</pubDate><description><![CDATA[前言 前段时间体验了一下 Docker for Windows，整体体验不是很好，偶现启动失败的异常情况。这种情况在更换成SSD之后，明显减少。 同时，也体验了 Win10 的 Linux 子系统。不知为何，wsl 相对稳定，且启动较快，就是访问宿主机文件着实比较慢，再加上公司安全政策，安装了一些软件，影响文件 IO。wsl2 在电脑重新启动之后，就再也启动不了，着实让人头疼。而且，wsl 和 Hyper-V 模式的切换也是个问题。

]]></description><category></category></item><item><title><![CDATA[阿里云DKMS对接记录]]></title><link>https://blog.youkuaiyun.com/github_35780607/article/details/122454423</link><guid>https://blog.youkuaiyun.com/github_35780607/article/details/122454423</guid><author>github_35780607</author><pubDate>Wed, 12 Jan 2022 15:23:18 +0800</pubDate><description><![CDATA[背景
因公司安全基线需求，需要对一些落库值进行加密处理。
在之前项目的方案里，是通过 AES256 做了一些自定义处理，对值进行加密，其中密钥和偏移量都是由运维同事维护的。
为了更加安全，公司层面直接使用了阿里云的 KMS 服务。
跟阿里云业务人员沟通之后，最终决定使用企业版KMS：DKMS。
然而，官方只有 Java 版本的 SDK。
SDK实现
传送门
参考了官方 KMS 的 SDK 之后，使用了其一些类库，实现了 PHP 版本的 DKMS SDK。
TIPS：仅实现了 encrypt 和 decryp]]></description><category></category></item><item><title><![CDATA[Gitlab+Jenkins+SonarQube实现代码质量扫描自动化]]></title><link>https://blog.youkuaiyun.com/github_35780607/article/details/120225017</link><guid>https://blog.youkuaiyun.com/github_35780607/article/details/120225017</guid><author>github_35780607</author><pubDate>Fri, 10 Sep 2021 16:33:11 +0800</pubDate><description><![CDATA[背景
按照安全基线的要求，需要对上线前的代码进行扫描。
此前，测试已经搭建过一个扫描服务，sonarqube。

流程定义
大致的流程如下：

开发提交代码
在 Gitlab 上提交MR
Jenkins 接收到创建MR的通知，检查是否符合规则
若符合规则，则执行扫描
扫描结束后，执行 Python 脚本，获取扫描状态
根据扫描结果，设置临时环境变量
评论MR


基础环境

GitLab
Jenkins
Sonarqube

Sonarqube配置
安装多分支扩展(开发版路过)
传送门
生成访问令牌
配置路]]></description><category></category></item><item><title><![CDATA[基于Git WebHook+Docker的自动化部署]]></title><link>https://blog.youkuaiyun.com/github_35780607/article/details/120080675</link><guid>https://blog.youkuaiyun.com/github_35780607/article/details/120080675</guid><author>github_35780607</author><pubDate>Fri, 03 Sep 2021 14:18:47 +0800</pubDate><description><![CDATA[前言
很久之前，有个云服务器，上面挂着自己的 Blog，每次发布代码的时候，都需要手动到服务器上 pull 代码，很是麻烦。
于是，折腾了一下 Gitee 的 Hook，实现了自动部署的功能。
一些答复
为什么不用比较成熟的工具？比如：Jenkins、CI/CD。
1、资源问题，本身就一台小服务器，没那么多资源搞这个。
2、自己搞个简单的，免费，香。
是否会停服？
会有短暂停服，如果不像停服，需要改造一下策略。
是否支持多副本？
不支持，因为作者的需求比较简单，未实现多副本的方案。
环境

Docker
P]]></description><category></category></item><item><title><![CDATA[在Colaboratory上运行Go程序]]></title><link>https://blog.youkuaiyun.com/github_35780607/article/details/119916276</link><guid>https://blog.youkuaiyun.com/github_35780607/article/details/119916276</guid><author>github_35780607</author><pubDate>Wed, 25 Aug 2021 17:44:24 +0800</pubDate><description><![CDATA[前言
有一次，在逛 youtube 时，看到有个播主直接在文档上运行代码片段。
这把我一下子整蒙了，这是什么神操作？
一番搜索之后，知道了这是 Google 的一个服务 Colaboratory。
Colaboratory
先附上地址：传送门。
主要用于机器学习方面，可以直接运行 Python 代码。
当然，我们也可以用于编写教程。想想，边分享，边执行代码是多么爽(装逼)的事情。
运行Go程序
言归正传，并不是所有人都会或都需要写 Python，那我们可以安装自己需要的语言，当然，写法上还是有一些变通的。
]]></description><category></category></item><item><title><![CDATA[Golang定义包版本]]></title><link>https://blog.youkuaiyun.com/github_35780607/article/details/119820602</link><guid>https://blog.youkuaiyun.com/github_35780607/article/details/119820602</guid><author>github_35780607</author><pubDate>Fri, 20 Aug 2021 12:08:45 +0800</pubDate><description><![CDATA[背景
上文《go.mod 使用私有依赖》的问题解决之后，遇到了包版本问题。
环境

gitlab
Golang v1.16.3

解决方案
Golang 的包版本是通过 git tag 来管理的。
我们只需要对我们的项目打一个 tag 就行，格式：v1.0.0。
包版本只支持 3 位版本号，定义时需要注意。

注意点
虽然打过 tag 的内容可以修改，但对于已经引用过当前包的项目来说，构建时会默认使用本地缓存，而不是使用修改过后的内容。

...]]></description><category></category></item><item><title><![CDATA[go.mod 使用私有依赖]]></title><link>https://blog.youkuaiyun.com/github_35780607/article/details/119819964</link><guid>https://blog.youkuaiyun.com/github_35780607/article/details/119819964</guid><author>github_35780607</author><pubDate>Fri, 20 Aug 2021 11:37:52 +0800</pubDate><description><![CDATA[背景
启动了一个新项目，做一个运维小工具，准备尝试一下 Golang。
因需要对接内部的 RABC 系统，索性封装了一个 SDK，也方便之后新项目的对接使用。
那么，怎么能够使用 go.mod 来使用私有的依赖呢？
环境

gitlab(私有)
golang v1.16.3

解决方案
我们需要对 Golang 做一些简单的配置。
1、使用 go module
go env -w GO111MODULE="on"

2、配置 GOPRIVATE，当使用 go get 时，指定的域名会直接通过 git 拉取.]]></description><category></category></item><item><title><![CDATA[MySQL事务嵌套]]></title><link>https://blog.youkuaiyun.com/github_35780607/article/details/115630361</link><guid>https://blog.youkuaiyun.com/github_35780607/article/details/115630361</guid><author>github_35780607</author><pubDate>Mon, 12 Apr 2021 17:09:35 +0800</pubDate><description><![CDATA[前言
MySQL 在开始某个事务的时候，会隐式提交上一个事务。所以 MySQL 本身是不支持事务嵌套的。
但 MySQL 也给我们提供了一个 SAVEPOINT 来做出类似事务嵌套的动作，我们将运用 SAVEPOINT 来帮助我们实现事务嵌套。
MySQL示例
准备一张表，用于测试。
CREATE TABLE `demo_transaction` (
  `id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=u]]></description><category></category></item><item><title><![CDATA[Golang学习笔记之使用Redis]]></title><link>https://blog.youkuaiyun.com/github_35780607/article/details/115553237</link><guid>https://blog.youkuaiyun.com/github_35780607/article/details/115553237</guid><author>github_35780607</author><pubDate>Fri, 09 Apr 2021 16:14:00 +0800</pubDate><description><![CDATA[前言
Redis包
包：github.com/go-redis/redis
文档：传送门
Demo
package main

import (
    "context"
    "fmt"
    "time"

    "github.com/go-redis/redis"
)

var ctx = context.Background()

func main() {
    client := getRedis()

    // get
    value, err := client.Get(]]></description><category></category></item><item><title><![CDATA[Github镜像站]]></title><link>https://blog.youkuaiyun.com/github_35780607/article/details/115109973</link><guid>https://blog.youkuaiyun.com/github_35780607/article/details/115109973</guid><author>github_35780607</author><pubDate>Tue, 23 Mar 2021 09:33:03 +0800</pubDate><description><![CDATA[前言
最近 VPN 被各种封禁，Github 也上不了了，能否上去看缘分。
于是搜了下，是否有镜像站。
站点

站点比较慢，拉取速度还可以。

hub.fastgit.org
TIPS：出于安全考虑，不建议登录账户信息
使用方式
将 github.com/xx/xx 替换为 hub.fastgit.org/xx/xx。
比如：github.com/XiaoMi/Gaea 可以使用 hub.fastgit.org/XiaoMi/Gaea 访问。
TIPS：有些项目比较冷门，站点不会缓存，需要刷新等待。
最后
]]></description><category></category></item><item><title><![CDATA[INSERT INTO vs REPLACE INTO vs INSERT IGNORE INTO]]></title><link>https://blog.youkuaiyun.com/github_35780607/article/details/114882202</link><guid>https://blog.youkuaiyun.com/github_35780607/article/details/114882202</guid><author>github_35780607</author><pubDate>Tue, 16 Mar 2021 14:59:29 +0800</pubDate><description><![CDATA[前言
在看某块功能的代码的时候，看到了比较有意思的 SQL 语句，如下：
INSERT IGNORE INTO ...

INSERT INTO
用的最多的插入语句了，直接插入一条数据，如果主键冲突，会报错。
REPLACE INTO
替换数据，SQL 语句中必须存在主键或者唯一键，如果存在，则更新，否则插入。
单个 INSERT INTO 语句插入多个值时，InnoDB 表中，会认为这是单个事务，要么都成功，要么都失败。
如果用了 INSERT IGNORE INTO 语句插入多个值时，InnoDB 表中]]></description><category></category></item><item><title><![CDATA[Element-ui获取上传的Excel并预览]]></title><link>https://blog.youkuaiyun.com/github_35780607/article/details/114633336</link><guid>https://blog.youkuaiyun.com/github_35780607/article/details/114633336</guid><author>github_35780607</author><pubDate>Wed, 10 Mar 2021 13:44:30 +0800</pubDate><description><![CDATA[前言
之前写了一篇《SheetJS生成/解析Excel》，并在实际项目中使用了，因为项目使用的是 Element-UI 写的，其中，用了 upload 组件。
实践
直接上代码(这里借用了之前的解析代码)：
&lt;el-upload
    ref="upload"
    limit="1"
    action=""
    :auto-upload="false"
    :on-change="parseExcel"
&gt;&lt;/el-upload&gt;

export default {]]></description><category></category></item></channel></rss>