docker在开发和运维中使用的场景越来越多,作为开发人员非常有必要了解一些docker的基本知识,而离我们工作中最近的也就是对应用的docker部署编排了,小到一个dockerfile, docker-compse文件的编写,大到k8s的管理。这里我们以 golang应用为例讲解一些Dockerfile的基本用法,在ci/cd中经常用到这些知识。
前提
项目清单:
drwxr-xr-x 9 sxf staff 288 12 31 16:13 .
drwx------@ 17 sxf staff 544 12 31 14:59 ..
-rw-r--r-- 1 sxf staff 14 12 31 16:09 .dockerignore
drwxr-xr-x 14 sxf staff 448 12 31 16:21 .git
-rw-r--r-- 1 sxf staff 467 12 31 16:08 Dockerfile
-rw-r--r-- 1 sxf staff 11 12 31 15:01 README.md
-rw-r--r-- 1 sxf staff 84 12 31 15:51 go.mod
-rw-r--r-- 1 sxf staff 3433 12 31 15:51 go.sum
-rw-r--r-- 1 sxf staff 191 12 31 16:02 main.go
文件说明: .dockerignore 看名字就知道他的作用是用为忽略一些文件的,它的使用主要是在Dockerfile中使用COPY/ADD 指令时发挥作用。以行为单位,这里共两行,行内容分别是.git 和 README.md .git 这个是项目Git仓库 Dockerfile 我们文章的重点 go.mod Golang启用了模块管理功能 go.sum 启用模块管理时,会在此文件中记录依赖的三方库 main.go 我们的主要go程序文件,一个简单的webserver应用
项目仓库地址:github.com/cfanbo/democice
Continue reading