当前位置: 首页 > news >正文

宜昌网站制作公司亿腾微信软文模板

宜昌网站制作公司亿腾,微信软文模板,疫情现在怎么样了 最新消息,成品网页一般构建部署 以一个简单的前后端项目来说,分别编写前后端的 Dockerfile 文件并构建镜像,然后编写 docker-compose.yml 构建部署,启动运行。每次代码变更后都需重新手动打包、构建、推送。 一个简单的例子: 前端: 项…

一般构建部署

以一个简单的前后端项目来说,分别编写前后端的 Dockerfile 文件并构建镜像,然后编写 docker-compose.yml 构建部署,启动运行。每次代码变更后都需重新手动打包、构建、推送。

一个简单的例子:

  • 前端:
    • 项目名:kubemanagement-web
    • 技术栈:Vue
  • 后端:
    • 项目名:kubemanagement
    • 技术栈:Golang

tips: 不同语言对应的构建逻辑编写不同。关于 Dockerfile 以及 docker-compose 如何编写,请查阅官方文档,此处不在赘述。

1. 编写前端 Dockerfile 文件:

#第一阶段构建
FROM node:16.13.2 as builder
WORKDIR /app/kubemanagement-webCOPY . .RUN npm config set registry https://registry.npmmirror.com
RUN npm install# 开始构建
RUN npm run build:prod# 第二阶段构建
FROM nginx
COPY --from=builder /app/kubemanagement-web/dist/ /usr/share/nginx/html/
COPY --from=builder /app/kubemanagement-web/default.conf.template /etc/nginx/templates/default.conf.template
EXPOSE 80

2. 编写后端 Dockerfile 文件:

FROM golang:1.20-alpine3.16 as builder
WORKDIR /go/src/kubemanagement.com/server
COPY . .RUN go env -w GO111MODULE=on \&& go env -w GOPROXY=https://goproxy.cn,direct \&& go env -w CGO_ENABLED=0 \&& go env \&& go mod tidy \&& go build -o server .FROM alpine:latestLABEL MAINTAINER="zj20162325@163.com"WORKDIR /go/src/kubemanagement.com/server
COPY --from=0 /go/src/kubemanagement.com/server/config.yaml ./config.yaml
COPY --from=0 /go/src/kubemanagement.com/server/.kube/config ./.kube/config
COPY --from=0 /go/src/kubemanagement.com/server/server ./
EXPOSE 8082
ENTRYPOINT ./server

3. 分别构建镜像:

  • 前端
docker build -t harbor.kubemanagement.com/kubemanagement/kubemanagement-web:v1.0 .
  • 后端
docker build -t harbor.kubemanagement.com/kubemanagement/kubemanagement:v1.0 .

结果如下:
在这里插入图片描述
如果需要推送镜像,比如推送到私有 Harbor 仓库,可执行:

docker push harbor.kubemanagement.com/kubemanagement/kubemanagement-web:v1.0
docker push harbor.kubemanagement.com/kubemanagement/kubemanagement:v1.0

Harbor 的搭建可参考 微服务 & 云原生:搭建 Harbor 私有镜像仓库。

4. 编写 docker-compose.yml 文件:

version: "3"networks:network:ipam:driver: defaultconfig:- subnet: '177.7.0.0/16'services:web:container_name: kubemanagement-webimage: harbor.kubemanagement.com/kubemanagement/kubemanagement-web:v1.0restart: alwaysenvironment:BACKEND_HOST: 'http://177.7.0.12:8082/'ports:- '8081:80'depends_on:- servernetworks:network:ipv4_address: 177.7.0.11server:container_name: kubemanagement-serverimage: harbor.kubemanagement.com/kubemanagement/kubemanagement:v1.0restart: alwaysports:- '8082:8082'networks:network:ipv4_address: 177.7.0.12

使用 docker-compose 自动完成包括构建镜像,创建服务,启动服务,并关联服务相关容器的一系列操作:

docker-compose up -d

结果如下:
在这里插入图片描述
此时通过相应 ip:port 即可访问页面,示例页面如下:
在这里插入图片描述

使用 Gogs & Drone 持续集成

在这里插入图片描述

Gogs

编写 gogs 的 docker-compose.yml 文件

version: "3"volumes:gogsdata:services:gogs:container_name: gogsimage: gogs/gogs:0.12.10volumes:- gogsdata:/datarestart: alwaysports:- '10880:3000'

执行:

docker-compose up -d

结果如下:
在这里插入图片描述
通过 10880 端口访问:
在这里插入图片描述
数据库根据需求来选,这里选择最轻量级的 SQLite3 作为演示,其他配置项可以默认,由于编写 docker-compose.yml 时做了端口映射,主要修改域名、端口号,如下:
在这里插入图片描述
编写完可选配置后点击立即安装,我这里就简单设置管理员信息:
在这里插入图片描述
gogs 的使用与 git 基本一致,简单创建一个仓库并提交信息:
在这里插入图片描述

Drone

编写 docker-compsoe.yml 文件:

version: "3"volumes:dronedata:services:drone-server:image: drone/drone:2container_name: drone-serverenvironment:DRONE_AGENTS_ENABLED: "true"DRONE_GOGS_SERVER: "http://192.168.65.134:10880"# openssl rand -hex 16 生成, server 与 runner 的 DRONE_RPC_SECRET 设置相同DRONE_RPC_SECRET: "02cfbfe91f999c6f334158f4cf737490"DRONE_SERVER_HOST: "192.168.65.134:9080"DRONE_SERVER_PROTO: "http"# 必须是管理员身份,方便后续的配置选项等操作DRONE_USER_CREATE: "username:BetaCatPro,admin:true"volumes:- dronedata:/datarestart: alwaysports:- '9080:80'- '9443:443'drone-runner:image: drone/drone-runner-docker:1container_name: drone-runnerenvironment:DRONE_RPC_SECRET: "02cfbfe91f999c6f334158f4cf737490"DRONE_RPC_HOST: "192.168.65.134:9080"DRONE_RPC_PROTO: "http"DRONE_RUNNER_CAPACITY: "2"DRONE_RUNNER_NAME: "first-runner"volumes:- /etc/docker/:/etc/docker- /var/run/docker.sock:/var/run/docker.sockrestart: alwaysports:- '3000:3000'depends_on:- drone-server

部分参数说明:

  • DRONE_GOGS_SERVER : Gogs 服务地址(需要http://开头)
  • DRONE_RPC_SECRET: Drone 服务密匙(runner 也要使用相同密钥)
  • DRONE_SERVER_HOST: Drone 服务地址,外部可访问的域名或IP地址
  • DRONE_SERVER_PROTO: Drone提供服务的协议类型,可选为 http 或 https
  • DRONE_USER_CREATE: 设置Drone管理员账号(是Gogs平台里的账号)

执行 :

docker-compose up -d

结果:
在这里插入图片描述
浏览器访问 ip:port:
在这里插入图片描述
登录用户名密码为上一步注册 gogs 时所用的,登录成功进入主页:
在这里插入图片描述
这里会显示 gogs 中创建的代码仓库列表。

流水线配置

激活钩子

进入 drone 相应仓库页面,点击 ACTIVATE REPOSITORY 按钮,激活钩子:
在这里插入图片描述

激活后可以看到一些设置项,注意一定要把 Trusted 选型勾选,否则在后续编写钩子文件定义挂载操作时会出现下面错误:

Drone untrusted repositories cannot mount host volumes

在这里插入图片描述
进入到 gogs 中相应仓库,点击仓库设置:
在这里插入图片描述
可以看到管理的 Web 钩子:
在这里插入图片描述

编写 .drone.yml 钩子文件

在项目根目录下编写 .drone.yml 文件,用于定义触发 git 提交时的一系列操作,这里以文章开头描述的 kubemanagement-web 前端项目为例:

kind: pipeline
type: docker
name: kubemanagement-web-publishenvironment:GOOS: linuxGOARCH: amd64steps:- name: buildimage: plugins/dockervolumes:- name: hostspath: /etc/hosts- name: docker-capath: /etc/docker- name: dockersockpath: /var/run/docker.socksettings:username: adminpassword:# 注意在 drone 页面的 Secrets 添加对应配置from_secret: harbor_passwordrepo: harbor.kubemanagement.com/kubemanagement/kubemanagement-webregistry: harbor.kubemanagement.comtags:- v1.1- name: ssh commandsimage: appleboy/drone-sshsettings:host: 192.168.65.134username: rootpassword:# 注意在 drone 页面的 Secrets 添加对应配置from_secret: ssh_passwordport: 22script:#拉取镜像并重启 注意--需要提前在目标主机完成docker login- if [ $(docker ps -a | grep kubemanagement-web | wc -l) -ge 1 ];then docker stop kubemanagement-web && docker rm kubemanagement-web; fi- docker pull harbor.kubemanagement.com/kubemanagement/kubemanagement-web:v1.1- export BACKEND_HOST=http://192.168.65.134:8082/- docker run --name kubemanagement-web --restart=always -d -p8081:80 -e BACKEND_HOST=$BACKEND_HOST harbor.kubemanagement.com/kubemanagement/kubemanagement-web:v1.1
volumes:- name: hostshost:path: /etc/hosts- name: docker-cahost:path: /etc/docker- name: dockersockhost:path: /var/run/docker.sock

然后在 drone 页面的 Secrets 添加对应配置,这里按照 .drone.yml 文件中使用到的有 harbor_password 和 ssh_password,value 分别为对应平台的密码,我这里 harbor 的密码为123456,gogs 密码为 by6671715,分别添加即可:
在这里插入图片描述
编写好文件后,可进行代码提交。不过还需要查看 gogs 的配置文件中有没有将 ip 加入到白名单中,如果有多个 ip 则用 , 分隔。我这里 ip 为 192.168.65.134。具体配置如下:

  1. 首先查看 gogs 挂载的卷,查看 Mounts 里 Source 的内容(注意,时下图箭头指向的位置),配置文件即在此目录下:
docker inspect gogs

在这里插入图片描述

cd /var/lib/docker/volumes/gogs_gogsdata/_data
cd gogs/conf
vim app.ini
  1. 在 security 处加上配置:
LOCAL_NETWORK_ALLOWLIST = 192.168.65.134

在这里插入图片描述
3. 重启 gogs

# 返回存放 gogs 的 docker-compose.yml 的目录
docker-compose restart

如果没有配置,还继续提交代码的话,会出现下面情况:
在这里插入图片描述
在这里插入图片描述
可以看到,虽然提交成功,但点击仓库设置,进入管理 Web 钩子项,点击存在的钩子,如 http://192.168.65.134:9080/hook,可以看到:
在这里插入图片描述
钩子并没有生效,并报错:

Payload URL resolved to a local network address that is implicitly blocked.

提交代码,触发 Hooks

成功提交代码,并触发钩子后,gogs 页面中显示成功信息:
在这里插入图片描述
drone 页面信息如下:
在这里插入图片描述
点击进入,可以在 GRAPH VIEW 查看详细进度及日志:
在这里插入图片描述
可以看到目前处于 build 阶段。完全构建完成后,页面如下:
在这里插入图片描述
harbor 页面中对应的镜像版本也推送成功:
在这里插入图片描述

http://www.tj-hxxt.cn/news/45915.html

相关文章:

  • 网站开发素材企业邮箱注册
  • 百度做网站西安百度竞价开户
  • 网站开发论文优化设计四年级上册语文答案
  • 长春网站建设seo百度查找相似图片
  • 制作一号店网站搜索引擎的优化和推广
  • 网页设计教程读后感泉州全网营销优化
  • 延边有没有做网站的seo内部优化方案
  • asp.net网站本机访问慢网络营销包括几个部分
  • 长沙房地产网站设计seo排名点击器原理
  • wordpress 首页不显示文章seo中文
  • 美国做3d h动画的网站市场营销公司有哪些
  • 芜湖做网站多少钱自己建网站需要钱吗
  • 萍乡网站推广站长之家音效素材
  • 深圳网站建设公司pestl分析东莞网络推广营销
  • 环保公司网站架构怎么做seo网站推广建站服务商
  • 江苏省住房城乡建设厅网站知识付费小程序搭建
  • 餐饮网站制作安徽网站关键字优化
  • wordpress 开启评论seo1短视频网页入口营销
  • 移动网站建设方面seo搜索引擎优化介绍
  • 美橙云建站下载百度app到桌面
  • 企业产品展示网站源码网站快速排名服务商
  • 天元建设集团有限公司现状天津seo推广服务
  • 百度网页跳转app长沙优化网站
  • 顺义区住房和城乡建设委员会网站百度免费安装
  • 王爷休书请拿好合肥网络公司seo建站
  • 濮阳做网站推广seo服务 收费
  • 销售类网站模板上热门最火标题
  • 检察院网站建设链接买卖价格
  • 搭建网站的步骤有哪些如何做好关键词的优化
  • 辽宁工程建设信息网站seo的优缺点