docker + jenkins + flask 部署,持续化集成
2023-09-14 09:00:32 时间
###
Flask 项目文件
$ tree flask_docker_jenkins_demo/
flask_docker_jenkins_demo/
├── Dockerfile
├── README.md
└── app.py
from flask import Flask, jsonify app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' @app.route('/health') def health_checking(): ret = {'status': 'UP'} return jsonify(ret)
Dockerfile
FROM python:3.6.9-alpine RUN pip install --no-cache-dir -i http://mirrors.aliyun.com/pypi/simple/ \ --trusted-host mirrors.aliyun.com Flask gunicorn ADD . /app ENV GUNICORN_CMD_ARGS="--bind=0.0.0.0:5001 --chdir=./app/ --workers=4" CMD ["gunicorn", "app:app"]
使用 docker 启动 jenkins :
docker-compose.yml:
version: '3' services: jenkins: image: 'jenkins/jenkins' container_name: jenkins restart: always ports: - '8080:8080' - '50000:50000' user: root volumes: - /root/jenkins/jenkins_home:/var/jenkins_home - /usr/bin/docker:/usr/bin/docker - /var/run/docker.sock:/var/run/docker.sock
启动过程中会显示初始密码,也会保存在 /var/jenkins_home/secrets/initialAdminPassword 中,启动完成用浏览器访问 8080 端口,用初始化密码解锁 jenkins。
建立构建任务
Jenkins -> 新建任务 -> 起名字,构建一个自由风格的软件项目 -> 保存
【源码管理】 -> 【Git】 -> 填写 Github 地址
【构建触发器】 -> 【轮询 SCM】 -> 日程表填写* * * * *
【构建】 -> 【增加构建步骤】 -> 【执行 shell】
docker build -t my-flask-image:latest . a=`docker ps -a |grep my-flask-image | wc -l` if [ $a -gt 0 ];then docker rm -f $(docker ps -q --filter ancestor=my-flask-image);fi docker run -d -i --rm -p 5001:5001 my-flask-image
-> 【保存】
注意
docker-compose.yml 里要把 docker 命令和 docker.sock 映射进容器
装插件容易失败,好像不怎么用装插件也可以
无需配置 Publish over SSH
构建触发器的启程表里面是 cron 表达式
如果在 docker build 前已经存在同名镜像,那么在完成后会出现一个无名(dangling)镜像,最后清理一下。
####
相关文章
- Docker 系列(九):docker-compose
- ubuntu16.04 安装cuda9.0+cudnn7.0.5+tensorflow+nvidia-docker配置GPU服务
- Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目
- docker + jenkins + flask 部署,持续化集成
- Docker for windows 或者 docker-ce 加速下载镜像配置
- docker镜像构建,Docker 镜像和容器的导入导出
- 解决docker中jenkins运行磁盘满的问题
- Docker docker部署以及运行你的第一个容器
- Docker cAdvisor安装
- Docker 实战教程之从入门到提高 (七)
- 阿里云 docker连接总报超时 registry.cn-hangzhou.aliyuncs.com (Client.Timeout exceeded while awaiting headers
- 【Docker】在本地打包maven程序为docker镜像报错: Connect to localhost:2375 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1]
- 【云原生之Docker实战】使用docker部署nginx-proxy-manager-zh反向代理工具
- 【云原生之Docker实战】使用docker部署yesplaymusic个人音乐播放器
- 【云原生之Docker实战】安装docker镜像分析工具Dive
- 持续基础怎么搞?Jenkins+Docker+Git实战
- 2023你还在问持续集成怎么搞?Jenkins+Docker+Git实战(建议收藏)
- web未授权访问漏洞总结——非常全而细致 redis、mongodb、jenkins、zk、es、memcache、hadoop、couchdb、docker
- ubuntu docker的安装和使用
- 第一本docker书 学习笔记(二)
- 容器技术之Docker私有镜像仓库harbor
- 使用Jenkins与Docker持续集成与发布NetCore项目(实操篇)
- 【云原生 • Docker】docker 入门、docker 与虚拟机对比、docker 组件
- Docker技术----docker-compose实战----快速搭建WordPress博客系统
- ElasticSearch----使用docker-compose方式安装8.1.3版本的ElasticSearch集群
- centos7下jenkins的几种安装方式(yum,rpm,war包,docker镜像)
- Jenkins+Docker+SpringCloud微服务持续集成(中)
- 云原生之使用Docker部署docker-compose-ui工具