惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Application and Cybersecurity Blog
Application and Cybersecurity Blog
B
Blog RSS Feed
M
MIT News - Artificial intelligence
爱范儿
爱范儿
V
V2EX
雷峰网
雷峰网
D
Docker
美团技术团队
N
Netflix TechBlog - Medium
C
Cisco Blogs
T
Threatpost
K
Kaspersky official blog
P
Privacy International News Feed
W
WeLiveSecurity
T
Tor Project blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
博客园 - 聂微东
F
Full Disclosure
Forbes - Security
Forbes - Security
V
Vulnerabilities – Threatpost
I
Intezer
有赞技术团队
有赞技术团队
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Google Online Security Blog
Google Online Security Blog
The Register - Security
The Register - Security
GbyAI
GbyAI
Security Archives - TechRepublic
Security Archives - TechRepublic
Help Net Security
Help Net Security
人人都是产品经理
人人都是产品经理
SecWiki News
SecWiki News
Cyberwarzone
Cyberwarzone
Vercel News
Vercel News
罗磊的独立博客
The Hacker News
The Hacker News
腾讯CDC
S
Security @ Cisco Blogs
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
WordPress大学
WordPress大学
Recorded Future
Recorded Future
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 【当耐特】
小众软件
小众软件
Hacker News: Ask HN
Hacker News: Ask HN
P
Proofpoint News Feed
TaoSecurity Blog
TaoSecurity Blog
IT之家
IT之家
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
Security Affairs
C
Check Point Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org

博客园 - 衡子

Ubuntu24.04更改SSH端口 记录安装过程 Azure CLI创建管理员用户 创建VMSS中的instance 创建不带公网IP的VM Azure LSv3系列VM 自动挂载NVMe本地磁盘 Azure AD访问Azure Storage Azure Linux VM使用Managed Identity获取Key-vault的Secret Azure AD SSO with Google Cloud Identity 通过VM SWAP OS DISK升级VM 通过API获取Azure KeyVault Securet Azure Front Door添加自定义域名 VM间网络PPS和带宽测试 Azure获取access token的方法 VM间记录时延 Windows Terminal的一些配置 安装hping Azure解除不再使用Directory的关联 Azure AKS容器网络详解
使用VSCode Remote Containers功能实现开发环境统一
衡子 · 2021-11-28 · via 博客园 - 衡子

VSCode自从2015年面世以来,经过6年多的发展,成为最流行的开发工具。根据Stackoverflow在2021年的统计, VSCode是目前最流行的开发工具,超过70%的开发者会使用VSCode,远远领先其他的开发工具:

在企业的开发中,如何让众多开发者保持一致的开发环境,减少业务上线时的故障和复杂性,有各种解决方案。其中容器解决方案是目前大家常用的一种方式。

这里将介绍在VSCode中的Visual Studio Code remote Development,它允许您使用容器、远程计算机或适用于 Linux 的 Windows 子系统 (WSL) 作为开发环境。通过这个功能可以实现:

  • 在统一的操作系统上进行开发,或者在更大、更专业的硬件上进行开发
  • 本地环境和开发环境分离,避免因开发环境影响本地机器
  • 让新开发者更容易上手,并使每个开发者都处于一致的环境中
  • 使用本地不支持的操作系统或运行环境,甚至可以在本地支持多个版本
  • 在Windows中使用WSL实现Linux的开发环境
  • 从多台机器或位置访问现有的统一开发环境
  • 调试在客户站点或云中运行的应用程序

我们这里介绍通过容器的方式实现开发环境的统一的方法。

一 创建Docker镜像

本例子中创建一个带有Flask的Python3.8环境的Docker Image,作为开发环境的模板。

1 编写Dockerfile

创建一个无限循环的python程序,app.py:

import time

while True:

time.sleep(100)

创建如下的Dockerfile,采用python的官方镜像,安装Flask包,再将app.py复制到工作目录中,运行:

FROM python:3.8-slim

RUN pip install Flask

WORKDIR /app

ADD . /app

CMD ["python", "app.py"]

2 build模板镜像

运行docker build,创建名字为python-flask的镜像:

docker build . -t python-flask

二 在本机运行docker程序

在本机运行docker程序,采用的是刚刚创建好的镜像。同时把docker的工作目录,mount到本机的工作目录上:

docker run -d --name vsc01 \

-v /mnt/c/newfolder:/root/newfolder \

python-flask

可以看到运行中的容器:

三 通过VSCode连接到container中进行开发

1 安装remote – container插件

在VSCode中,查找并安装remote – container插件:

选择Remote – Containers,点击安装:

安装完成后,在VSCode的左下角出现一个绿色的按钮:

2 连接到container中

在VSCode中,点击左下角的绿色按钮:

点击attach to Running Container…

Attach到container以后,可以看到内部的文件系统:

3 调试程序

在VSCode中创建一个简单的index.py的程序

from flask import Flask

app = Flask(__name__)

@app.route("/")

def hello():

    html = '<h1 style="color:DodgerBlue;"> Hello world!' + "</h1></br>"

    return html

if __name__ == "__main__":

  app.run(host='0.0.0.0', port=80)

可以看到,在本机的C盘newfolder下创建了index.py程序:

为方便调试,在VSCode中安装code runner:

安装完成后,在右上角出现运行的按钮:

点击运行,出现提示,

可以看到代码的实际效果:

四 总结

在VSCode中安装Remote – Container插件,结合自己创建的统一容器镜像,可以非常方便的实现统一的开发环境。