CICD流水线
大约 2 分钟
Codeup: https://codeup.aliyun.com
需求:我们希望提交代码之后到master分支后自动讲 golang、vue等项目打包为docker镜像发布发到aliyun镜像平台。
创建Git仓库
1、首先到代码管理中创建好对应的仓库
2、到aliyun镜像中创建需要的镜像名称:https://cr.console.aliyun.com/cn-hangzhou/instance/repositories
后续时候到的docker登录密码在这里修改
Golang to Docker
在自己的golang项目目录下创建一个 Dokerfile
文件
FROM golang:1.22.3-alpine3.19 AS builder
#
WORKDIR /app/
## 设置golang代理
ENV GOPROXY=https://goproxy.cn,direct
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
COPY . .
RUN go mod tidy && go build -o main .
FROM alpine:3.19
WORKDIR /app/
COPY /app/main /app/main
COPY /app/web/dist /app/web/dist
COPY /app/web/auth.html /app/web/auth.html
EXPOSE 3030
CMD ["./main","serve"]
Vue to Docker
在自己的vue项目目录下创建一个 Dokerfile
文件
# 使用官方Nginx镜像作为基础镜像
FROM nginx:alpine
# 设置工作目录
WORKDIR /usr/share/nginx/html
# 将构建好的Vue项目文件复制到Nginx的webroot目录
# 假设构建的文件在dist目录下
COPY ./dist /usr/share/nginx/html
# 如果需要自定义Nginx配置,可以复制配置文件到Nginx配置目录
# 例如,将自定义配置文件复制到/etc/nginx/conf.d/
COPY ./nginx.conf /etc/nginx/conf.d/default.conf
# 启动Nginx服务
CMD ["nginx", "-g", "daemon off;"]
nginx.conf
server {
listen 80 default_server;
root /usr/share/nginx/html;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location /admin {
proxy_pass http://106.0.0.158:3003; # 修改为服务器端域名或者+端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
charset utf-8;
}
将对应的代码提交到对应的git仓库中
构建流水线
账号:你的邮箱号
密码:aliyun镜像中心 个人凭证 设置的
点击保存就可以开始构建镜像了
返回到aliyun镜像平台查看
可以看到已经构建成功。