手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表查看gouki的文章

mac下使用podman的代理大坑

关于这podman啊,一天天的,都在说要替换docker,然后也是大家各种说怎么弄怎么弄,教你安装podman之后,alias docker="podman" ,然后pip3 install podman-compose,再alias一条 alias docker-compose="podman-compose",说的这样好象就差不多了

 
确实,正常情况下,或者在linux\wsl的情况下,应该是差不多的,虽然部分命令不一样,但看一看参数,基本上也就过了。。。
mac下确实有一个大坑。因为mac其实是不支持container这玩意的。所以不管是docker也好,谁也好,都得装虚拟机。。。
早期podman的教程大多是让你安装一个ubuntu出的multipass,然后再各种连接,用podman连接远程(就是multipass出来的ubuntu虚拟机中安装一个podman)。。。手续也烦,教程也复杂。所以官方升级后出了一个简化版本:podman machine init/podman machine start。然后就可以各种操作了,确实方便很多。
 
然而问题也正是发生在这里。
> 且看我一步步操作
* brew update && brew install podman 
    * 正常更新,但由于有部分文件在raw.githubusercontent.com上,遇到这个,代表你只能用代理 了。于是ctrl+c
* export http_proxy=127.0.0.1:1087;export https_proxy=127.0.0.1:1087;export all_proxy=127.0.0.1:1080
* 再次执行:brew update&& brew install podman
    *顺利执行完
* podman machine init && podman machine start
    * 没问题,但这里要吐槽一下,安装的是fedora。。。好吧,我忍了。我纠结的是,为什么不能选择宿主操作系统?
* podman pull mysql
    * 问题就出来这里,拉包的时候,报错
```
podman create --name=pl-and-si-mysql-db --label io.podman.compose.config-hash=123 --label io.podman.compose.project=pipeline_combined_db --label io.podman.compose.version=0.0.1 --label com.docker.compose.project=pipeline_combined_db --label com.docker.compose.project.working_dir=/Users/gouki/Desktop/SC-REDBACK-main/database/pipeline_combined_db --label com.docker.compose.project.config_files=docker-compose.yaml --label com.docker.compose.container-number=1 --label com.docker.compose.service=pl-and-si-db -e MYSQL_DATABASE=database -e MYSQL_ROOT_PASSWORD=password -v pipeline_combined_db_pl_and_si_database_folder:/var/lib/mysql -v /Users/gouki/Desktop/SC-REDBACK-main/database/pipeline_combined_db/allInOne.sql:/docker-entrypoint-initdb.d/1.sql --net pipeline_combined_db_default --network-alias pl-and-si-db -p 3306:3306 --restart always --cpus 0.4 -m 350m mysql:latest
Resolving "mysql" using unqualified-search registries (/etc/containers/registries.conf.d/999-podman-machine.conf)
Trying to pull docker.io/library/mysql:latest...
Error: initializing source docker://mysql:latest: pinging container registry registry-1.docker.io: Get "https://registry-1.docker.io/v2/": proxyconnect tcp: dial tcp 127.0.0.1:1087: connect: connection refused
```
 
咦,他走了代理 ,但被拒绝?不可能啊,我前面下载软件的时候不是还好好的么,难道是代理错误?于是我新开一个shell窗口,再次执行,仍然是同样的错误,这回就发现问题了,因为新的shell窗口我env|grep -i proxy的时候,返回为空,当前进程没有任何一个proxy参数
 
找了一堆podman的配置,打印了podman info也没有找到有代理 设置的地方,最后只能问google。搜索了半天,只搜到一个有效贴,还是在官方的[issue](failed to pull image when use system proxy · Issue #14087 · containers/podman (github.com))里
 
有人这样回复:
```

The proxy is set correctly: proxyconnect tcp: dial tcp 127.0.0.1:7890: connect: connection refused

The problem is that your proxy is listening on 127.0.0.1. Obviously 127.0.0.1 inside the VM is a different address and therefore it cannot connect to the proxy on you actual host.

If you set http_proxy=socks5://host.containers.internal:7890 before you run podman machine init it should work.
Maybe podman should just s/127.0.0.1/host.containers.internal and s/localhost/host.containers.internal automatically when it copies the proxy value from the host.

```
 
感情是你只要machine init的之前用了代理 ,init完后。针对vm的参数就变了。于是下面就有人说,你可以这样:
 
```

I just test it and I think you are right, but I don't know why http_proxy=socks5://host.containers.internal:7890 podman machine init this command still hit the same error but it works as expected when I add 127.0.0.1 host.containers.internal to my host file

however it works now

add item blow to host file

127.0.0.1 host.containers.internal

and change proxy to

http_proxy=socks5://host.containers.internal:7890

then everything works fine

much thanks @Luap99 for your help and I close this issues for the problem is solved, but I still stay concerned if some day podman can do this itself and no need to change proxy setting

```

 

呵呵,这么麻烦?我还是新建一个shell窗口:podman machine stop && podman machine init && podman machine start吧。

然后,podman pull mysql,一切正常~

 

至此搞定。

 

> 假装内容支持markdown,因为新模板在寻找中,现在的html所见所得,估计会全部改成markdown,先尝试一下。

 
 

千辛万苦搭建了一台gitea server

一直使用github,也有因为各种原因使用过不少的git server,比如:codeup/gitee/coding/甚至腾讯工蜂,国外的么,bitbucket/gitlab其实也都有使用,这里面带来的最大的问题就是网络问题,当然国内的没这个毛病,但比如gitee,不能超过3个协作者(个人账户),coding的话,我个人是很喜欢的,甚至想成为他们的商业用户,但商业用户需要至少5个使用者。(国内好象其他平台也差不多,要想成为商业用户,几乎最少人数都是5人,一年500多我愿意付出,但2500多确实没有太大必要)

 
github/gitlab 当然没什么问题,但偶尔的不能访问也确实有点麻烦,这些都不是重要的。github也尝试过通过Action来进行自动部署,但确实不舒服,连接国内进行部署的时候,一个40多M的jar包。有一次传输上就花了将近10分钟,这种在国外向国内进行传输速度,有时候还是挺抽风的。
 
于是搭建git server的相法就开始了。之前其实也搭过,从16年开始,基本上就是用gogs,当然也不是没遇过问题,比如超过50M时就无法上传之类的。这时候就要改nginx最大允许的post max size了。这次是看到说gitea推出了【包管理(Package Registry)】,然后才决定使用的。
 
然而在使用的时候,就开始遇到各种问题了。比如不能运行在root下,腾讯的轻量默认是root用户嗯,cvm/阿里云的ecs,也是root,但阿里云的轻量,默认居然是admin。有点妖
然后创建git用户,测试su git -c '/usr/local/bin/gitea web'进行测试。到这里都没啥问题,然后我就开始遇到问题
1、用nginx做反向代理 ,毕竟我也不可能一直用ip+port进行访问,然而css/js全部无法访问,检查了很久,才发现原来是默认的配置文件里对css/js等静态文件做了过期时间设置,但因为最早3000端口被 zerotier的UI占用了。这时候他就一直不过期了。所以一直就无法访问(在缓存里?)这个有点麻烦,现在很多路径都是/assets/css/css.css,这种自动生成的格式,所以大部分自动打包的可能路径都是这种,这时候一旦被缓存了,短时间内就一直无法变改。这很纠结
2、ssh 登录,这个才是大坑。其实也是怪我自己,如果我允许port登录,估计早就解决了。比如我可以让root用户通过自定义端口登录,然后git用户就可以通过22端口登录了。(测试过可行,但不太想改默认登录端口,想复用端口,结果就启动不了了,好象非root用户进行的项目,无法使用1024以下端口)
3、最后只能使用docker来进行部署,然后因为我偷懒没使用docker,用了podman。。。默认安装的podman是3.0.4,使用podman-compose的时候有问题。于是又升级到4.2,然后才能正常使用podman-compose。对着官方文档配置 gitea脚本以及 默认的转发(再折腾了1个小时才搞完)
 
先做个笔记,后面看什么时候有空补上详细的,以后重装也能更方便一点

flutter_launcher_icons的小坑

 先说一下,flutter_launcher_icons真是一个好插件,至少你不需要再额外为自己的APP准备图片,也不用单独下载什么app来生成图片,直接运行flutter pub run flutter_launcher_icons:main 即可

 
准备一张合适的PNG,该有的alpha通道,透明等都必须得有,否则生成出来的图片会有问题。
踩坑的问题是在android下,如果你配置文件中flutter_icon > android 的文件名,不是ic_launcher,OK,没问题,照样可以生成,打包后,图标也变成了你想要的icon,但,这时候会有另一个问题。
你会发现你的状态栏上,居然是默认的flutter的图片。为了解决这个问题,还是将 flutter_icon > android对应的值改为ic_launcher,然后 到 android > app > src > main > res目录下,把目录中非ic_launcher对应的图片删除。
然后flutter clean && flutter pub get && flutter run ,这时候你会发现,图标恢复正常了。
但是,在debug模式下(也就是开发模式,随便你怎么设置,在任务栏上的ICON,都是flutter自带的。估计我还是有 什么姿势不对?)
 
---
1、经过测试,不需要为android单独设置名字,直接android: true,就行了。
2、状态栏图标没有变的原因,还有一个可能确实是cache的问题,经过我重启,成正常ICON了
 
---
所以,上面的坑可能只是设置的问题,如果你也遇到了,可以尝试卸载APP,清理垃圾(会提示你删除应用缓存)、重启系统。也许问题就这样解决了。

利用qshell自动上传APK到七牛存储

 在开发安卓的时候,因为还没有用什么第三方的工具,比如自动构建和自动上传,所以就想点办法了。比如我flutter run apk的时候,会构建android的文件,然后我打开七牛,上传到指定目录下。再到接口文档里改一下。。。一个自动更新就这样完成了。

 
听起来也不复杂,但对于我在没有使用第三方工具时,有没有再方便一点的办法呢?去七牛文案放了一下,有qshell的命令行,压缩包8M,解压后18M,看了一下命令行参数,发现用起来也方便
1、qshell account ak secret [name],可以将某个对应的账户先存下来
2、qshell buckets ,显示当前所有的bucket。。。开始我以为是listbuckets,结果这个是显示所有文件
3、qshell rput [bucket] [distname] [localname] --worker=10 ,有没有worker都无所谓,看了一下,没有明显的提升,而且就一个文件。。。本来是用qupload2的。结果默认没有进度,一直显示是二进制内容被读的情况,感觉无法适应。还是换成rput了。。
 
现在就方便了。。。flutter run apk && qshell  rput [bucket] [distnam] build/...../release.apk ,直接上传。当然文件名要替换的,否则上传的时候rput 用--overwrite参数进行覆盖。
 
然后利用curl,将最后一条的git log 更新内容。以及版本号通知server,server存储下来,然后接口读出来就可以返回给APP用了。也算一个偷懒的办法了。

昨天看某短视频说月入12000,15年应该要攒下10万

 如题,虽然看得出这种是段子,月入1.2万,15年攒10万肯定是没问题,但是女主来一说就很恐怖了,比如:

房贷

3000

伙食

2500

240

120

煤气

200

物业

150

车位费

260

220

600

衣服

200

200

加油

500

车险

360

理发

20

外出吃饭

300

零钱

200

人情

500

小孩伙食费

400

保险

100

文具

100

蓝球、散打

800

小孩零用

100

小孩衣服

200

牛奶水果

300

家庭生活费

100

说是一个月只剩300多了。
看了下上面的内容,其实就是感觉挺有意思的。为了拍视频也为了吸眼球,什么类别都在往上凑了。所谓的再苦不能苦孩子,再穷不能穷教育。呵呵