Docker
Drone自动化打包镜像至Harbor私有仓库
Drone自动化打包镜像至Harbor私有仓库
上一篇介绍了如何通过docker部署Harbor私有仓库,今天跟大家分享如何通过Drone自动化打包镜像至我们搭建的Harbor私有仓库,流程大致如下
Gitea->Drone->Harbor
一、创建仓库
我们先在Gitea创建我们的代码仓库,然后在Drone面板激活。
二、项目准备
这里我打算部署一个Go项目,大家根据自己实际情况进行准备,访问端口是9922,我们在项目根目录创建一个Dockerfile文件,用于构建镜像
# Version 1.0 FROM alpine:latest # 维护者信息 MAINTAINER hzx790254812@gmail.com # 设置工作目录 WORKDIR /home COPY project-go-api /home/ # 暴露端口 EXPOSE 9922 # 执行命令 ENTRYPOINT ./project-go-api
三、创建镜像项目
我们到自己部署的Harbor仓库创建一个项目镜像,截图如下
四、配置Docker
因为Docker推送镜像默认是走https,由于我部署的镜像仓库是http,所以我们需要修改一下配置,登陆到要推送镜像的服务器上,输入以下命令
vi /etc/docker/daemon.json
输入以下配置,记得修改为自己的ip或者域名,假设我们的Harbor地址是1.1.1.1:8091。
{ "insecure-registries": ["1.1.1.1:8091"] }
重启Docker,配置生效
sudo service docker restart
五、配置Drone配置
由于我们的Harbor仓库是http,所以我们需要添加一行配置
insecure: true
配置如下,假设我们的Harbor地址是1.1.1.1:8091,镜像项目地址是1.1.1.1:8091/docker,这里每次提交镜像会生成两个版本,latest跟Drone自定义生成
kind: pipeline type: docker name: project-go-api #构建步骤 steps: #构建镜像 - name: build image: golang:latest pull: if-not-exists environment: GOPROXY: "https://goproxy.cn,direct" # 懂的都懂 volumes: # 缓存 go mod & pkg,可以大幅度提高速度,避免每次都下载 - name: pkgdeps path: /go/pkg commands: - CGO_ENABLED=0 go build -o project-go-api #推送镜像至镜像仓库 - name: publish image: plugins/docker settings: registry: 1.1.1.1:8091 repo: 1.1.1.1:8091/docker/project-go-api insecure: true username: admin password: admin use_cache: true tags: - latest - ${DRONE_COMMIT}
六、检验
我们尝试提交项目,看看效果
这样我们就成功通过Drone推送镜像到Harbor私有仓库。
0条评论