这周做任务的时候老是遇到各种难以解决的小问题,都折腾了很久的,导致东西没做多少。。。
Gitlab-Runner
需要在Windows服务器上部署一个应用,恰好上面也跑了gitlab-runner
,所以直接在项目的.gitlab-ci.yml
配置了部署脚本。本想着一切挺完美的,每次push
后,新文件自动复制,然后重启应用!
在.gitlab-ci.yml
中的script
有调用start xx.bat
脚本的语句来重启应用,结果gitlab-runner
每次运行到调用bat
的语句的时候就卡住了,但是应用好像是重启了。。。但是gitlab-runner
挂了啊,后续的ci/cd
任务都没办法继续了,具体挂掉的原因没有具体的定位到,猜测是因为gitlab-runner
调用bat
的时候是使用start /k
命令有关,曲线救国,最后script
调用py
脚本来启动应用
另外一个问题,gitlab-runner
是以系统服务运行的,所以script
中运行命令启动应用是没办法创建窗口的(system
用户运行的环境中没有窗口服务),而且应用运行的身份是system
,所以如果真要在windows
上做自动部署,正确的办法是通过远程桌面登录需要部署的机器,然后部署应用
VPN
近日想通过VPN连接家中的网络来访问Goolge
等服务,之前都是使用SSH隧道
来进行代理访问,这种针对网页端的访还比较方便,但是对于某个应用想走代理就没那么方便了。因此决定尝试使用家里之前就配置好的VPN
服务(用于外出给手机上网^-^)。在使用中遇到了两个问题。
连上了
VPN
后,我所有的访问请求都会通过我家的网络转发,但是公司内部有些服务还是需要访问的,怎么办呢?
在Windows10的VPN设置中有个代理的设置,设置好你不想走VPN
链接的网络地址就行
连接了VPN后,网页端居然不能google访问,但是应用却又可以代理
这种网页端不能访问,应用可以访问的,按经验肯定是DNS
有问题。于是看了dns解析
nslookup www.google.com |
果然走的还是本地连接的DNS服务器解析,但是为什么了,按道理默认的行为应该是需要走我VPN
连接中分配的DNS服务器去解析。查了一圈后,终于找到了问题所在,原来跟IPv6
有关。。。具体为什么有这么个奇葩的关联,我也没有深究了,有兴趣的可以去看看这里面的评论。所以解决方法就是将本地连接里的IPv6
协议禁止掉就行了!
禁止了IPv6
协议后,果然网页端可以访问Google
服务了。但是居然Android
虚拟机还是不行,这又是为啥呢!模拟器中的浏览器在访问Google
时提示证书错误ERR_CERT_COMMON_NAME_INVALID
,然后随手点了下证书信息,What a fuck,居然是Facebook
的证书。。。那就应该还是有DNS
污染,所以才解析到了Facebook
去了。无奈重启了下虚拟机,叮咚一切正常了,原来是虚拟机中的DNS
信息没有刷新!
查资料的时候,发现了另外一个常见的需求:连接VPN
后,我大部分的网络连接还是希望走本地网络链接,只有部分服务才需要走VPN
通道。 看了下解决方案好像是叫做split tunneling
,有需求的可以自己去搜搜看
VSCode
使用VScode调试时,打印pandas
中的dataframe
结构,输出的结构很不友好。输出中本身带有换行符,但是在调试终端中只是原原本本的显示了个\n
符号,而不会替你换行。之前有尝试过PyCharm
调试,它打印输出的dataframe
结构就是格式化后的样子,一个矩阵列表。查了下原来在调试配置中添加下面配置就行
"console": "externalTerminal" |
之后在调试终端中使用print(data_frame)
就会看到可读的输出了