Dev Container 系列专题(3):深入配置:自定义你的 Dev Container

在前两期中,我们了解了 Dev Container 的概念并快速搭建了一个基于预定义镜像的开发环境。这次,我们将更进一步,探索如何通过自定义配置打造一个完全符合项目需求的 Dev Container。本篇将以一个 Python 项目为例,带你学习配置文件的核心字段、使用 Dockerfile 定制镜像,并配置开发工具。

一、为什么要自定义 Dev Container?

预定义镜像(如 Node.js 或 Python 的官方镜像)虽然方便,但往往无法完全满足特定项目的需求。比如:

  • 需要安装额外的系统工具(例如 gitcurl)。
  • 项目依赖特定版本的语言运行时。
  • 需要集成调试器、linter 或格式化工具。

通过自定义配置,我们可以精确控制容器内的环境,确保它既高效又实用。

二、准备一个 Python 项目

我们将创建一个简单的 Python Web 项目作为示例。

  1. 创建项目文件夹
    在本地新建一个文件夹(比如 custom-dev-container),并进入:

    mkdir custom-dev-container
    cd custom-dev-container
    
  2. 初始化 Python 项目
    创建一个基本的 Flask 应用。运行以下命令:

    python -m venv venv
    source venv/bin/activate  # Windows: venv\Scripts\activate
    pip install flask
    

    创建 app.py

    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/')
    def hello():
        return 'Hello from Custom Dev Container!'
    
    if __name__ == '__main__':
        app.run(host='0.0.0.0', port=5000)
    

三、添加并自定义 Dev Container 配置

1. 生成基础配置
  • 使用 VS Code 打开项目文件夹(code .)。
  • Ctrl+Shift+P,选择 “Dev Containers: Reopen in Container”。
  • 选择 “Python 3”(推荐最新版本,如 Python 3.11),VS Code 会生成 .devcontainer/devcontainer.json

默认的 devcontainer.json 可能如下:

{
   
    "name": "Python 3",
    "image": "mcr.microsoft.com/vscode/devcontainers/python:3.11",
    "forwardPorts": [5000],
    "postCreateCommand": "pip install --user -r requirements.txt"
}
2. 使用 Dockerfile 自定义镜像

预定义镜像可能缺少一些工具(比如 gitmake),我们可以通过 Dockerfile 创建一个自定义镜像。

.devcontainer 文件夹下创建 Dockerfile

# 从官方 Python 镜像开始
FROM python:3.11-slim

# 安装系统依赖
RUN apt-get update && apt-get install -y \
    git \
    curl \
    && rm -rf /var/lib/apt/lists/*

# 设置工作目录
WORKDIR /workspaces/custom-dev-container

# 安装项目依赖
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

创建 requirements.txt(在项目根目录):

flask==2.3.3

修改 devcontainer.json,使用自定义 Dockerfile:

{
   
    "name": "Custom Python Dev Container",
    "build": {
   
        "dockerfile": "Dockerfile",
        "context": ".."
    },
    "forwardPorts": [5000],
    "postCreateCommand":
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无名架构师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值