M1 可以当主力开发了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iicoder
V2EX    Apple

M1 可以当主力开发了

  •  
  •   iicoder 2020-12-25 09:09:03 +08:00 13145 次点击
    这是一个创建于 1751 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这两天机器刚到,首先测试了一波 Docker,我本身是搞 PHP 的,所以拿 Laradock 测试了一番。

    运行了几个容器, Nginx 、MySQL (不支持)、mariadb 、redis 、elasticsearch 、kibana

    除了 MySQL 不支持其他都支持。 所以我们可以使用 mariadb 来进行代替。 另外 workspace nvm 一直报错,workspace 容器装不了 node 和 yarn,所以需要去掉 设置为 false WORKSPACE_INSTALL_NODE=falseWORKSPACE_INSTALL_YARN=false

    Docker

    Docker

    不知道为啥 node 就是装不上,已经设置代理、镜像 hosts 文件也改了就是不生效

    第 1 条附言    2020-12-25 15:21:54 +08:00
    首先我说下,标题我的锅,我就不应该命名此标题,对不起,打扰大家了
    另外。我想说的是 我们友好的讨论呗,感觉满满的火药味........我们都没错,都是在说自己的观点,自己的观点不代表别人
    79 条回复    2020-12-26 12:21:46 +08:00
    Damenly1
        1
    Damenly1  
       2020-12-25 09:18:05 +08:00
    但是 brew 很多包都是有问题的。。rust nightly 是可以跑了,但是 brew 上还没跟上,然后导致 virt-manager 安不上。qemu 的主线其实也可以手动编译了,brew 也没跟上。。折腾这种包依赖就很难受
    yaphets666
        2
    yaphets666  
       2020-12-25 09:18:37 +08:00   59
    不要自己骗自己了
    dinghao188
        3
    dinghao188  
       2020-12-25 09:19:54 +08:00   5
    机器刚到说这话,情有可原
    iicoder
        4
    iicoder  
    OP
       2020-12-25 09:22:35 +08:00
    @Damenly1 brew 还好 其实设置一下无差别吧
    iicoder
        5
    iicoder  
    OP
       2020-12-25 09:23:21 +08:00
    @dinghao188 我还好,docker 能用就行,我折腾的不多
    whileFalse
        6
    whileFalse  
       2020-12-25 09:23:32 +08:00
    可歇着吧……你跑的 Docker 架构都不一样……从公司的私有仓库下个镜像都跑不起来……
    iicoder
        7
    iicoder  
    OP
       2020-12-25 09:25:02 +08:00
    @whileFalse 我目前可以跑,反正我们都是 composer
    hjc4869
        8
    hjc4869  
       2020-12-25 09:28:43 +08:00 via Android   2
    用 M1 开发出来的都是 ARM docker 镜像,得找个 AWS 之类的服务商才能部署…
    joe7z
        9
    joe7z  
       2020-12-25 09:29:36 +08:00
    所以之前需要看自己的需求。有的人用了,有的人不能作工作
    iicoder
        10
    iicoder  
    OP
       2020-12-25 09:30:49 +08:00
    @joe7z 对的,生态还需要走,不过对于我来说本地开发够用了,
    ersic
        11
    ersic  
       2020-12-25 09:32:05 +08:00
    干前端的应该可以
    acorngyl
        12
    acorngyl  
       2020-12-25 09:34:17 +08:00
    不明白为什么都在本地打镜像,难道公司都没环境吗?我就是学习的时候装过一次 docker,后来连开都没开过,都是哪个环境用,ssh 上去,远程操作。
    iicoder
        13
    iicoder  
    OP
       2020-12-25 09:35:27 +08:00
    @ersic 前端我昨天测试了,VueCLI,Nuxt 都可以
    tees
        14
    tees  
       2020-12-25 09:37:25 +08:00
    用这个镜像 mysql/mysql-server
    laoertongzhi
        15
    laoertongzhi  
       2020-12-25 09:39:16 +08:00
    喜闻乐见
    iicoder
        16
    iicoder  
    OP
       2020-12-25 09:40:04 +08:00
    @tees 收到,感谢感谢
    whileFalse
        17
    whileFalse  
       2020-12-25 09:48:25 +08:00   1
    @joe7z
    > 所以之前需要看自己的需求。有的人用了,有的人不能作工作

    你说的对。LZ 搞 PHP 的弄 Docker 跑的挺开心。我是运维,我用 Docker 跟 LZ 就不一概念,我用 M1 Dockerfile 都未必能调通。
    YouLMAO
        18
    YouLMAO  
       2020-12-25 10:04:46 +08:00 via Android
    惊,你们分布式测试,不开 20 个个容器测试的,在 m1 单机模拟集群,而是单机模拟单机有啥好模拟的,装 Windows 算了
    wengych
        19
    wengych  
       2020-12-25 10:10:14 +08:00   1
    Java 开发,已经用了两周,日常 IntelliJ IDEA 双开到三开,没任何问题。
    victorzhou6
        20
    victorzhou6  
       2020-12-25 11:20:28 +08:00
    @acorngyl 确实,打 docker 是 ci 的一环,公司有专用的 build 机
    bazingarick7
        21
    bazingarick7  
       2020-12-25 11:26:44 +08:00
    哈哈我觉得好好用,开发 java 也还行。从 16 到 M1 。可太喜欢了。就是每天日常几次死机。
    MaxLi77
        22
    MaxLi77  
       2020-12-25 11:44:05 +08:00
    可能我们开发的不是同一种东西
    mankismi
        23
    mankismi  
       2020-12-25 11:53:08 +08:00
    @wengych 问下内存多少呢?有开其他软件吗?
    wengych
        24
    wengych  
       2020-12-25 11:54:50 +08:00   2
    @hsuchihche M1 8G,日常大概就下面这些

    wengych
        25
    wengych  
       2020-12-25 12:06:19 +08:00
    每个人的工作场景都不同,解释下为什么我用 M1 能够完成完整工作流

    主要工作工具:
    1. IntelliJ IDEA,Java 开发必备
    2. VS Code 阅读同事的 C++代码,查接口
    3. MacVim 日常文本编辑
    4. 沟通工具:微信+企业微信
    5. Music: Spotify
    6. 浏览器:Safari 工作用途,chrome 查阅资料,Firefox 强制代理
    7. Terminal
    8. 1Password
    9. Tunnelblick 配合 Surge 解决网络流量分流,办公流量和那啥区分开

    本地开发基本不用 MySQL,而是使用 SpringBootTest 启动一个容器,通过 org.zapodot:embedded-db-junit-liquibase 跑 in mem db 进行测试。集成测试环境有 aws RDS 。

    M1 的稳定性确实不行,上周二、周三都遇到了死机重启的情况,所以我目前遇到机器卡顿的情况就直接重启一次,死机的情况暂时没有复现了。
    Administrat0r
        26
    Administrat0r  
       2020-12-25 12:37:18 +08:00   1
    1. 主用 node,工作上用到的库都没问题,egg koa graphql pm2 这些
    2. 编译了原生的 node,有些情况下性能反而没转译的高
    3. mongodb 转译可运行,目前没发现有啥问题
    3. 浏览器 safari 和 chrome 都没问题,目前 Safari 用得多
    4. vscode 有 inside 原生支持,stable 的转译也可用,不过原生的性能要好很多
    5. vscode 目前有个 bug 是填写 git commit 的备注如果是用输入法的话,此时 git 自动刷新会使输入失去焦点,导致无法输入,这个全版本都有的问题
    6. 微信可用,但经常会崩,现在基本至少一天一次
    7. 性能叼,同一个前端项目 mbp i5+16g 编译要 100 秒以上,m1 mini 8g 只要 90 秒
    8. 不发热,比我的心还冷

    总结:香的很
    chrisia
        27
    chrisia  
       2020-12-25 13:30:33 +08:00
    不是有个 mysql-server 支持 arm 吗?
    chrisia
        28
    chrisia  
       2020-12-25 14:12:58 +08:00
    @hjc4869 可以打包成 x86 镜像的,只不过不能直接运行 x86 镜像,也就是说公司里面老的镜像可能不能运行
    jin5354
        29
    jin5354  
       2020-12-25 14:14:34 +08:00
    @Administrat0r 常态比 37° 还要低?
    timepast
        30
    timepast  
       2020-12-25 14:15:26 +08:00 via Android
    @bazingarick7 死机???
    keepeye
        31
    keepeye  
       2020-12-25 14:18:00 +08:00   1
    标题应该改成:M1 可以当我的主力开发了
    hjc4869
        32
    hjc4869  
       2020-12-25 14:19:46 +08:00
    @chrisia 跨架构打包没法随时在本地测试,docker 的意义丧失了一大半。
    Administrat0r
        33
    Administrat0r  
       2020-12-25 14:27:23 +08:00
    @jin5354 没有测温工具 反正手摸上去都是冰冷的 相反我之前的 mbp 一直都是温热煎蛋状态
    wengych
        34
    wengych  
       2020-12-25 14:35:37 +08:00
    @hjc4869 docker build 都是在 ci 服务器上跑,和本地有啥关系呢?作为一个写了超过 100+Dockerfile 、超过 2w 行 yaml 的新手,不明白你为什么有这样的疑问。
    table cellpadding="0" cellspacing="0" border="0" width="100%"> wengych
        35
    wengych  
       2020-12-25 14:36:14 +08:00
    @timepast 确实会出现死机重启的情况,手里这台 M1 甚至因为兼容性问题烧掉了我一块 10T 希捷硬盘,损失惨重。
    hjc4869
        36
    hjc4869  
       2020-12-25 14:38:13 +08:00
    @wengych 干脆 rdp 到服务器上开发,那样本地只需要一个树莓派级别的性能就够当主力了。
    chrisia
        37
    chrisia  
       2020-12-25 14:38:20 +08:00
    @wengych 问一下大佬,后端现在用 m1 开发,基本的环境和工具应该都具备了吧,我的刚到手,准备换成主力机
    chrisia
        38
    chrisia  
       2020-12-25 14:40:16 +08:00
    @wengych 还有会不会有从私有服务器 pull x86 镜像的情况,因为目前好像不支持直接运行 x86 镜像,倒是可以打包成 x86 镜像
    wengych
        39
    wengych  
       2020-12-25 14:47:25 +08:00
    @chrisia docker 本地还是有很多问题,我已经放弃在本地依赖 docker,性能太差了。
    wengych
        40
    wengych  
       2020-12-25 14:47:44 +08:00
    @hjc4869 本地工具链已经齐了不知道怎么来的 RDP 需求?
    iicoder
        41
    iicoder  
    OP
       2020-12-25 14:48:41 +08:00
    @keepeye 嗯,草率了确实应该改成这样的....
    lqf96
        42
    lqf96  
       2020-12-25 14:52:04 +08:00
    https://docs.docker.com/buildx/working-with-buildx/
    目前跨架构的 docker contrainer 需要开启 buildx 功能,因为是 qemu 的关系性能可能会下降,但应该是可以的...
    hjc4869
        43
    hjc4869  
       2020-12-25 14:54:06 +08:00
    @wengych 所以你的工作流到底是怎样的?修一点小问题,本地 Dockerfile 改了一个字都要去 CI 上 build 然后跑测试吗?
    wengych
        44
    wengych  
       2020-12-25 14:58:45 +08:00
    @hjc4869 我一个臭写 java 的为什么要本地 docker build ?一个 java 进程的问题你都要扯 docker 进来?
    wengych
        45
    wengych  
       2020-12-25 14:59:18 +08:00
    @hjc4869 mvn clean test
    that's all
    hjc4869
        46
    hjc4869  
       2020-12-25 15:00:17 +08:00
    @wengych 那你根本不需要进来回这个帖子。。整个帖子都是在讨论在本地跑 docker
    wengych
        47
    wengych  
       2020-12-25 15:01:29 +08:00
    @hjc4869 M1 可以当主力开发了
    主力开发必须要有 docker ?
    bsg1992
        48
    bsg1992  
       2020-12-25 15:27:32 +08:00
    @wengych 主力开发 为什么不能有 docker
    wengych
        49
    wengych  
       2020-12-25 15:28:10 +08:00
    @bsg1992 可以有,为什么必须有。
    bsg1992
        50
    bsg1992  
       2020-12-25 15:39:57 +08:00
    @wengych 依赖服务,数据库,缓存 ,mq 之类的东西装在 docker 方便,我私下里也有自己的项目需要维护本地环境肯定重要的,还有不是每个人搞 java php 的。
    wengych
        51
    wengych  
       2020-12-25 15:41:11 +08:00 via iPhone
    @bsg1992 是的你说的没错,每个人场景不同,对于你来说也许当不了,但不影响我已经 996 用了 10 天 m1
    wengych
        52
    wengych  
       2020-12-25 15:42:15 +08:00 via iPhone
    @bsg1992 另外我一直很不习惯把所有东西都跑本地,很重,能用 ut 搞定的就尽量在一个进程内搞定测试。
    dai875939260
        53
    dai875939260  
       2020-12-25 15:43:43 +08:00
    你们的 mac 都是开 docker 部署数据库,nginx 这些的么,docker 吃内存耗电量又大,平时我都不敢开
    bsg1992
        54
    bsg1992  
       2020-12-25 15:55:23 +08:00
    @wengych 我这里需要跑多个区块链节点测试程序 还要跑智能合约,必须要跑 docker 。这种情况本地环境优于服务器太多了
    wengych
        55
    wengych  
       2020-12-25 15:57:06 +08:00 via iPhone
    @bsg1992 所以抛开场景讨论没意义啊
    wengych
        56
    wengych  
       2020-12-25 15:57:47 +08:00 via iPhone
    @bsg1992 docker 优化还需要很久,估计至少明年春节后才能有很好的可用性
    felixcode
        57
    felixcode  
       2020-12-25 16:01:43 +08:00 via Android
    所以买之前还是得考虑好了,别人好用是因为只跑个 ide 和浏览器,docker 不好用,虚拟机支持不那么好,打定主意以后只做本地开发不运行服务再买 m1 吧,别被人误导了。
    Badlion
        58
    Badlion  
       2020-12-25 16:28:11 +08:00
    @felixcode 我同样需要运行服务,难道只能本地跑 docker,而不能跑在我的 NAS 上吗?
    vexjoe
        59
    vexjoe  
       2020-12-25 16:32:39 +08:00
    @acorngyl 不是所有人都用公司环境就够了,别人还有个人项目呢
    felixcode
        60
    felixcode  
       2020-12-25 16:35:12 +08:00
    @Badlion
    所以用 m1 要运行服务的话,就得标配一台 NAS 或者远程服务器?
    就这个样子,还配做主力开发机?还能称为主力吗?只是个远程终端吧?
    4000 多的 windows 笔记本都比不上。
    Badlion
        61
    Badlion  
       2020-12-25 16:49:15 +08:00 via iPhone
    @felixcode 我用 16 寸 64g 时都不觉得需要安装 docker,docker 大都是用来跑服务的,跑在本地合适吗?如果 macbook 盒盖了呢?而且我有多台 mac 和 windowspc 都需要共享服务呢?
    felixcode
        62
    felixcode  
       2020-12-25 16:52:36 +08:00
    @Badlion
    所以你要运行个数据库用来调试程序,或者开发个 WEB 调试在服务器上的部署的话,就得呆在家里,或者连 VPN 到你的 NAS ?
    Badlion
        63
    Badlion  
       2020-12-25 17:05:04 +08:00 via iPhone
    我 nas 有公网 ip,随时随地访问都没问题
    @felixcode
    banricho
        64
    banricho  
       2020-12-25 17:06:27 +08:00
    @ersic 也并不全是。。。小程序开发者工具警告(这也算前端吧)
    hugebox
        65
    hugebox  
       2020-12-25 17:23:10 +08:00
    可以看看 java 开发评测,基本没什么大问题。当然前提是你公司用 jenkins 推包到服务器,否则本地 ARM 打的包不知道服务器运行会不会有问题。
    wengych
        66
    wengych  
       2020-12-25 17:34:17 +08:00
    @hugebox 理论上不应该有问题,java 不就是 write once,debug anywhere 么。。。。
    ShadowPower
        67
    ShadowPower  
       2020-12-25 17:34:26 +08:00
    @bsg1992 两年前我做过这个,用的 HyperLedger,那玩意的 chaincode (类似于智能合约)跟 Docker 是绑死的……
    在本地调试调试智能合约,还真的比用服务器跑着调要来得方便
    那会不用 M1,直接用 Linux 当开发环境,就已经有很多坑了,要是用这个,还不知道会有多少坑
    hiw2016
        68
    hiw2016  
       2020-12-25 18:54:59 +08:00 via iPhone
    @wengych 你好,请问 gitlab 图标是什么 app 呀
    wengych
        69
    wengych  
       2020-12-25 18:56:31 +08:00 via iPhone   1
    @hiw2016 就是 gitlab,公司的 gitlab 打包成了一个 app 而已
    wengych
        70
    wengych  
       2020-12-25 19:06:45 +08:00   1
    @hiw2016 https://webcatalog.app/ 用这个 app 将 web 站点生成为桌面 app,也有命令行的工具 nativefier https://github.com/jiahaog/nativefier,一个作者
    holulu
        71
    holulu  
       2020-12-25 19:08:52 +08:00
    今年开始已经不在本地机跑容器了,都是直接用公司的 k8s 开发集群作为开发环境。换了 M1 的 MBA,最主要感受就是没噪音,不烫手。
    felixcode
        72
    felixcode  
       2020-12-25 19:28:44 +08:00 via Android
    @Badlion
    把服务都暴露在公网,还是做好安全吧,别 nas 被黑了,数据无价
    Badlion
        73
    Badlion  
       2020-12-25 19:32:40 +08:00 via iPhone
    @felixcode 我没说是暴露所有服务,只是 ssh 管道而已。配置了免密+otp
    xuanbg
        74
    xuanbg  
       2020-12-25 19:38:29 +08:00
    docker 架构不同问题倒也不是很大,大家生产环境用的镜像也不会用你的 mbp 上面 build 的镜像。

    我们嫌弃上传镜像太慢,就直接传打好的包和 dockerfile 到目标环境再 build 镜像并运行,根本不用镜像仓库的。
    googls
        75
    googls  
       2020-12-25 20:45:38 +08:00
    公司的 8 核 8gVPS 够用
    mac 目前就跑 datagrip+代码编辑器+postman
    BoiledEgg
        76
    BoiledEgg  
       2020-12-25 22:46:07 +08:00
    搞开发还是有不少坑的,别说后端了,前端搞搞 js 的都有坑,比如如果项目用到了 sentry,会发现 sentry cli 需要自己编译一个 arm 的,不然 sentry-webpack-plugin 跑不起来。
    eggcn
        77
    eggcn  
       2020-12-26 04:31:23 +08:00
    好了,说了这么多那么问题来了~不要笑我,你们说的 M1 是啥?(黑人问号脸)
    MaverickLee
        78
    MaverickLee  
       2020-12-26 10:37:09 +08:00
    @eggcn M1 艾布拉姆斯(doge)
    7gugu
        79
    7gugu  
       2020-12-26 12:21:46 +08:00 via iPhone
    有点心动了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2644 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 13:45 PVG 21:45 LAX 06:45 JFK 09:45
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86