V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
iicoder
V2EX  ›  Apple

M1 可以当主力开发了

  •  
  •   iicoder · Dec 25, 2020 · 13819 views
    This topic created in 1957 days ago, the information mentioned may be changed or developed.

    这两天机器刚到,首先测试了一波 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 文件也改了就是不生效

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

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

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

    我们嫌弃上传镜像太慢,就直接传打好的包和 dockerfile 到目标环境再 build 镜像并运行,根本不用镜像仓库的。
    googls
        75
    googls  
       Dec 25, 2020
    公司的 8 核 8gVPS 够用🐶
    mac 目前就跑 datagrip+代码编辑器+postman
    BoiledEgg
        76
    BoiledEgg  
       Dec 25, 2020
    搞开发还是有不少坑的,别说后端了,前端搞搞 js 的都有坑,比如如果项目用到了 sentry,会发现 sentry cli 需要自己编译一个 arm 的,不然 sentry-webpack-plugin 跑不起来。
    eggcn
        77
    eggcn  
       Dec 26, 2020
    好了,说了这么多那么问题来了~不要笑我,你们说的 M1 是啥?(黑人问号脸)
    MaverickLee
        78
    MaverickLee  
       Dec 26, 2020
    @eggcn M1 艾布拉姆斯(doge)
    7gugu
        79
    7gugu  
       Dec 26, 2020 via iPhone
    有点心动了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1338 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 103ms · UTC 16:39 · PVG 00:39 · LAX 09:39 · JFK 12:39
    ♥ Do have faith in what you're doing.