使用VSCode Remote Containers功能實現開發環境統一
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外掛,結合自己建立的統一容器映象,可以非常方便的實現統一的開發環境。