VS Code Dev Containers 使用教程
vs code dev container教程
·
简介
Development Containers(简写为dev container)可以让你使用容器作为一个完整的开发环境。用容器可以隔离不同的开发环境,允同时使用不同的开发环境。便于分享开发环境,提高开发效率。
VS Code支持dev container. 本教程将介绍如何使用VS Code的dev container功能。
环境要求
- Docker. 官网教程:Get Docker
- VS Code. 官网教程:Visual Studio Code
配置步骤
1. 安装"Remote Development"插件
在VS Code插件市场中搜索"Remote Development"插件并安装。
或者使用命令行安装:
code --install-extension ms-vscode-remote.vscode-remote-extensionpack
2. 使用已有镜像
- 在工作目录下创建一个
.devcontainer
文件夹
mkdir .devcontainer
- 然后在
.devcontainer
文件夹下创建一个devcontainer.json
文件,内容如下:
{
"name": "Dev Container Python",
"image": "mcr.microsoft.com/devcontainers/python:3.11"
}
此时,目录结构如下:
$ tree -a .
.
└── .devcontainer
└── devcontainer.json
2 directories, 1 file
-
按照如下步骤打开dev container:
- 打开VS Code的命令面板(Ctrl+Shift+P)
- 搜索"Remote-Containers: Reopen in Container"
- 选择"Remote-Containers: Reopen in Container".
此时VS Code会自动下载镜像并启动一个python的dev container。
一些公共的镜像
语言 | 镜像 |
---|---|
C++ | mcr.microsoft.com/devcontainers/cpp:ubuntu-22.04 |
Go | mcr.microsoft.com/devcontainers/go:1.21 |
Java | mcr.microsoft.com/devcontainers/java:21 |
Python | mcr.microsoft.com/devcontainers/python:3.11 |
更多的镜像可以参考: Dev Container Images
3. 从Dockerfile
构建镜像并使用
如果需要自定义镜像,则需要将image
改为build
,并指定构建镜像的Dockerfile
。
{
"name": "Dev Container Python",
"build": {
"dockerfile": "Dockerfile"
},
"runArgs":["--name", "devcontainer-python"]
}
Dockerfile
内容为
FROM ubuntu:latest
# Avoid warnings by switching to noninteractive
ENV DEBIAN_FRONTEND=noninteractive
# This Dockerfile adds a non-root 'vscode' user with sudo access. However, for Linux,
# this user's GID/UID must match your local user UID/GID to avoid permission issues
# with bind mounts. Update USER_UID / USER_GID if yours is not 1000. See
# https://aka.ms/vscode-remote/containers/non-root-user for details.
ARG USER_UID=1000
ARG USER_GID=$USER_UID
RUN apt update -y && \
apt -y install --no-install-recommends apt-utils dialog && \
apt -y install \
build-essential \
iproute2 \
poppler-utils \
procps \
python3 \
python3-pip \
sudo \
&& apt autoremove -y \
&& apt clean -y
# Create a non-root user to use if preferred
# see https://aka.ms/vscode-remote/containers/non-root-user.
RUN groupadd --gid $USER_GID vscode \
&& useradd -s /bin/bash --uid $USER_UID --gid $USER_GID -m vscode \
&& echo vscode ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/vscode \
&& chmod 0440 /etc/sudoers.d/vscode
# Switch back to dialog for any ad-hoc use of apt-get
ENV DEBIAN_FRONTEND=dialog
此时的文件结构如下:
$ tree -a .
.
`-- .devcontainer
|-- Dockerfile
`-- devcontainer.json
1 directory, 2 files
需要注意的是, 自定义的镜像中需要支持如下命令:
curl
freetype
gcompat
libxext
libxi
libxrender
libxtst
procps
ps
unzip
参考资料
更多推荐
已为社区贡献2条内容
所有评论(0)