【DevOps】第二步:Docker镜像打包上传至仓库

镜像仓库

镜像仓库有好些地方可以存,大部分的公有云均提供免费的镜像仓库,常见如下:

打包上传shell脚本

统一打包流程,每个项目中添加make.sh脚本文件,一个典型的make文件如下:

#!/bin/sh
echo "开始制作镜像..."
image_tag=`date +%Y%m%d` #_%H%M
echo "当前时间:$image_tag"
docker build -t ccr.ccs.xxx.com/abc/api:v${image_tag} .
echo "制作镜像成功!"
 
echo "登录"
docker login
echo "镜像版本提交"
docker push ccr.ccs.xxx.com/abc/api:v${image_tag}
 
echo "镜像最新版本提交"
docker tag ccr.ccs.xxx.com/abc/api:v${image_tag} ccr.ccs.xxx.com/abc/api:latest
docker push ccr.ccs.xxx.com/abc/api:latest

注:Dockerfile和make.sh在同一目录下。

docker build 命令用法

docker build [OPTIONS] PATH | URL | -
  • 命令参数
命令, 缩写 描述
--add-host 增加自定义主机和IP映射(host:ip)
--build-arg 设置构建时的变量
--cache-from 用于缓存资源的镜像
--cgroup-parent 可选的容器上层cgroup
--compress 使用gzip 压缩构建context
--cpu-period 限制CPU CFS(完全公平调度程序)周期
--cpu-quota 限制CPU CFS(完全公平调度程序)配额
--cpu-shares , -c CPU共享(相对权重)
--cpuset-cpus 允许执行的CPU (0-3, 0,1)
--cpuset-mems 允许使用的内存 (0-3, 0,1)
--disable-content-trust true 忽略镜像验证
--file , -f Dockerfile名称 (默认 ‘PATH/Dockerfile’)
--force-rm 始终移除中间容器
--iidfile 镜像ID写入文件
--isolation 容器隔离技术
--label 设置镜像metadata信息
--memory , -m 内存限制
--memory-swap 交换限制等于内存加交换,“-1”:启用无限制交换
--network 在生成期为RUN指令设置网络模式 (API 1.25+)
--no-cache 不使用缓存
--output , -o 输出(格式:type=local,dest=path) (API 1.40+)
--platform 如果支持多平台,则设置 (experimental (daemon)API 1.32+)
--progress 默认auto,设置进度输出类型 (auto, plain, tty).
--pull 总是尝试拉取最新的镜像版本
--quiet , -q 不输出构建过程,成功时直接打印镜像ID
--rm 默认true,构建成功后删除中间容器
--secret API 1.39+ Secret file to expose to the build (only if BuildKit enabled): id=mysecret,src=/local/secret
--security-opt Security options
--shm-size Size of /dev/shm
--squash experimental (daemon)API 1.25+ Squash newly built layers into a single new layer
--ssh SSH agent socket or keys to expose to the build (only if BuildKit enabled)
--stream (experimental (daemon)API 1.31+ ) Stream attaches to server to negotiate build context
--tag , -t 镜像名和tag,格式为‘name:tag’
--target Set the target build stage to build.
--ulimit Ulimit 选项

参考已有的范例,Dockerfile和shell脚本只需要简单熟悉一下即可编写。
这一步很关键,是自动打包的根本。make.sh脚本灵活,可执行配置文件的替换,多镜像版本的生成等自定义操作。相比自动化构建平台基于Dockerfile和git commit来构建更具灵活性。

jenkins job配置

源码管理

jenkins会将git项目拷贝至job目录下。


image

构建触发器

jenkins定时检测代码变动(这里是每分钟检测一次),如果发现有代码提交记录,则触发下一步的构建。


image

构建

构建包括2部分:

  • SSH site: SSH的主机地址
  • Command: 在主机上执行的命令


    image

构建日志

image

打包流程

  1. 提交代码

  2. jenkins每分钟检测git仓库分支的代码变动

  3. 若有代码提交记录,触发下一步构建

  4. 构建过程调用项目的make.sh文件,执行镜像打包上传

image

参考

https://docs.docker.com/engine/reference/commandline/build/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,904评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,581评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,527评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,463评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,546评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,572评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,582评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,330评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,776评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,087评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,257评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,923评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,571评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,192评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,436评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,145评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容