问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Flutter搭建私有Pub仓库Docker部署

发布网友 发布时间:2024-09-29 23:29

我来回答

1个回答

热心网友 时间:2024-10-25 17:23

前言

在Flutter开发中,考虑到我们不同业务组件下依赖不同版本的基础组件,如果采用分支依赖管理特别不方便,因此搭建私有pub包服务很有搭建必要。在技术调研后发现pub官方开源的的pubserver已有两年多没有更新,且现在已调整为只读。因此使用基于字节开源的unpub开源搭建私有仓库平台。

unpub私有平台搭建安装MongoDB官方安装方式?传送门

选择On-premisesMongoDBlocally下载?

在.zshrc?添加环境变量

#写入环境变量exportPATH=/Users/zhengzeqin/flutter/bin:$PATH#写入环境变量exportPATH="/usr/local/opt/mongodb-community@4.4/bin:$PATHhomebrew安装brewtapmongodb/brew#4.4版本号brewinstallmongodb-community@4.4#启动服务brewservicesstartmongodb-community@4.4#查看已启动服务brewserviceslistDocker安装传送门unpub?传送门在.zshrc?添加环境变量exportPATH="$PATH":"$HOME/flutter/.pub-cache/bin"安装unpubflutterpubglobalactivateunpub去掉unpub的google验证

查找app.dart,修改使用_getUploaderEmail的地方

第一处

第二处

第三处

Flutter启动命令flutterpubglobalrun'unpub:unpub'--database'mongodb://localhost:27017/dart_pub'#失效flutterpubglobaldeactivateunpubDart启动命令dartpubglobalactivateunpubdartpub--tracepubglobalrun'unpub:unpub'--database'mongodb://localhost:27017/dart_pub'#失效dartpubglobaldeactivateunpubGet点

项目中存在两个.pub-cache注意别修改错地方

/Users/zhengzeqin/Flutter/.pub-cache

/Users/zhengzeqin/.pub-cache

项目.pub-cache下的pub.flutter-io.cn和pub.dartlang.org文件夹,插件源码安装与执行上述flutterpubglobalactivate和dartpubglobalactivate有关系

修复flutter缓存插件包问题

flutterchannelstableflutterupgradeflutterpubcacherepair//Toperformacleanreinstallofthepackagesinyoursystemcache,usepubcacherepairmogodb启动后执行下面命令启动flutterpubglobalrun'unpub:unpub'--database'mongodb://localhost:27017/dart_pub'成功启动私有平台开机启动shell脚本问题

开机自动启动shell脚本

Mac上如何开机与关机时自动运行Shell脚本

通过shell脚本自启动服务

通过脚本校验服务是否连接成功

#!/bin/bashfunctionnetwork(){#超时时间localtimeout=120#目标网站localtarget=http://0.0.0.0:4000/echo"check${target}"#获取响应状态码localret_code=`curl-I-s--connect-timeout${timeout}${target}-w%{http_code}|tail-n1`if["x$ret_code"=="x200"];then#网络畅通return1else#网络不畅通return0fireturn0}while[[true]];doecho'connecting...'ifnetwork==0thenecho"unpubservicestartfail..."flutterpubglobalrun'unpub:unpub'--database'mongodb://localhost:27017/dart_pub'elseecho"unpubservicestartsuccess..."exit0fisleep15done安装遇到的问题'String?'isnullableand'Object'isn't.

修改源码

mongodb启动失败

centosmongodb启动失败

系统重启后Mongo服务启动失败

端口被占用问题#排查占用端口sudolsof-iTCP-sTCP:LISTEN-n-P#删掉端口sudokill449鉴权问题

重新安装mongoDB,去掉管理员的账户密码即可

发布私有package到unpub平台跳过谷歌验证

下载项目:https://github.com/ameryzhu/pub

brewtapmongodb/brew#4.4版本号brewinstallmongodb-community@4.4#启动服务brewservicesstartmongodb-community@4.4#查看已启动服务brewserviceslist0

生成pub.dart.snapshot文件

复制之后放入flutter/bin/cache/dart-sdk/bin/snapshots/目录下

如果是flutter直接安装则放入flutter/bin/cache目录下

发布Pub私有包

?注意http://192.168.x.xx:4000/是自己的pub私有包服务ip地址,否则会上传失败

创建devpackage包brewtapmongodb/brew#4.4版本号brewinstallmongodb-community@4.4#启动服务brewservicesstartmongodb-community@4.4#查看已启动服务brewserviceslist1GitLab私有仓库配置yaml文件信息brewtapmongodb/brew#4.4版本号brewinstallmongodb-community@4.4#启动服务brewservicesstartmongodb-community@4.4#查看已启动服务brewserviceslist2检测命令brewtapmongodb/brew#4.4版本号brewinstallmongodb-community@4.4#启动服务brewservicesstartmongodb-community@4.4#查看已启动服务brewserviceslist3发布包到私有包管理平台brewtapmongodb/brew#4.4版本号brewinstallmongodb-community@4.4#启动服务brewservicesstartmongodb-community@4.4#查看已启动服务brewserviceslist4发布成功更新yaml信息执行pubgetbrewtapmongodb/brew#4.4版本号brewinstallmongodb-community@4.4#启动服务brewservicesstartmongodb-community@4.4#查看已启动服务brewserviceslist5通过Docker方便大家部署

为了方便大家移植部署,这边将unpub打包成docker镜像环境

安装镜像

首先拉取GitHub地址?代码,安装docker环境,?然后执行下面命令即可

brewtapmongodb/brew#4.4版本号brewinstallmongodb-community@4.4#启动服务brewservicesstartmongodb-community@4.4#查看已启动服务brewserviceslist6安装运行成功如下

安装成功

通过dockerps-a命令查看运行中容器

参考私有库搭建

使用unpub搭建私有pub服务器

Flutter发布package到公有或私有pub

私有仓库web平台

FlutterPub私有仓库搭建及使用

Flutter发布Package(Pub.dev或私有Pub仓库)

Dart私有仓库-私服搭建

Dart依赖和搭建Flutter-or-Dart简易私人仓库

https://medium.com/dartlang/hosting-a-private-dart-package-repository-774c3c51dff9

https://dart.dev/tools/pub/custom-package-repositories

遇到问题

brewupdate更新时shallowclone

使用brewservices管理服务

MongoDB常见问题-解决brewserviceslist查看MongoDB服务status显示error的问题

'String?'isnullableand'Object'isn't.

NoactivepackagedartdocFlutter

Nullcheckoperatorusedonanullvalue

Docker

Docker-开机自启&&容器自启动

Docker-从入门到实践

原文:https://juejin.cn/post/7098240093558669343

原文:https://juejin.cn/post/7098240093558669343
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
黄家驹是谁.拜托了各位 谢谢 最近这几天去 蓝调薰衣草庄园 还能赶上薰衣草盛开么 有没有去过的给点... 日本留学大学假期怎么放的 塑料水管怕水泥吗 孕妇腹壁脂肪厚怎么减 孕期肚子赘肉怎么减下去? 孕妇肚子怎么减肥啊 怀孕怎么减肚子上的肉 考研的难度相当于高考吗? 宏基5536笔记本15.6寸屏幕分辨率最高可以设到多少,我用HDMI线连液晶电视... 怎么在word中将回车替换成换行符号? (12)笔记:使用阿里云私有仓库存储自己的docker镜像 怎么把word里的回车符号替换成空格符号 上传自己的镜像到Docker私有仓库 和父母吵架了该怎么缓解气氛? 为什么别人会在背后说我坏话呢?? 并口大硬盘盒两个接口分别叫什么名字,如图。 喜马拉雅fm怎么测声音年龄? 梦见鸟叫是什么意思? ...一下我刚买的华为畅享9 4G+64G 型号是DUB-TLOO 是移动定制版吗... 中行属于什么银行类别 中行网点是什么 有八颗硬币,只有一枚是金的,拿天平称,只能称两次,哪能一枚是金的? ...是最轻的,其他八个一样重,一个天平称,只能称两次!如何找出其中那个最... ...一个是质量不足的次品球,你只能用天平称两次,你能找出次品球吗? 只 ... 一汽大众蒙古语怎么说 我儿子是2001年2月30日岀生爸爸姓李儿子名字要三点水旁的该叫什么好呢... ...三月初三凌晨四点多出生的女儿起个带三点水的名字 ...3时出生爸爸姓李,家人想取个带三点水的男孩名字,谢谢各位多多给意见... 室内刷墙用乳胶漆还是涂料好?儿童房用帕瑞BABY涂料可以吗? 电脑中病毒可总是杀不掉怎么办? ...提示我无法删除,请问是怎么回事,怎么才可以查杀这个木马? 2021情侣个性签名 古有范进中举,今有刘能当上副主任,完全乐傻了 我手机卡丢了 不是用自己身份证办,怎么才能补卡呢?是我爸爸 我... 道藏内容 我手机卡丢了 不是用自己身份证办,怎么才能补卡呢?是我爸爸 ...手机卡丢失 手机卡是在家的时候用我爸的身份证办的 请问我可以补办... 道藏是指什么? wps文字自动另起一页怎么设置? wps文字中,如何处理页面未满自动换页? 如何让WPS文字一打就自动跨到下一页? 房颤做什么手术 治疗房颤的手术有什么 房颤一定要做手术吗 房颤患者是否可以做其他手术 财气的名字 个人能构成合同诈骗罪么 为什么笔记本蓝牙发送文件到手机失败? 合同诈骗立案金额是多少?