在现代软件开发中,CI/CD管道(持续集成/持续部署)已成为提升开发效率、保障代码质量的重要工具。而使用 Ubuntu容器 作为构建和部署环境,不仅轻量高效,还能确保开发、测试与生产环境的一致性。本文将手把手教你如何搭建一个基于 Docker Ubuntu 的完整 自动化部署 流程,即使你是初学者也能轻松上手!
什么是CI/CD?
CI(Continuous Integration,持续集成)是指开发者频繁地将代码合并到主干,并通过自动化测试验证其正确性。CD(Continuous Deployment/Delivery,持续部署/交付)则是在代码通过测试后,自动将其部署到测试或生产环境。整个流程可大幅减少人为错误,加速产品迭代。
为什么选择Ubuntu容器?
Ubuntu容器 基于官方Ubuntu镜像,具有社区支持广泛、软件包丰富、文档齐全等优势。同时,Docker容器的隔离性和可移植性使得你的CI/CD流程可以在任何支持Docker的平台上运行,实现“一次构建,处处运行”。
准备工作
你需要:
一台安装了 Docker 的 Linux / macOS / Windows 机器 一个 GitHub 账号(或其他代码托管平台) 基础的命令行操作知识步骤一:创建一个简单的Python Web应用
我们以一个Flask应用为例:
# app.pyfrom flask import Flaskapp = Flask(__name__)@app.route('/')def hello(): return "Hello from Ubuntu CI/CD Pipeline!"if __name__ == '__main__': app.run(host='0.0.0.0', port=5000) 同时创建
requirements.txt文件:
Flask==2.3.2
步骤二:编写Dockerfile
在项目根目录创建
Dockerfile,使用官方Ubuntu镜像构建容器:
# 使用官方Ubuntu 22.04作为基础镜像FROM ubuntu:22.04# 设置非交互式安装,避免弹窗ENV DEBIAN_FRONTEND=noninteractive# 安装Python3、pip和必要的依赖RUN apt-get update && \ apt-get install -y python3 python3-pip && \ rm -rf /var/lib/apt/lists/*# 设置工作目录WORKDIR /app# 复制依赖文件并安装COPY requirements.txt .RUN pip3 install --no-cache-dir -r requirements.txt# 复制应用代码COPY . .# 暴露端口EXPOSE 5000# 启动应用CMD ["python3", "app.py"]
步骤三:本地测试容器
在终端执行以下命令构建并运行容器:
docker build -t my-ubuntu-app .docker run -d -p 5000:5000 my-ubuntu-app
访问
http://localhost:5000,如果看到 “Hello from Ubuntu CI/CD Pipeline!”,说明容器运行成功!
步骤四:配置GitHub Actions实现CI/CD
在项目中创建
.github/workflows/ci-cd.yml文件:
name: Ubuntu CI/CD Pipelineon: push: branches: [ main ]jobs: build-and-deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Build and push Docker image run: | docker build -t my-ubuntu-app . echo "✅ 构建成功!" - name: Run tests (optional) run: | echo "???? 此处可添加自动化测试命令" - name: Deploy to server (example) run: | echo "???? 部署逻辑(如scp、kubectl、ssh等)"
每次你向
main分支推送代码,GitHub Actions 就会自动触发这个工作流,完成构建、测试和部署。这就是 自动化部署 的核心!
进阶建议
将Docker镜像推送到 Docker Hub 或私有仓库 在真实服务器上使用docker-compose管理服务 添加单元测试和代码覆盖率检查 使用 secrets 管理敏感信息(如API密钥)
总结
通过本文,你已经掌握了如何使用 Ubuntu容器 搭建一个完整的 CI/CD管道。从编写应用、构建Docker镜像,到配置GitHub Actions实现 自动化部署,每一步都清晰明了。未来你可以在此基础上扩展更多功能,打造属于自己的高效开发流水线!
关键词回顾:Ubuntu容器、CI/CD管道、Docker Ubuntu、自动化部署。
