@@ -13,23 +13,25 @@ WORKDIR /go/release | |||||
# 把全部文件添加到/go/release目录 | # 把全部文件添加到/go/release目录 | ||||
ADD . . | ADD . . | ||||
# 编译:把main.go编译成可执行的二进制文件,命名为zyos | |||||
RUN GOOS=linux CGO_ENABLED=0 GOARCH=amd64 go build -tags netgo -ldflags="-s -w" -installsuffix cgo -o zyos main.go | |||||
# 编译:把main.go编译成可执行的二进制文件,命名为egg | |||||
RUN GOOS=linux CGO_ENABLED=0 GOARCH=amd64 go build -tags netgo -ldflags="-s -w" -installsuffix cgo -o egg main.go | |||||
FROM ubuntu:xenial as prod | FROM ubuntu:xenial as prod | ||||
LABEL maintainer="wuhanqin" | |||||
LABEL maintainer="dengbiao" | |||||
ENV TZ="Asia/Shanghai" | ENV TZ="Asia/Shanghai" | ||||
COPY static/html static/html | COPY static/html static/html | ||||
COPY docs docs | |||||
# 时区纠正 | # 时区纠正 | ||||
RUN rm -f /etc/localtime \ | RUN rm -f /etc/localtime \ | ||||
&& ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ | && ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ | ||||
&& echo "Asia/Shanghai" > /etc/timezone | && echo "Asia/Shanghai" > /etc/timezone | ||||
# 在build阶段复制可执行的go二进制文件app | # 在build阶段复制可执行的go二进制文件app | ||||
COPY --from=build /go/release/zyos ./zyos | |||||
COPY --from=build /go/release/egg ./egg | |||||
COPY --from=build /go/release/etc/cfg.yml /var/zyos/cfg.yml | |||||
COPY --from=build /go/release/etc/cfg.yml /var/egg/cfg.yml | |||||
# 启动服务 | # 启动服务 | ||||
CMD ["./zyos","-c","/var/zyos/cfg.yml"] | |||||
CMD ["./egg","-c","/var/egg/cfg.yml"] | |||||
@@ -2,9 +2,9 @@ module applet | |||||
go 1.19 | go 1.19 | ||||
replace code.fnuoos.com/EggPlanet/egg_models.git => E:/company/Egg/egg_models | |||||
replace code.fnuoos.com/EggPlanet/egg_system_rules.git => E:/company/Egg/egg_system_rules | |||||
//replace code.fnuoos.com/EggPlanet/egg_models.git => E:/company/Egg/egg_models | |||||
// | |||||
//replace code.fnuoos.com/EggPlanet/egg_system_rules.git => E:/company/Egg/egg_system_rules | |||||
require ( | require ( | ||||
github.com/boombuler/barcode v1.0.1 | github.com/boombuler/barcode v1.0.1 | ||||
@@ -34,11 +34,13 @@ require ( | |||||
) | ) | ||||
require ( | require ( | ||||
code.fnuoos.com/EggPlanet/egg_models.git v0.2.1-0.20241112135742-0200baa0a923 | |||||
code.fnuoos.com/EggPlanet/egg_system_rules.git v0.0.2 | |||||
code.fnuoos.com/EggPlanet/egg_models.git v0.0.2 | |||||
code.fnuoos.com/EggPlanet/egg_system_rules.git v0.0.3 | |||||
code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git v0.0.5 | code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git v0.0.5 | ||||
github.com/aliyun/aliyun-oss-go-sdk v3.0.2+incompatible | |||||
github.com/go-sql-driver/mysql v1.8.1 | github.com/go-sql-driver/mysql v1.8.1 | ||||
github.com/gocolly/colly v1.2.0 | github.com/gocolly/colly v1.2.0 | ||||
github.com/shopspring/decimal v1.3.1 | |||||
github.com/tidwall/gjson v1.14.1 | github.com/tidwall/gjson v1.14.1 | ||||
) | ) | ||||
@@ -47,7 +49,6 @@ require ( | |||||
github.com/BurntSushi/toml v1.4.0 // indirect | github.com/BurntSushi/toml v1.4.0 // indirect | ||||
github.com/KyleBanks/depth v1.2.1 // indirect | github.com/KyleBanks/depth v1.2.1 // indirect | ||||
github.com/PuerkitoBio/goquery v1.9.2 // indirect | github.com/PuerkitoBio/goquery v1.9.2 // indirect | ||||
github.com/aliyun/aliyun-oss-go-sdk v3.0.2+incompatible // indirect | |||||
github.com/andybalholm/cascadia v1.3.2 // indirect | github.com/andybalholm/cascadia v1.3.2 // indirect | ||||
github.com/antchfx/htmlquery v1.3.3 // indirect | github.com/antchfx/htmlquery v1.3.3 // indirect | ||||
github.com/antchfx/xmlquery v1.4.2 // indirect | github.com/antchfx/xmlquery v1.4.2 // indirect | ||||
@@ -85,7 +86,6 @@ require ( | |||||
github.com/pelletier/go-toml/v2 v2.2.1 // indirect | github.com/pelletier/go-toml/v2 v2.2.1 // indirect | ||||
github.com/pkg/errors v0.9.1 // indirect | github.com/pkg/errors v0.9.1 // indirect | ||||
github.com/saintfish/chardet v0.0.0-20230101081208-5e3ef4b5456d // indirect | github.com/saintfish/chardet v0.0.0-20230101081208-5e3ef4b5456d // indirect | ||||
github.com/shopspring/decimal v1.3.1 // indirect | |||||
github.com/streadway/amqp v1.0.0 // indirect | github.com/streadway/amqp v1.0.0 // indirect | ||||
github.com/syndtr/goleveldb v1.0.0 // indirect | github.com/syndtr/goleveldb v1.0.0 // indirect | ||||
github.com/temoto/robotstxt v1.1.2 // indirect | github.com/temoto/robotstxt v1.1.2 // indirect | ||||
@@ -2,25 +2,25 @@ kind: Deployment | |||||
apiVersion: apps/v1 | apiVersion: apps/v1 | ||||
# 元数据 | # 元数据 | ||||
metadata: | metadata: | ||||
name: advertisement | |||||
namespace: advertisement | |||||
name: egg-admin | |||||
namespace: egg | |||||
labels: | labels: | ||||
app: advertisement | |||||
app: egg-admin | |||||
annotations: | annotations: | ||||
kubesphere.io/creator: dengbiao | kubesphere.io/creator: dengbiao | ||||
kubesphere.io/description: advertisement | |||||
kubesphere.io/description: egg-admin | |||||
# deployment主要部分 | # deployment主要部分 | ||||
spec: | spec: | ||||
replicas: 1 | replicas: 1 | ||||
selector: | selector: | ||||
matchLabels: | matchLabels: | ||||
# 名称与上面的labels对应 | # 名称与上面的labels对应 | ||||
app: advertisement | |||||
app: egg-admin | |||||
template: | template: | ||||
metadata: | metadata: | ||||
labels: | labels: | ||||
# 名称与上面的matchLabels对应 | # 名称与上面的matchLabels对应 | ||||
app: advertisement | |||||
app: egg-admin | |||||
spec: | spec: | ||||
# 声明挂载卷(将外部已存在的pvc、config等挂载进来) | # 声明挂载卷(将外部已存在的pvc、config等挂载进来) | ||||
volumes: | volumes: | ||||
@@ -30,41 +30,41 @@ spec: | |||||
path: /etc/localtime | path: /etc/localtime | ||||
type: '' | type: '' | ||||
# 将前面创建的configMap也挂载进来 | # 将前面创建的configMap也挂载进来 | ||||
- name: advertisement-cfg | |||||
- name: egg-admin-cfg | |||||
configMap: | configMap: | ||||
# 这里的名字就是前面创建的configMap的名字 | # 这里的名字就是前面创建的configMap的名字 | ||||
name: advertisement-cfg | |||||
name: egg-admin-cfg | |||||
defaultMode: 420 | defaultMode: 420 | ||||
# pvc | # pvc | ||||
- name: advertisement # 在该部署中的名称,后面使用改名称挂载 | |||||
- name: egg-admin # 在该部署中的名称,后面使用改名称挂载 | |||||
persistentVolumeClaim: | persistentVolumeClaim: | ||||
claimName: advertisement # pvc的名称 | |||||
claimName: egg-admin # pvc的名称 | |||||
# Nginx配置 | # Nginx配置 | ||||
- name: advertisement-nginx | |||||
- name: egg-admin-nginx | |||||
configMap: | configMap: | ||||
name: advertisement-nginx # 外部configMap的名称 | |||||
name: egg-admin-nginx # 外部configMap的名称 | |||||
items: | items: | ||||
- key: go.conf | - key: go.conf | ||||
path: default.conf | path: default.conf | ||||
containers: | containers: | ||||
# 主容器 | # 主容器 | ||||
- name: advertisement-container | |||||
- name: egg-admin-container | |||||
# 镜像地址(提前打包好并推送的镜像仓库) | # 镜像地址(提前打包好并推送的镜像仓库) | ||||
image: 'registry.cn-shenzhen.aliyuncs.com/fnuoos-prd/advertisement:0.0.1' | |||||
image: 'registry.cn-shenzhen.aliyuncs.com/fnuoos-prd/egg-admin:0.0.1' | |||||
ports: | ports: | ||||
- name: ad-1002 | |||||
- name: egg-admin-4001 | |||||
# 容器端口号(注意与golang web server启动的端口一致) | # 容器端口号(注意与golang web server启动的端口一致) | ||||
containerPort: 1002 | |||||
containerPort: 4001 | |||||
protocol: TCP | protocol: TCP | ||||
# 将前面volume声明的需要用到的pvc、config挂载上来 | # 将前面volume声明的需要用到的pvc、config挂载上来 | ||||
volumeMounts: | volumeMounts: | ||||
- name: host-time | - name: host-time | ||||
readOnly: true | readOnly: true | ||||
mountPath: /etc/localtime | mountPath: /etc/localtime | ||||
- name: advertisement-cfg # 该名字对应前面volumes声明的名字 | |||||
- name: egg-admin-cfg # 该名字对应前面volumes声明的名字 | |||||
readOnly: true | readOnly: true | ||||
# 挂载到容器的哪个路径 | # 挂载到容器的哪个路径 | ||||
mountPath: /var/zyos | |||||
mountPath: /var/egg | |||||
imagePullPolicy: Always | imagePullPolicy: Always | ||||
# Nginx 容器 | # Nginx 容器 | ||||
- name: nginx | - name: nginx | ||||
@@ -79,9 +79,9 @@ spec: | |||||
readOnly: true | readOnly: true | ||||
mountPath: /etc/localtime | mountPath: /etc/localtime | ||||
# 存储卷 用于存放前端代码 | # 存储卷 用于存放前端代码 | ||||
- name: advertisement # 前面volumes声明的名称 | |||||
- name: egg-admin # 前面volumes声明的名称 | |||||
mountPath: /usr/share/nginx/html | mountPath: /usr/share/nginx/html | ||||
- name: advertisement-nginx # Nginx 配置 | |||||
- name: egg-admin-nginx # Nginx 配置 | |||||
readOnly: true | readOnly: true | ||||
mountPath: /etc/nginx/conf.d/default.conf | mountPath: /etc/nginx/conf.d/default.conf | ||||
subPath: default.conf | subPath: default.conf | ||||
@@ -0,0 +1,17 @@ | |||||
kind: Ingress | |||||
apiVersion: extensions/v1beta1 | |||||
metadata: | |||||
name: advertisement # ingress名称 | |||||
namespace: advertisement | |||||
annotations: | |||||
kubesphere.io/creator: dengbiao | |||||
spec: | |||||
rules: | |||||
- host: 123456.advertisement.dengbiao.top # 使用的域名 | |||||
http: | |||||
paths: | |||||
- path: / | |||||
pathType: ImplementationSpecific | |||||
backend: | |||||
serviceName: advertisement # 流量转发到的服务 | |||||
servicePort: 80 |
@@ -0,0 +1,20 @@ | |||||
apiVersion: networking.k8s.io/v1 | |||||
kind: Ingress | |||||
metadata: | |||||
annotations: | |||||
cert-manager.io/cluster-issuer: letsencrypt-prod | |||||
kubesphere.io/creator: dengbiao | |||||
name: advertisement | |||||
namespace: advertisement | |||||
spec: | |||||
rules: | |||||
- host: '*.adcms.zhiyingos.cn' | |||||
http: | |||||
paths: | |||||
- backend: | |||||
service: | |||||
name: advertisement | |||||
port: | |||||
number: 80 | |||||
path: / | |||||
pathType: ImplementationSpecific |