Nginx反向代理Harbor更优雅的使用私有仓库

大部分人拿来当作docker私有仓库的机器可能不止运行Harbor一个程序,因此很有可能80和443端口会被自己安装的Http程序所占用。而如果修改了Harbor的端口的话长长的镜像名字还得带上端口,看起来有点难受。

所以在此情况可以安装Nginx作为端口转发的工具,由他来控制80和443端口的访问。

设置Harbor

因为接下来设置nginx之后可以通过域名来区分入口,不需要依靠端口。就需要把Harbor的hostname修改。

修改harbor.cfg

1
2
# 不需要加入端口
hostname = docker.domain.com

修改docker-compose.yml

1
2
3
#修改proxy节点的port
- 8848:80
- 9443:443

接下来重新运行./install.shHarbor不会删除任何数据

完成之后访问docker.domain.com:9443测试能否打开,如果一切正常进行接下来的操作

阅读更多
使用Harbor建立私有docker仓库

介绍

Harbor

harbor是vmware提供的一个开源的企业级docker仓库方案,可以提供跨数据中心的景象同步备份

有很多地方提供免费的docker私有仓库,然而最合理的方式还是保存在自己私有仓库中。

Docker官方的hub也提供免费的私有仓库,但是只提供1个私有仓库。Gitlab也为没给项目提供免费的私有仓库,但是不清楚有什么限制。(Gitlab真有钱,无限免费仓库,2kMin的ci,还有这个貌似无限制的docker私有仓库)

安装registry

如果不需要网页管理什么的直接部署官方的registry容器就行了

阅读更多
为VPS添加ipv6

最近无意间发现浙江移动4G已经能分配到IPv6并且能够正常的使用了。今年又不想再办宽带,学生卡无限流量套餐+ipv6开热点简直爽到,而且能够直接给小鸡分配v6就够了,不需要再额外购买v4的ip,还能剩下不少钱。

而且全国很多的地区都已经分配了ipv6,为自己的小鸡弄一个v6也是十分必要的。然而大部分的vps主机商都只包含v4,阿里云竟然也不提供v6.像国外这种体量的云主机提供商都支持v6了。

所以我们只能使用HE.NET的v6隧道来使用。

接下来我们需要进行以下操作。

阅读更多
在Windows上向Linux服务器部署Hexo

Hexo官方在文档中提到的部署文件方法只有同步到Gitpage、Heroku、OpenShift或者通过rsync、ftp同步到自己的服务器。

然而Windows下并没有rsync,之前为了用rsync同步文件只好使用Bash on Windows来用rsync。

如果只是为了用rsync就装了BOW实在是太浪费了,所以需要另一种方式来同步Hexo。

Hexo提供Git提交方式的插件。原本这个插件是用来同步到Git page的,但是我们也可以用Git方式push public文件夹内容到git仓库然后设置webhook向自己的服务器发送事件,服务器再pull下来就行了(虽然跟那插件没啥关系)。

环境准备工作

所以我们先来做准备:

  • 创建私有仓库
  • 添加服务器的ssh pub key到github或者gitlab中就可以使用ssh方式pull文件而不需用输入用户密码
  • 准备python监听hook脚本
阅读更多
QML连接MySQL数据库

QT 5.X以上的版本集成了多种数据库的驱动

1
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

大部分情况只需要QT继承的库就可以完成数据库操作。

小坑

然而在使用Qt createor mingw时会出现无法载入驱动QSqlDatabase: QMYSQL driver not loaded的提示,出现这种情况的原因是Mingw的版本与驱动libmysql.dll不兼容。所以使用VS的情况下能够与Mysql成功连接。

默认安装的mingw都是32位,然而mingw内自带驱动却为64位,如果安装64位的MySQL得到的也是64位,因此需要下载32位的驱动放到mingw的bin目录下。这里提供我使用的版本

MySQL官网下载到的dll为400多kb与MySQL安装路径下的dll同样的大小,也无法成功连接,不知道是不是需要自己再编译一次?

阅读更多
使用Gitlab CI与Maven创建Docker镜像

之前使用了Jenkins作为自动构建工具,然而还是需要自己一台VPS去安装Jenkins软件。

然而Gitlab提供CI/CD服务(Continuous Integration & Deployment)每月有2k Mins的免费额度,如果需要更多的事件可以购买Ultimate或者自己搭建Runner。

同时Gitlab也提供免费的registry,不知道有没有额度限制,直接一条龙服务都提供了(Gitlab 大法好)。除了上次删库的情况也没出现过啥问题,没有私有库数量的限制,拿来专做自己的私有库还是不错滴。

自动化脚本gitlab-ci.yml

创建gitlab-ci.yml保存在项目根目录下编写以下内容

阅读更多
使用Maven、jenkins、docker实现持续集成

之前使用过jenkins+maven的方法自动构建项目并推送到tomcat的方法–>传送门

由于spring boot/cloud等的微服务的流行,人们更喜欢即开即用的方式。docker作为一个免费开源的容器,越来越多的应用也都会存在一个docker版本(比如jenkins、gitlab)。不过spring boot只需要一句命令就能启动也可以不需要创建一个docker版本。

安装

必须的系统环境:

  • Jdk(推荐还是用Oracle JDK,Jenkins执行编译的过程还是需要Oracle JDK的,方便起见替换掉系统的openjdk)
  • Maven
  • Docker
  • Git
  • Jenkins

docker hub 配置

使用docker官方的registry保存镜像,并不知道有没有限制。
create repo
创建一个私有Repo,repository的名称将作为镜像的名称

Maven配置

使用Maven构建docker镜像的话需要使用docker-maven-plugin

pom.xml添加插件和配置信息,根据官方的实例修改配置

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
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.11</version>
<configuration>
<!-- 目标位置 -->
<serverId>docker-hub</serverId>
<!-- 用户名/镜像名 -->
<imageName>tusik/web</imageName>
<!-- Dockerfile的位置 -->
<dockerDirectory>src/main/docker</dockerDirectory>
<pushImage>true</pushImage>
<!-- 镜像的标签,project.version在properties标签下添加 -->
<imageTags>
<imageTag>${project.version}</imageTag>
<imageTag>latest</imageTag>
</imageTags>
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
<!-- copy the service's jar file from target into the root directory of the image -->
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>

根据上面的配置在Maven的setting.xml下添加全局的docker hub信息

阅读更多
Github page与hexo搭建blog

自从开始写博客以来使用过免费收费的虚拟空间、vps,也用过wordpress、typecho、ghost、hexo。虽然之前也听过GitHub page的大名,但是总是觉得不如自己搭建来的方便。

然而在这几年下来因为主机商跑路,手贱把数据删了或者免费的服务实在是太慢等等的各种原因博客叶丢了好几次文章。幸好谷歌收录挺勤快慢慢的从快照复制黏贴最终还是补回来了。但也有几次全战都丢了,因此到现在更新博客的频率也越来越低。

在这几年的折腾经验中“自己的总是最不稳定的”这句话算是真理。因此现在看来把html的静态博客托管到GitHub page算是一个明智的选择。

阅读更多
hetzner安装proxmox开NAT和ipv6小鸡

虽然说使用Windows用Hyper-v开小鸡全程都是GUI很方便,但是Hyper-v并不提供dhcp等服务,所以在windows下管理小鸡反而难以操作。

所以打算重新安装proxmox后使用NAT v4+ipv6和纯v4ip来创建小鸡,web访问服务可以使用套上CF的CDN来使用V6回源,节省0.84欧的ip费用,而且购买单独ip貌似是不能超过6个?

一、安装proxmox

进入救援系统使用installimage命令选择Other,在选择proxmox*stretch这是在Debian9上安装proxmox5的脚本。不过Hetzner并不提供技术支持,所以安装完后需要进行一些修改。

安装的配置脚本需要进行一些修改

setting

修改硬盘Raid方式,和宿主机hostname。如果不需要raid可以修改SWRAID为0.

阅读更多
浏览者信息收集

仅仅记录投票票数确实有些无聊,所以需要适当的收集一些信息在进行统计就能得到一些更有趣的图表。

Request

以最基础的Request header入手。

HTTP 消息头允许客户端和服务器通过 request和 response传递附加信息。一个请求头由不区分大小写的名称后跟一个冒号“:”,冒号后跟具体的值(不带换行符)组成。该值前面的引导空白会被忽略。

每次的HTTP连接中必定会有header内容,因此从此很方便的获取访客的基本信息。

header支持的标准字段有很多,在此就仅列出一些拥有有效信息的字段:

字段名 描述 示例 状态
Accept-Charset 能够接受的字符集 Accept-Charset: utf-8 常设
Accept-Encoding 能够接受的编码方式列表。 Accept-Encoding: gzip, deflate 常设
Accept-Language 能够接受的回应内容的自然语言列表。 Accept-Language: en-US 常设
Referer 來源頁面 Referer: http://en.wikipedia.org/wiki/Main_Page 常設
User-Agent 浏览器的浏览器身份标识字符串 Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36 Maxthon/5.2.1.1000 常設

想要查看更多内容查看Wikipedia

以上就是比较常用的含有有效内容的字段。

不过Request header中包含的信息实在是少的可怜,所以需要使用其他方法来获取更多的信息。

阅读更多
'show'