第一步:在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
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。