免责声明:本文采用了一定程度的夸张夸张。作者没有声称要代表迪伦·托马斯(Dylan Thomas)发言,也没有主张对不愿使用的用户强加主题。
迪伦·托马斯(Dylan Thomas)著名地敦促:“不要在那个晚安中温柔。”在提到死亡的同时,这种情绪可能同样适用于Linux容器的复杂性。尽管托马斯(Thomas)于1953年通过,但互联网代表他(以适当的警告)表示了自信的声明。
这种信心源于高估和最近将Docker容器作为开发环境配置的斗争的融合。随之而来的挫败感反映了与无法克服的赔率的斗争。
但是,苦难是一位有力的老师。这种经验为使用Docker容器进行开发提供了(相对)温和的介绍。首先,让我们解决“为什么”。
为什么要使用Docker容器进行开发?
想象一个项目不仅包括代码,还包括整个开发环境,依赖性和运行时间。该项目(便携式和独立)可以与任何地方,任何地方共享,无需特定环境配置即可完美地运行。
这是Docker容器的本质。 DockerFile在一个文件中定义了整个运行时环境,仅需要一种在容器中开发的方法。
VS代码遥控器 - 容器:功能强大的组合
VS代码的“远程 - 容器”扩展程序允许将项目加载到Docker容器中,并通过VS代码访问它们。这种无缝集成简化了过程。
将容器添加到项目
考虑安装WSL2和Docker的新鲜Windows机器。尝试在没有其他安装的情况下运行node.js项目将导致错误。让我们配置项目以在预配置的容器中运行,而不是手动node.js安装。
VS代码简化了这一点。 “添加开发容器配置文件...”命令分析项目并建议适当的容器定义。选择一个node.js版本(例如,node.js 14)添加了一个.devcontainer
文件夹,其中包含dockerfile(定义node.js image)和devcontainer.json
文件(用于项目级配置)。
选择“重建和重新打开在容器中”,重新启动与代码,构建容器并在其中打开项目。左下角确认了与容器的VS代码连接。终端现在在Linux容器内运行,启用npm install
和npm start
。
端口映射是从浏览器访问应用程序(通常在端口3000上运行的)所需的。远程容器扩展程序的“远程资源管理器”(带有“端口转发”部分)允许指定端口映射(在这种情况下为3000)。
自定义是通过devcontainer.json
文件实现的。通过添加forwardPorts
和postCreateCommand
属性可以自动化端口转发和npm install
:
{ // ... “前向港口”:[3000], “ PostCreateCommand”:“ NPM安装”, // ... }
还可以包括VS代码扩展名,避免在容器中进行手动安装。添加诸如Prettier和Eslint之类的扩展可以增强开发体验。
{ // ... “扩展”:[ “ dbaeumer.vscode-eslint”, “ esbenp.prettier-vscode”, “ github.github-vscode-theme” 这是给出的 // ... }
可以自定义DockerFile以添加基本图像中未包含的软件。例如,添加cowsay
:
来自mcr.microsoft.com/vscode/devcontainers/javascript-node:0-14 运行apt-get update && apt-get -y安装cowsay env path =“/usr/games:$ {path}”
请记住: apt-get update
刷新包列表; -y
避免确认提示; &&
连锁命令; \
允许命令中的线断裂;并将相关命令分组最小化层。
重建后,潜在问题(例如, cowsay
路径)可能需要调整Dockerfile内的PATH
环境变量。
高级配置:自定义终端
要自定义终端环境,请修改devcontainer.json
文件。将默认外壳设置为/bin/zsh
和调整VS代码设置很简单:
{ // ... “设置”: { “ terminal.integrated.shell.linux”:“/bin/zsh”, “ Workbench.Sidebar.Location”:“正确” },, // ... }
将自定义的.zshrc
文件(根据需要调整路径)将终端设置完成。通过Dockerfile中的git clone
下载插件进一步完善了环境。
总而言之,项目配置位于devcontainer.json
中,而环境配置发生在Dockerfile内。请咨询官方的远程容器文档以获取更高级的技术。
以上是温和的介绍,将Docker容器用作开发环境的详细内容。更多信息请关注PHP中文网其他相关文章!

Wufoo一直在集成方面非常出色。他们与特定应用程序(例如广告系列显示器,MailChimp和Typekit)进行集成,但他们也


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

记事本++7.3.1
好用且免费的代码编辑器

Atom编辑器mac版下载
最流行的的开源编辑器