赞
踩
通过阿里云云效(git+流水线)+k8s+kuboard实现git提交后自动部署前端(vue),后端(java)项目,解放双手。
当前实现条件(非绝对):|
1、git仓库使用的阿里云云效,阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台
2、使用阿里云云效流水线,阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台
3、服务器端安装K8s+kuboard控制工具
一、kuboard上建命名空间然后创建工作负载。
1.1、以java为例,创建页面选择部署,填写工作负载名称。
1.2、切换到容器信息位置点击“添加工作容器”,填写名称、容器镜像(建议使用阿里云个人镜像仓库,本例以阿里云个人镜像仓库为主。),如果镜像不是公开的要注意后面的镜像密码填写!!!
1.3、存储挂载(根据实际使用情况选择是否需要挂载,挂载后数据永久存储,不挂载则容器重启后丢失)
1.4、高级设置根据项目情况一般不设置,服务/应用路由可以设置应用对外暴露的端口,勾选“服务”,服务类型选择“NodePort”,然后点击“添加端口”,左边是应用本身端口,中间是对外暴露端口,右边的是应用内部使用的端口,一般左右两个都设置成应用或者代码本身要使用的端口即可。
1.5、设置完成点击左上角的保存,保存时会一次检查每项是否创建成功,创建完成即可。
1.6、拷贝镜像地址和CI/CD内容备用。
二、配置流水线
2.1、进入云效管理界面上进度到代码管理,然后点击左侧的菜单里“流水线”,然后点击右上角的“新建流水线”。
2.2、选择空模板,然后点击“基本信息”填写流水线名称
2.3、切换到“流程设置”,添加流水线源,选择代码源,注意选择对的分支!然后点击添加。
2.4、点击空任务,填写任务名称,点击任务步骤模块的“添加步骤”,然后选择构建-java构建
注意选择jdk版本及maven版本,构建命令根据实际情况增减。
2.5、继续点击“添加步骤”,继续选择构建-镜像构建并推送至阿里云镜像仓库个人版。
选择服务链接或者创建一个服务连接(前提是您得开通阿里云镜像仓库个人版),然后选择对应的地域,仓库名称(不包含版本号)需要和Kuboard里的容器的镜像地址保持一致。点击直接输入即可进行粘贴复制。标签即镜像的版本号(${BUILD_NUMBER}是流水线的构建编号,每次构建累加,${DATETIME}是构建时间),完整的镜像地址=仓库名:标签。
打包镜像肯定少不了Dockerfile文件,填写时注意路径不要搞错了!
2.6、点击右边的新的任务,选择执行命令-执行命令。
2.7、切换到kuboard管理界面上,点击CI/CD,然后选择或者创建AccessKey,分别复制下面两段代码到流水线执行命令的窗口里,然后将“yourNewVersion”改成前面5里构建的标签内容,变量需要用单引号包裹(如果标签里填了1.${BUILD_NUMBER},那么这里的yourNewVersion替换成 1.'${BUILD_NUMBER}')
以上即完成了构建,然后点击右上角的“保存并运行”,等待构建完成后机会推送到kuboard上实现自动部署。
三、构建Vue项目流水线
构建vue项目大致相同,在第二步选择Node.js构建,然后选择node版本,执行npm install和打包命令npm run build,后面也是构建镜像推送阿里云镜像仓库个人版(如上面的2.5)。
PS:Vue项目的Dockerfile文件里一定要安装Nigix,下面分享一个Vue的Dockerfile仅供参考。
- FROM xxx/nginx2work:1.23.3 (选择合适的nigix镜像地址)
- LABEL email="346614975@qq.com"
- WORKDIR /www
- VOLUME /tmp
- ENV LANG en_US.UTF-8
- RUN echo "\
- server {\
- listen 80;\
- server_name localhost;\
- proxy_set_header X-Real-IP \$remote_addr;\
- proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; \
- client_max_body_size 1024m;\
- client_body_buffer_size 256k;\
- client_header_timeout 180s;\
- client_body_timeout 180s;\
- location /api/ { \
- proxy_pass http://xxxx/api/; \(接口地址)
- proxy_redirect off; \
- proxy_set_header Host xxx.xxx.xxx.xxx; \
- proxy_set_header X-Real-IP \$remote_addr; \
- proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; \
- } \
- location / {\
- root /www;\
- index index.html index.htm;\
- if (!-e \$request_filename) { \
- rewrite ^(.*)$ /index.html?s=\$1 last; \
- break; \
- } \
- }\
- }" > /etc/nginx/conf.d/default.conf && mkdir -p /www
-
- ADD ./dist/ /www/
-
- RUN chmod 777 -R /www
-
- EXPOSE 80
- EXPOSE 443
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。