cenos7 下 docker -----> Jenkins 部署 flask 项目(此文适合不想折腾uwsgi+nginx的同学)

280 阅读3分钟

前置

  • 使用到的jenkins 插件有:Git Paramete,Generic Webhook Trigger,
  • 本系列是基于持续集成,自动部署 编写的,各位同学取实际项目所需即可
  • 交互思路:

image.png

正文

怎样构建,怎样拉取github 代码不用说了吧,这里就直接上干货了!!!

第一步:在flask项目 根目录 下 新建一份 Dockerfile 文件(名字不可改,没有后缀)
FROM python:3.11.5
# 设置工作目录
WORKDIR /var/jenkins_home/workspace/xxxx  (这里是Jenkins 的默认项目存放目录,xxxx首页新建任务所填写的名称,建议与github项目名称保持一致)

# 复制应用程序代码到容器中
COPY . /var/jenkins_home/workspace/xxxx

RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ || echo "Error installing requirements"
# 暴露应用程序监听的端口
EXPOSE 9091
# 容器启动时的命令
CMD ["python3", "app.py"]
第二步:在Jenkins 里面新建任务(建议任务名称与 GitHub 的项目名称保持一致)

GitHub 配置 此处忽略 可拜读一下《cenos7 下 docker -----> Jenkins 私钥配置 git (避坑指南)》

  1. 在任务管理 ——> 源码管理 中找到 构建触发器 勾选 Generic Webhook Trigger 根据提示 配置 GitHub webhooks 用的 地址:**http://Jenkins访问的地址:端口/generic-webhook-trigger**/invoke?token=xxxx (xxxx 为自定义的token)
  2. 进入 对应的 GitHub 项目 ——> 设置 ——> Webhooks (此处看不懂的,可以 去看:这位大佬写的教程 # 【超详细傻瓜式教程】向GitHub提交代码时触发Jenkins自动构建)
  3. 关键的一步来了:Build Steps 选择:执行 shell(参考如下)
	#!/bin/bash
# 进入到应用程序目录
cd /var/jenkins_home/workspace/xxxx(这里是Jenkins 的默认项目存放目录,xxxx首页新建任务所填写的名称,建议与github项目名称保持一致)
# 检查容器是否存在
if docker inspect flask-container >/dev/null 2>&1; then
    # 停止并删除旧容器
    docker stop flask-container
    docker rm  flask-container
    # 删除旧镜像
	docker rmi  flask-images
fi

# 构建镜像
docker build -t flask-images .

# 运行新容器
docker run -d -p 9091:9091 --name flask-container flask-images

sleep 10

curl 服务器外网IP地址:9091(可以不要的,主要是验证一下是否部署成功)

  1. 保存成功后,点击 立即构建(可通过点击构建历史中的记录,进入 控制台查看具体构建进度)

至此 jerkin 部署flask 项目就折腾好了

课外知识

停止:sudo systemctl stop docker

查看:sudo systemctl status docker

启动:sudo systemctl start docker

sudo systemctl enable docker

查看已构建镜像
docker images

删除  镜像
docker rmi <镜像ID>

查看正在运行的容器
docker ps 

查看所有容器
docker container ls -a

停止/删除容器

docker stop <容器ID>

docker rm <容器ID>

启动镜像

docker start <容器ID>

重启镜像

docker restart <容器ID>


进入容器
docker exec -it -uroot <容器ID> bash

退出容器
exit