温和的介绍,将Docker容器用作开发环境
免责声明:本文采用了一定程度的夸张夸张。作者没有声称要代表迪伦·托马斯(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中文网其他相关文章!

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

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

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

您是否曾经在项目上需要一个倒计时计时器?对于这样的东西,可以自然访问插件,但实际上更多

我关注的一件事是Lea Verou' s conic-Gradient()Polyfill的功能列表是最后一项:
