animeic 2 years ago
parent
commit
bf7f14b349
5 changed files with 68 additions and 74 deletions
  1. 18 9
      Dockerfile
  2. 34 0
      build.sh
  3. 1 1
      config/config.go
  4. 15 15
      dao/dao-exam.go
  5. 0 49
      docker-compose.yml

+ 18 - 9
Dockerfile

@@ -1,13 +1,22 @@
-FROM alpine
+FROM alpine 
 
+RUN echo -e https://mirrors.ustc.edu.cn/alpine/v3.15/main > /etc/apk/repositories \
+  && cat /etc/apk/repositories \
+# 设置时区为上海
+  && apk add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
+  && echo "Asia/Shanghai" > /etc/timezone \
+  && apk del tzdata \
+# 解决apline 运行编译后的执行文件 not found错误
+# 由于alpine镜像使用的是musl libc而不是gnu libc,/lib64/ 是不存在的。但他们是兼容的,可以创建个软连接
+  && mkdir /lib64 \
+  && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2 \
+  && mkdir -p /root/oilseal-exam
 
-RUN  mkdir -p /project/file
-ADD   ./file /project/file
-ADD  ./exam /project
-ADD ./config-linux.yaml /project
-WORKDIR /project
+WORKDIR /root/oilseal-exam
+ADD   ./file ./file
+ADD  ./oilseal-exam  ./
+ADD ./config-linux.yaml ./
 
+EXPOSE 3001
 
-EXPOSE 3000
-
-ENTRYPOINT ["/project/exam"]
+ENTRYPOINT ["./oilseal-exam"]

+ 34 - 0
build.sh

@@ -0,0 +1,34 @@
+#!/bin/bash
+
+# 编译应用
+echo "building..."
+go build -o oilseal-exam ./cmd/
+
+# 命名镜像
+local_imge="oilseal-exam:v1.0.0"
+repository_image="registry.cn-chengdu.aliyuncs.com/infish/oilseal-exam:v1.0.0"
+
+# 删除本地已存在的镜像
+docker rmi $repository_image
+
+# 创建本地镜像
+docker build -t $local_imge .
+
+# 镜像标签
+docker tag $local_imge $repository_image
+
+# push到镜像仓库,需要登陆对应docker仓库账号
+docker push $repository_image
+
+# 删除编译的文件
+rm -rf oilseal-exam
+
+# 运行示例
+# docker run  -itd -p 20001:20001 --name comm-pay-service pay-service:1.0.0
+
+
+
+
+
+
+

+ 1 - 1
config/config.go

@@ -83,5 +83,5 @@ func init() {
 	InitDataBase()
 
 	// 3、初始化MQ
-	// InitMQ()
+	InitMQ()
 }

+ 15 - 15
dao/dao-exam.go

@@ -2,16 +2,16 @@ package dao
 
 import (
 	"database/sql"
-	"encoding/json"
 	"exam_system/config"
 	"exam_system/entity"
 
 	"exam_system/result"
 	"exam_system/utils"
 	"exam_system/vo"
-	"github.com/jmoiron/sqlx"
 	"strings"
 	"time"
+
+	"github.com/jmoiron/sqlx"
 )
 
 func ExamInfoList(page, size int, sort string, query map[string]interface{}, uid int) *result.Result {
@@ -215,13 +215,13 @@ func AddExam(e *entity.Exam) *result.Result {
 			}
 		}
 
-		var data []byte
-		data, err = json.Marshal(&e)
-		if err != nil {
-			return result.UNKNOW_ERROR.SetMsg(err.Error())
-		}
+		// var data []byte
+		// data, err = json.Marshal(&e)
+		// if err != nil {
+		// 	return result.UNKNOW_ERROR.SetMsg(err.Error())
+		// }
 		// 用来判断考试过期的
-		config.JS.PublishAsync("EXAMS.info", data)
+		// config.JS.PublishAsync("EXAMS.info", data)
 
 		return result.SuccessResult(examId)
 	})
@@ -426,13 +426,13 @@ func UpdateExam(e *entity.Exam) *result.Result {
 			}
 		}
 
-		var data []byte
-		data, err = json.Marshal(&e)
-		if err != nil {
-			return result.UNKNOW_ERROR.SetMsg(err.Error())
-		}
-		// 用来判断考试过期的
-		config.JS.PublishAsync("EXAMS.info", data)
+		// var data []byte
+		// data, err = json.Marshal(&e)
+		// if err != nil {
+		// 	return result.UNKNOW_ERROR.SetMsg(err.Error())
+		// }
+		// // 用来判断考试过期的
+		// config.JS.PublishAsync("EXAMS.info", data)
 
 		return result.SuccessResult(result.NewResultChange(affected))
 	})

+ 0 - 49
docker-compose.yml

@@ -1,49 +0,0 @@
-version: '3.8'
-# networks:
-#   network:
-#     ipam:
-#       driver: default
-#       config:
-#         - subnet: '177.7.0.0/16'
-
-services:
-  # exam:
-  #   restart: always
-  #   image: registry.cn-chengdu.aliyuncs.com/infish/exam:1.0.0
-  #   container_name: exam
-  #   ports:
-  #     - "3001:3000"
-  #   networks:
-  #     network:
-  #       # 在network网络下的容器内部的Ipv4地址
-  #       ipv4_address: 177.7.0.12
-  # mysql:
-  #   restart: always
-  #   image: mysql:8.0
-  #   container_name: mysql_exam
-  #   environment:
-  #     - MYSQL_ROOT_PASSWORD=zyhd2022
-  #     - MYSQL_DATABASE=exam
-  #     - TZ=Asia/Shanghai
-  #   volumes:
-  #     - ./datadir:/var/lib/mysql
-  #     - ./conf/my.cnf:/etc/my.cnf
-  #     - ./olddata/:/docker-entrypoint-initdb.d
-  #   ports:
-  #     - 3306:3306
-  #   networks:
-  #     network:
-  #       # 在network网络下的容器内部的Ipv4地址
-  #       ipv4_address: 177.7.0.13
-  nats:
-    restart: always
-    image: nats:latest
-    container_name: nats_exam
-    ports:
-      # -  4223:4222
-      -  14223:4222
-    command: "--js --http_port 8222"
-    # networks:
-    #   network:
-    #     # 在network网络下的容器内部的Ipv4地址
-    #     ipv4_address: 177.7.0.14