中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > 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 倉庫,可執(zhí)行:

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 自動完成包括構建鏡像,創(chuàng)建服務,啟動服務,并關聯(lián)服務相關容器的一系列操作:

docker-compose up -d

結果如下:
在這里插入圖片描述
此時通過相應 ip:port 即可訪問頁面,示例頁面如下:
在這里插入圖片描述

使用 Gogs & Drone 持續(xù)集成

在這里插入圖片描述

Gogs

編寫 gogs 的 docker-compose.yml 文件

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

執(zhí)行:

docker-compose up -d

結果如下:
在這里插入圖片描述
通過 10880 端口訪問:
在這里插入圖片描述
數(shù)據庫根據需求來選,這里選擇最輕量級的 SQLite3 作為演示,其他配置項可以默認,由于編寫 docker-compose.yml 時做了端口映射,主要修改域名、端口號,如下:
在這里插入圖片描述
編寫完可選配置后點擊立即安裝,我這里就簡單設置管理員信息:
在這里插入圖片描述
gogs 的使用與 git 基本一致,簡單創(chuàng)建一個倉庫并提交信息:
在這里插入圖片描述

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"# 必須是管理員身份,方便后續(xù)的配置選項等操作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

部分參數(shù)說明:

  • DRONE_GOGS_SERVER : Gogs 服務地址(需要http://開頭)
  • DRONE_RPC_SECRET: Drone 服務密匙(runner 也要使用相同密鑰)
  • DRONE_SERVER_HOST: Drone 服務地址,外部可訪問的域名或IP地址
  • DRONE_SERVER_PROTO: Drone提供服務的協(xié)議類型,可選為 http 或 https
  • DRONE_USER_CREATE: 設置Drone管理員賬號(是Gogs平臺里的賬號)

執(zhí)行 :

docker-compose up -d

結果:
在這里插入圖片描述
瀏覽器訪問 ip:port:
在這里插入圖片描述
登錄用戶名密碼為上一步注冊 gogs 時所用的,登錄成功進入主頁:
在這里插入圖片描述
這里會顯示 gogs 中創(chuàng)建的代碼倉庫列表。

流水線配置

激活鉤子

進入 drone 相應倉庫頁面,點擊 ACTIVATE REPOSITORY 按鈕,激活鉤子:
在這里插入圖片描述

激活后可以看到一些設置項,注意一定要把 Trusted 選型勾選,否則在后續(xù)編寫鉤子文件定義掛載操作時會出現(xiàn)下面錯誤:

Drone untrusted repositories cannot mount host volumes

在這里插入圖片描述
進入到 gogs 中相應倉庫,點擊倉庫設置:
在這里插入圖片描述
可以看到管理的 Web 鉤子:
在這里插入圖片描述

編寫 .drone.yml 鉤子文件

在項目根目錄下編寫 .drone.yml 文件,用于定義觸發(fā) 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

如果沒有配置,還繼續(xù)提交代碼的話,會出現(xiàn)下面情況:
在這里插入圖片描述
在這里插入圖片描述
可以看到,雖然提交成功,但點擊倉庫設置,進入管理 Web 鉤子項,點擊存在的鉤子,如 http://192.168.65.134:9080/hook,可以看到:
在這里插入圖片描述
鉤子并沒有生效,并報錯:

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

提交代碼,觸發(fā) Hooks

成功提交代碼,并觸發(fā)鉤子后,gogs 頁面中顯示成功信息:
在這里插入圖片描述
drone 頁面信息如下:
在這里插入圖片描述
點擊進入,可以在 GRAPH VIEW 查看詳細進度及日志:
在這里插入圖片描述
可以看到目前處于 build 階段。完全構建完成后,頁面如下:
在這里插入圖片描述
harbor 頁面中對應的鏡像版本也推送成功:
在這里插入圖片描述

http://www.risenshineclean.com/news/60151.html

相關文章:

  • 網站優(yōu)化靠譜seoseo零基礎教學
  • 買外貿衣服的網站佛山抖音seo
  • 小紅書關鍵詞排名優(yōu)化網站優(yōu)化包括哪些內容
  • 宣傳冊設計與制作圖片網站排名優(yōu)化服務
  • 鄭州網站建設優(yōu)點如何注冊域名及網站
  • jsp 響應式網站模板下載seo網絡營銷外包
  • 鮮花網站建設主要內容it培訓機構排行榜
  • 做網站公司深圳國外產品推廣平臺
  • 網站建設要代碼有什么好處中國疫情最新數(shù)據
  • 做網站怎么自定義背景圖片管理系統(tǒng)
  • 做圖書網站的代碼熊貓seo實戰(zhàn)培訓
  • 重慶江津網站建設外包seo服務收費標準
  • 域名及網站建設實驗報告長尾關鍵詞快速排名軟件
  • 網站建設客戶需求表 文庫北京網站推廣營銷服務電話
  • 做網站什么都不懂 怎么做電工培訓機構
  • 短鏈接生成算法淄博seo網絡公司
  • 濟南旅游網站建設現(xiàn)狀sem和seo哪個工作好
  • 連云港網站 建設百度一下就知道
  • 手機網站開發(fā)者工具淄博seo網站推廣
  • 飼料公司網站建設方案如何制作一個宣傳網頁
  • 溫州外貿網站設計如何進行網站宣傳推廣
  • 為什么說做網站賺錢搜索排名影響因素
  • 蘇州網站建設科技有限公司html網頁制作
  • 上海做設計公司網站疫情最新政策最新消息
  • vs 2008網站做安裝包太原seo公司
  • 日本做受視頻網站互聯(lián)網廣告代理商
  • 校園網站如何建立網站關鍵詞排名優(yōu)化方法
  • 鄭州東區(qū)做網站的公司蘋果自研搜索引擎或為替代谷歌
  • 行政部建設公司網站值得收藏的五個搜索引擎
  • 網站維護 收錄湖南長沙最新疫情