之前看过方英航的工作流视频,讲了他是如何配置开发环境的。老实说,这个视频让我有点震惊。原来不用虚拟机也可以在Linux上开发,只是它的配置太复杂了。我想配置一套自己的开发环境。视频中的remote-container已经更名为dev-container,但是0.245.2以上的dev-container版本有问题,会报“Anerroroccurredsetupthecontainer-RemoteDocker”。在Issues中,有人给出了降级到0.245时降级到0.245.2的方法。2.可以愉快的使用dev-container了。现在我们已经成功安装了dev-container插件。现在我们要做的就是通过dockerfile生成一个linux容器,并在这个容器中开发一个小测试。FROMcentos:8RUNuname-aRUNcat/etc/os-release我们基于centos:8构建镜像,其中,打印系统名称查看系统点击添加终端进入容器。这个容器就是我们基于vscode的dev-container插件。如果只是裸机,那是绝对不可能的。我们需要安装一些开发环境和应用程序来提高我们的开发效率和更新所有的包。在更新包之前,我们首先要修改centos的镜像源RUNcd/etc/yum.repos.d/RUNsed-i's/mirrorlist/#mirrorlist/g'/etc/yum.repos.d/CentOS-*RUNsed-i's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g'/etc/yum.repos.d/CentOS-*修改成国内镜像,然后更新包RUNyumupdate-y下载vim先下载vimRUNyuminstallvim-yHowtoconfigure,怎么配置vim,由于我还是新手阶段,正常做就行手术。我不需要配置任何东西来下载oh-my-zsh。如果贸然使用其官网的下载链接,会报错RUNsh-c"$(curl-fsSLhttps://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"#curl:(7)Failedtoconnecttoraw.githubusercontent.comport443:Connectionrefused意思是Github的raw.githubusercontent.com域名解析被污染了,无法访问的解决方法有很多,比如作为修改hosts解决这个问题,首先在ipaddress中查询raw.githubusercontent.com的真实IP,修改hostsvim/etc/hosts添加199.232.68.133raw.githubusercontent.comre-downloadzshsh-c"$(curl-fsSLhttps://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)》这种方法只能在linux下使用,如果要修改dockerfile中的/etc/hosts是不行的,因为/etc/hosts这个文件只有我看了,作者在这里花了很多时间试图解决,但是我还是没有找到解决办法,还有一种方法就是修改下载源,换成国内地址.sh-c"$(curl-fsSLhttps://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh)"修改默认命令行为on-my-zshRUNchsh-s/bin/zsh但是这个方法需要两个前提,一是下载gitRUNyuminstallgit-y二是因为centos8系统没有chsh命令工具,所以会提示chsh:commandnotfound,因为系统没有有自己的util-linux-user工具包,所以在执行chsh命令之前,先安装它RUNyuminstallutil-linux-user-y这样我们就用vim和on-my-配置了一个基于centos的linux环境zsh。完整的dockerfile如下:FROMcentos:8RUNuname-aRUNcat/etc/os-release#修改镜像源RUNcd/etc/yum.repos.d/RUNsed-i's/mirrorlist/#mirrorlist/g'/etc/yum.repos.d/CentOS-*RUNsed-i's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g'/etc/yum.repos.d/CentOS-*#更新系统RUNyumupdate-y#vimRUNyuminstallvim-y#chshRUNyuminstallutil-linux-user-y#gitRUNyuminstallgit-y#oh-my-zshRUNyuminstallzsh-yRUNsh-c"$(curl-fsSLhttps://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh)"RUNchsh-s/bin/zsh这些还不够,还要下载前端环境,比如node,pnpm,还有后端环境。最近对ruby也很感兴趣。这里也会安装ruby环境的前端环境。我们使用nvm来控制节点版本。有多种安装nvm的方法。比如方英航下载源码,然后复制到容器中。如果没有网络限制,也可以用curl下载等,我用gitinstallENVNVM_DIR/root/.nvmRUNgitclonehttps://github.com/nvm-sh/nvm.git/root/.nvm/#运行gitcheckoutv0.39.3RUNsh${NVM_DIR}/nvm.sh&&\echo''>>/root/.zshrc&&\echo'exportNVM_DIR="$HOME/.nvm"'>>/root/.zshrc&&\echo'[-s"${NVM_DIR}/nvm.sh"]&&{来源e"${NVM_DIR}/nvm.sh"}'>>/root/.zshrc&&\echo'[-s"${NVM_DIR}/bash_completion"]&&{source"${NVM_DIR}/bash_completion"}'>>/root/.zshrc然后通过nvmnvminstallstable下载最新版本的nodeRUN,但是这样会报错,说nvm:commandnotfound,为什么会这样,没有深入了解,另找解决方案我选择了先安装一个默认版本的node和npm,根据这里的包管理,安装RUNdnfmoduleinstallnodejs:16。默认情况下,dnfmoduleinstallnodejs会安装v10版本,太低了,最高是16。选择新与否,然后下载pnpm并将其设置为包管理器RUNcurl-fsSLhttps://get.pnpm.io/install.sh|sh-这样前端开发环境和node环境都包含在这个dockerfile中了。我要找的ruby环境就是这个教程,日本人做的,内容很全,按照步骤操作,环境可以很好运行RUNdnfmoduleinstallruby??:3.0-yRUNgemsources--addhttps://gems.ruby-china.com/--删除https://rubygems.org/RUNcurlhttps://dl.yarnpkg.com/rpm/yarn.repo>/etc/yum.repos.d/yarn.repoRUNdnf-y安装ruby??-develrpm-buildmakegccgcc-c++gcc-gdb-pluginlibxml2libxml2-develmariadb-develzlib-devellibxslt-develRUNgeminstallnokogiri----use-system-librariesRUNgeminstallrails--version="~>7.0"这样我们的开发环境就初步搭建好了。我会把它发布在dockerhub上。如果有必要,我们可以借此对本文进行修改和总结。花了我不少时间,主要是涉猎了很多linux的知识点,之前也没有在虚拟机上配置linux的经验,还好完成了,这样就可以用vscode+linux来开发中开发应用,剩下的就是熟悉它的参考资料山竹记账:开发环境要挂哦我的Dockeroh-my-zsh,最好用的shell,没有一个Dockerfile可以修改容器hosts文件的内容启动ssh-Windows10上的代理失败:“无法启动ssh-agent服务,错误:1058”VS代码:远程容器:使用SSH
