2. 开发环境搭建:Python、Git、Docker、Jenkins 的安装与配置

说实话,刚入行那会儿我最怕的就是搭环境。项目还没写一行代码,光装工具就能折腾大半天。后来踩的坑多了,才慢慢摸出一套「稳、快、干净」的套路。这一章咱们就聊聊这四样家底——Python、Git、Docker、Jenkins。每样我都会把核心安装步骤、环境变量、版本验证、避坑点过一遍。

核心理念:开发环境要「可复现、可迁移、可销毁」。用 Docker 解决「在我机器上跑得好好的」,用 Jenkins 把部署从手动操作变成自动流水线。

2.1 Python 环境安装与虚拟环境

Python 版本管理是我最早栽跟头的地方。项目 A 要 3.6,项目 B 要 3.9,系统自带的 Python 又不能随便动。所以我现在一律用 pyenv 或 conda 做隔离。

2.1.1 Windows / macOS / Linux 通用推荐

  • Windows:去官网下载 python-3.10.x-amd64.exe,安装时一定要勾选「Add Python to PATH」。这个不勾后面命令行会找不到 python,你会以为自己没装成功。
  • macOS:用 Homebrew 装 —— brew install python@3.10。别用系统自带的 2.7,太老了。
  • Linux:sudo apt install python3 python3-pip python3-venv。Ubuntu 20.04 以上默认就有 3.8+,足够用。

2.1.2 验证安装

python --version
Python 3.10.12

pip --version
pip 22.0.4 from /usr/lib/python3/dist-packages/pip (python 3.10)

2.1.3 虚拟环境 —— 这个必须养成习惯

我见过太多同事直接把包全局装到系统 Python 里,然后项目冲突了抓瞎。记住:每个项目一个虚拟环境。

# 创建虚拟环境
python -m venv venv

# 激活(Windows)
venv\Scripts\activate

# 激活(macOS/Linux)
source venv/bin/activate

# 退出
deactivate

我个人习惯把 venv 文件夹建在项目根目录下,并加到 .gitignore 里。这样别人克隆下来跑 python -m venv venv 就能复现。

2.1.4 依赖管理

用 requirements.txt 或 Pipfile 锁定版本。我曾经因为没锁版本,上线时 requests 库自动升级了个大版本,API 调用全崩了。

# 生成当前环境的依赖清单
pip freeze > requirements.txt

# 从清单恢复
pip install -r requirements.txt

2.2 Git 安装与 SSH 密钥配置

Git 是部署验证的基石。你想想看,没有版本控制,回滚靠复制文件夹,这谁受得了?我们要做到:代码有历史,每次部署有标记。

2.2.1 安装 Git

平台方式
Windowsgit-scm.com 下载安装包,安装时选「Use Git from the command line and also from 3rd-party software」
macOSbrew install git 或者用 Xcode Command Line Tools
Linuxsudo apt install git

2.2.2 首次配置

git config --global user.name "你的名字"
git config --global user.email "you@example.com"

注意:邮箱最好和你的代码托管平台(GitHub/GitLab)一致,否则提交记录里会显示奇怪的头像。

2.2.3 SSH 密钥 —— 省掉每次输密码

我建议用 ed25519 算法,比 RSA 更安全更快。

ssh-keygen -t ed25519 -C "you@example.com"
# 一路回车,不要设密码(否则 Jenkins 无法自动拉取)

# 查看公钥
cat ~/.ssh/id_ed25519.pub

把公钥内容粘贴到 GitHub / GitLab / Gitee 的 SSH Key 设置里。然后用 ssh -T git@github.com 测试连通性。我第一次配完看到「Hi xxx! You've successfully authenticated」时,还挺有成就感的。

2.3 Docker 安装与镜像加速

Docker 是我现在部署的标配。环境全打包,服务器上一拉就跑,再也不怕系统版本不一致。

2.3.1 安装 Docker Engine

  • Windows/macOS:直接装 Docker Desktop。注意 Windows 需要启用 WSL2,安装时按提示操作就行。
  • Linux:用官方脚本或 apt 安装。推荐用 sudo apt install docker.io(Ubuntu 简化版),但你会发现版本可能旧一点。想用最新版去 docs.docker.com/engine/install/ubuntu/ 走 repo 流程。

装完后记得把当前用户加入 docker 组,不然每次都得 sudo:sudo usermod -aG docker $USER,然后退出重登。

2.3.2 验证安装

docker --version
Docker version 24.0.7, build afdd53b

docker run hello-world
# 看到 Hello from Docker! 就说明成功了

2.3.3 配置镜像加速(国内用户必做)

不配加速的话,pull 个 nginx 镜像能等上半小时。我在腾讯云的时候踩过这个坑。

# Linux 编辑 /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com"
  ]
}

# 重启 Docker
sudo systemctl restart docker

2.3.4 常用命令速记

命令说明
docker ps查看运行中的容器
docker images查看本地镜像列表
docker build -t myapp:1.0 .构建镜像
docker push 仓库地址/镜像名推送镜像到仓库

2.4 Jenkins 安装与初始配置

Jenkins 是我们自动化部署的「大脑」。它能监听 Git 仓库的变化,自动拉代码、跑测试、构建镜像、甚至部署到服务器。

2.4.1 安装方式选择

我个人推荐用 Docker 跑 Jenkins,干净又方便升级。

# 拉取官方 LTS 镜像
docker pull jenkins/jenkins:lts

# 运行容器
docker run -d \
  --name jenkins \
  -p 8080:8080 -p 50000:50000 \
  -v jenkins_home:/var/jenkins_home \
  --restart always \
  jenkins/jenkins:lts

映射了两个端口:8080 是 Web 界面,50000 是构建节点的通信端口。数据卷 jenkins_home 保证重启后配置不丢。

2.4.2 初始化解锁

启动后去浏览器打开 http://localhost:8080,会让你输入管理员密码:

# 在宿主机上查初始密码
docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword

复制粘贴,点击「安装推荐的插件」。这一步会花几分钟,去泡杯咖啡吧。

2.4.3 创建第一个管理员用户

插件装完后按提示填用户名、密码、邮箱。注意邮箱配置后面发构建通知会用到。

2.4.4 配置全局工具

进入「Manage Jenkins → Tools」里配置 JDK、Git、Docker 等工具路径。如果用 Docker 容器跑的 Jenkins,内核里已经自带了 Git 和 Docker CLI,但需要把宿主机的 Docker 套接字挂载进去才能执行 docker 命令:

docker run -d \
  --name jenkins \
  -p 8080:8080 -p 50000:50000 \
  -v jenkins_home:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  --restart always \
  jenkins/jenkins:lts

挂载 Docker 套接字会让容器拥有与宿主机同等的 Docker 权限。这在团队环境里要注意安全,建议只在内网开发环境这样做。

2.4.5 验证 Jenkins 与 Git、Docker 的联通

创建一个自由风格任务,在「构建」步骤里增加一个「执行 shell」:

# 测试 Git
git --version
# 测试 Docker
docker --version
# 测试构建一个简单镜像
docker build -t test-image .

点「立即构建」,看控制台输出全是绿色的 success 就对了。

2.5 工具链关系图

下面这张图把四种工具串了一遍。你能看到代码从本地到服务器的完整路径。

开发环境工具链协作流程图 开发编写代码 Python 虚拟环境 Git 版本管理 GitHub/GitLab 代码仓库 Jenkins 监听 webhook 自动拉取 → 测试 → 构建 Docker 镜像构建 推送镜像到仓库 部署到目标服务器 重要提示 整个流程可以完全自动化 开发只需推送代码到 Git

2.6 配置验证清单

最后,分享一个我每个项目都会跑的验证清单。拿去直接用,保证环境干干净净。

序号检查项验证命令
1Python 版本符合项目要求python --version
2虚拟环境已激活which python 应指向项目内路径
3Git 已配置 user.name 和 user.emailgit config --global --list
4SSH 密钥已添加到远程仓库ssh -T git@github.com 返回成功
5Docker 运行正常docker run hello-world
6镜像加速配置正确docker info | grep Registry 看到自己配置的 mirror
7Jenkins 容器启动并解锁Web 面板可登录
8Jenkins 能执行 docker 命令创建一个 shell 任务跑 docker ps

环境搭好了,你接下来就能专心折腾「部署验证」和「回归测试」的核心逻辑了。记住,前期花半小时把工具体系搭稳,后面节省的是几十个小时的排错时间。