IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> go二进制文件创建docker镜像标准流程 -> 正文阅读

[系统运维]go二进制文件创建docker镜像标准流程

示例:通过makefile生成go二进制文件,将二进制文件拷贝到根目录下,打包成docker镜像

生产阶段Dockerfile:? Dockerfile-develop

发布节点Dockerfile:? Dockerfile-product

Makefile:编译出go二进制文件

基础镜像:alpine:3.12.0(或其他基础镜像)

最终镜像包:镜像名-tag.tar/镜像名-tag.tar.gz

makeimage.sh

set –xe

image_name=test
image_tag=v1.0


cleanup_make()  # 清理
rm –rf ./*.tar ./*.tar.gz

make  # 编译

docker build –no-cache=true –t ${image_name}-develop:${image_tag} –f Dockerfile-develop .
docker run –d –name ${image_name} ${image_name}:${image_tag}

mkdir release && cd release
docker cp ${image_name}:/ ./
rm –rf `find ./ -name ‘apk’`
tar cvf files.tar *

cd ../
docker build –t ${image_name}:${image_tag} –f Dockerfile-product .

docker save –o ${image_name}-${image_tag}.tar ${image_name}:${image_tag}
lz4 -9 ./${image_name}-${image_tag}.tar  #压缩文件

# cleanup_make() # 清理


cleanup_make() {
    docker ps –a | grep ${image_name} | awk ‘print $1’ | xargs –I {} docker rm {}
    docker images | grep ${image_name} |awk ‘{print $1”:”$2}’ | xargs –I {} docker rmi {}
    rm –rf release
}

生产阶段Dockerfile:? Dockerfile-develop

From alpine:3.12.0
ADD ./_output /
RUN rm -rf /var/lib/apk/* && \
    rm -rf `find / -name 'apk'` \
    chmod +x /test

发布节点Dockerfile:? Dockerfile-product

From scratch
ADD ./release/files.tar /
WORKDIR /

Makefile

all : _test

_test :
	go build  -ldflags '-s -w -extldflags "-static"' -o ./_output/test ./main.go

.PHONY : clean
clean :
	rm -rf ./_output

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-07-27 16:38:53  更:2021-07-27 16:40:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 1:07:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码