cenos7 下 docker + Jenkins 部署 flask 项目

第一步:在flask项目 根目录 下 新建一份 Dockerfile 文件(名字不可改,没有后缀)
bash复制代码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 (避坑指南)》

在任务管理 ——> 源码管理 中找到 构建触发器 勾选 Generic Webhook Trigger 根据提示 配置 GitHub webhooks 用的 地址:http://Jenkins访问的地址:端口/generic-webhook-trigger/invoke?token=xxxx (xxxx 为自定义的token)
进入 对应的 GitHub 项目 ——> 设置 ——> Webhooks (此处看不懂的,可以 去看:这位大佬写的教程 # 【超详细傻瓜式教程】向GitHub提交代码时触发Jenkins自动构建)
关键的一步来了:Build Steps 选择:执行 shell(参考如下)

bash复制代码 #!/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(可以不要的,主要是验证一下是否部署成功)

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

至此 jerkin 部署flask 项目就折腾好了
课外知识
xml复制代码停止: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

作者:聿小翼
链接:https://juejin.cn/post/7330916433559470120
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值