Zzx Blog

Since 2017


  • 首页

  • 标签

  • 分类

  • 归档

  • 公益404

  • 搜索

Gitlab私有git服务器安装(docker版)

发表于 2020-02-20 | 分类于 Docker , Gitlab
安装要求

官方推荐双核4g内存,实际体验下来,如果不做任何配置优化4g是标配,不然会出现频繁502的情况,如果配置比较低,有轻量化的gitlab服务。

本文为docker版本安装,根据官方文档一键安装,去除繁杂配置。因此主机也需要先配置docker环境。

安装

在所需目录新建文件夹

1
2
3
4
5
mkdir gitlab # 新建gitlab文件夹
cd gitlab
mkdir config data log # 新建gitlab docker容器挂载目录
touch docker-compose.yml # 用docker-compose 安装
vim docker-compose.yml

docker-compose.yml内容:

阅读全文 »

Jenkins 配合Gitlab自动化构建项目

发表于 2020-02-20 | 分类于 Jenkins , Gitlab
配置步骤

jenkins 版本 2.176.3

GitLab Community Edition 12.3.1

jenkins安装gitlab 插件,到插件管理中搜索gitlab

image.png

注意安装Gitlab Plugin即可,gitlab hook plugin貌似已经弃用了。

阅读全文 »

shiro中切换数据源失败问题

发表于 2019-09-23 | 分类于 Java , SpringBoot
shiro中切换数据源失败问题

在SpringBoot shiro认证框架中,认证环节使用动态代理切换数据源时切换失败。上代码:

OAuth2Realm 类部分代码:

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
   @Component
public class OAuth2Realm extends AuthorizingRealm {
@Autowired
private AccountService accountService;
/**
* 认证(登录时调用)
*/
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
String accessToken = (String) token.getPrincipal();

// 根据token获取用户id redis start
String userId = JWTUtil.getUsername(accessToken);

if (userId == null) {
throw new IncorrectCredentialsException("token无效");
}
// 根据userId从redis中获取登陆账号token
String key = RedisKeys.getAdminTokenKey(String.valueOf(userId));
String adminToken = redisUtils.get(key);
if (adminToken == null || !accessToken.equals(adminToken)) {
throw new IncorrectCredentialsException("token失效,请重新登录");
}

AccountEntity user = new AccountEntity();
if (userId != null) {
user = accountService.queryAccount(userId);
}

SimpleAuthenticationInfo info = new SimpleAuthenticationInfo(user, accessToken, getName());
return info;
}
}
阅读全文 »

Jenkins自动化部署Vue项目前端及后端

发表于 2019-09-18 | 分类于 DevOps , Vue项目部署
安装

操作系统 ubuntu 18

  • java安装
1
2
3
4
sudo add-apt-repository ppa:openjdk-r/ppa
# 需要回车一下
sudo apt-get update
echo y|sudo apt-get install openjdk-8-jdk
阅读全文 »

Jenkins基本使用

发表于 2019-09-18 | 分类于 Jenkins , Usage

Jenkins使用

使用公钥私钥连接github
1
2
3
ssh-keygen -t rsa -C “bluedrum@qq.com”

cat >> ~/.ssh/authorized_keys < ~/.ssh/id_rsa.pub
阅读全文 »

Vue 2.0 基于video.js 和 vue-video-player插件播放直播

发表于 2019-09-05 | 分类于 Javascript , Vue
Vue 2.0 基于video.js 和 vue-video-player插件播放直播

vue-video-player是基于video.js基础上封装的vue插件(官方文档不全很乱,但是能基本使用),以下介绍播放rtmp协议的视屏资源各种直播协议介绍

  • 开始使用,安装

Github地址

npm地址

1
npm install vue-video-player --save

在项目中有三种使用方式(mount with global,mount with component,mount with ssr),根据自己的实际情况装载,我使用的是mount with component。

1
2
3
4
5
6
7
8
9
import 'video.js/dist/video-js.css'
import {videoPlayer} from 'vue-video-player'
import 'videojs-flash' // 本文使用的是rtmp直播源,应用到的是flash技术,所以需要引入此插件

export default {
components: {
videoPlayer
}
}

组件代码:

阅读全文 »

docker搭建nextcloud

发表于 2019-08-16 | 分类于 Docker , nextcloud

搭建过程

所需条件:

1.一台linux主机(安装好docker环境)

2.一块大容量硬盘(云存储容量取决于此硬盘分区大小)

硬盘挂载(已挂载可以直接跳过)

我使用的是移动硬盘连接的主机的usb口,移动硬盘分了一个ext4的分区挂载到主机上。

分区及挂载步骤:

阅读全文 »

oneindex-基于onedrive的私人网盘

发表于 2019-08-16 | 分类于 Tools , oneindex

oneindex安装及使用

使用lnmp搭建使用环境

简介

  • OneIndex是一个类似与PHP目录的程序,其主要功能是将OneDrive的文件目录给列出来,仅仅需要将程序部署在服务器上,不占用太大的空间,索引中的文件并不占用服务器空间,仅仅占用OneDrive容量,流量也不用走服务器流量。支持部分音视频/图片格式在线浏览和下载,本质是一个在线下载网站。
    环境要求
  1. PHP空间,PHP 5.6+ 需打开curl支持 (推荐用5.6版本)
  2. OneDrive 账号 (个人、企业版或教育版/工作或学校帐户)
  3. OneIndex 程序
    lnmp环境安装
  • 安装步骤
    1
    2
    3
    4
    5
    6
    7
    8
    yum -y install wget screen #for CentOS/Redhat
    # apt-get install screen #for Debian/Ubuntu
    wget http://mirrors.linuxeye.com/lnmp-full.tar.gz
    tar xzf lnmp-full.tar.gz
    #tar xzf lnmp.tar.gz
    cd lnmp # 如果需要修改目录(安装、数据存储、Nginx日志),请修改options.conf文件
    screen -S lnmp # 如果网路出现中断,可以执行命令`screen -R lnmp`重新连接安装窗口
    ./install.sh
阅读全文 »

Spring源码分析(2)

发表于 2019-08-05 | 分类于 Java , Spring

Spring中的BeanDefinition

BeanDefinition
  • BeanDefinition顾名思义bean的定义,它其实是bean定义的一个顶级接口

    image.png

  • BeanDefinition描述一个bean的实例,跟Class类中的字段、方法描述一个类不同,一个Class类的字段、方法并不能描述如何实例化这个类。如果说,Class类描述了一块猪肉,那么BeanDefinition就是描述如何做红烧肉。

  • Spring如何解析一个bean的(用配置文件或者@Bean)

    • Spring首先会扫描解析指定位置的所有的类得到Resources(可以理解为.Class文件)
    • 然后依照TypeFilter和@Conditional注解决定是否将这个类解析为BeanDefinition
    • 稍后再把一个个BeanDefinition取出实例化成Bean

举一个例子:

现有一个UserCOntroller,以及UserServiceImpl implements UserService,并在UserController中注入UserService:

1
2
@Autowired
private UserService userService;
阅读全文 »

Spring源码分析(1)

发表于 2019-08-04 | 分类于 Java , Spring

分析spring 中IOC及AOP的理解

IOC控制反转( Inversion of Control )

  1. 为何要用IOC控制反转?IOC是什么

    image0548234a76d3d557.png (1)

    [^1]: 上图基本上解释了IOC原理,IOC即通过依赖倒置原则(依赖注入),将bean交给spring管理,从而避免了每次使用bean时都需要new 一个对象的痛点。

阅读全文 »
1…345…7
Banksy Zhuang

Banksy Zhuang

66 日志
36 分类
40 标签
Github E-Mail
© 2017 — 2024 Banksy Zhuang
本站已运行