Merge pull request 'master' (#69) from master into prod
Reviewed-on: http://git.feashow.cn/clay/mosr-web/pulls/69
This commit is contained in:
@@ -1,94 +0,0 @@
|
|||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: mosr-web
|
|
||||||
platform:
|
|
||||||
os: linux
|
|
||||||
arch: arm64
|
|
||||||
steps:
|
|
||||||
- name: build-package
|
|
||||||
image: node:16.20.0
|
|
||||||
volumes:
|
|
||||||
- name: cache
|
|
||||||
path: /drone/src/node_modules
|
|
||||||
commands:
|
|
||||||
- export CI=false
|
|
||||||
- mkdir -p /app/build/$DRONE_REPO_NAME
|
|
||||||
- rm -rf /app/build/$DRONE_REPO_NAME/*
|
|
||||||
- cp deployment.yml /app/build/$DRONE_REPO_NAME/
|
|
||||||
- cp Dockerfile /app/build/$DRONE_REPO_NAME/
|
|
||||||
- cp .dockerignore /app/build/$DRONE_REPO_NAME/
|
|
||||||
- cp default.conf /app/build/$DRONE_REPO_NAME/
|
|
||||||
- cp docker.sh /app/build/$DRONE_REPO_NAME/
|
|
||||||
- cp nginx.conf /app/build/$DRONE_REPO_NAME/
|
|
||||||
- npm -v
|
|
||||||
- mkdir -p ./node_modules
|
|
||||||
- export NODE_MODULES_PATH=`pwd`/node_modules
|
|
||||||
#- npm config set registry https://registry.npm.taobao.org
|
|
||||||
#- set NODE_OPTIONS=--openssl-legacy-provider
|
|
||||||
# - npm install
|
|
||||||
- npm run build
|
|
||||||
- ls /app/build/$DRONE_REPO_NAME/
|
|
||||||
- echo $NODE_MODULES_PATH
|
|
||||||
- cp -r dist /app/build/$DRONE_REPO_NAME
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- name: build-docker # 制作docker镜像
|
|
||||||
image: docker # 使用官方docker镜像
|
|
||||||
volumes: # 将容器内目录挂载到宿主机
|
|
||||||
- name: docker
|
|
||||||
path: /var/run/docker.sock # 挂载宿主机的docker
|
|
||||||
- name: config
|
|
||||||
path: /config
|
|
||||||
environment: # 获取到密文的docker用户名和密码
|
|
||||||
DOCKER_USERNAME:
|
|
||||||
from_secret: docker_username
|
|
||||||
DOCKER_PASSWORD:
|
|
||||||
from_secret: docker_password
|
|
||||||
REGISTRY:
|
|
||||||
from_secret: registry
|
|
||||||
REGISTRY_NAMESPACE:
|
|
||||||
from_secret: registry_namespace
|
|
||||||
commands: # 定义在Docker容器中执行的shell命令
|
|
||||||
- cat Dockerfile
|
|
||||||
- sed -i 's/$REGISTRY/'"$REGISTRY"'/' deployment.yml
|
|
||||||
- sed -i 's/$REGISTRY_NAMESPACE/'"$REGISTRY_NAMESPACE"'/' deployment.yml
|
|
||||||
- sed -i 's/$PROFILES/'"mosr-dm"'/' nginx.conf
|
|
||||||
- sed -i 's/$DRONE_REPO_NAME/'"$DRONE_REPO_NAME"'/' deployment.yml
|
|
||||||
- sed -i 's/$DRONE_COMMIT/'"$DRONE_COMMIT"'/' deployment.yml
|
|
||||||
- sed -i 's/$PORTS_NAME/'"dasdafas"'/' deployment.yml
|
|
||||||
- sed -i 's/$PORTS_PORT/'"8082"'/' deployment.yml
|
|
||||||
# docker登录,不能在脚本中登录,并且不能使用docker login -u -p
|
|
||||||
- echo $DOCKER_PASSWORD | docker login $REGISTRY --username $DOCKER_USERNAME --password-stdin
|
|
||||||
- chmod +x docker.sh
|
|
||||||
- cat docker.sh
|
|
||||||
- sh docker.sh
|
|
||||||
# 执行完脚本删除本次制作的docker镜像,避免多次后当前runner空间不足
|
|
||||||
- docker rmi -f $(docker images | grep $DRONE_REPO_NAME | awk '{print $3}')
|
|
||||||
|
|
||||||
|
|
||||||
- name: drone-rancher # rancher运行
|
|
||||||
image: bitnami/kubectl:1.26.13-debian-11-r1
|
|
||||||
volumes: # 将容器内目录挂载到宿主机
|
|
||||||
- name: config
|
|
||||||
path: /app/config # 将kubectl 配置文件挂载出来
|
|
||||||
commands: # 定义在Docker容器中执行的shell命令
|
|
||||||
# 将deployment中定义的变量替换为drone中的内置变量
|
|
||||||
- kubectl apply -f deployment.yml -n mosr-dm --kubeconfig=/app/config/base-taishan-kubectl.yml
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: cache
|
|
||||||
host:
|
|
||||||
path: /home/npm/mosr-web
|
|
||||||
- name: config # k8s对接的配置文件
|
|
||||||
host:
|
|
||||||
path: /home/kubect
|
|
||||||
- name: docker # 宿主机中的docker
|
|
||||||
host:
|
|
||||||
path: /var/run/docker.sock
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
branch:
|
|
||||||
- prod
|
|
||||||
event:
|
|
||||||
- push
|
|
||||||
67
.drone.yml
67
.drone.yml
@@ -5,6 +5,8 @@ platform:
|
|||||||
os: linux
|
os: linux
|
||||||
arch: arm64
|
arch: arm64
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
|
|
||||||
- name: build-package
|
- name: build-package
|
||||||
image: node:16.20.0
|
image: node:16.20.0
|
||||||
volumes:
|
volumes:
|
||||||
@@ -25,15 +27,14 @@ steps:
|
|||||||
- export NODE_MODULES_PATH=`pwd`/node_modules
|
- export NODE_MODULES_PATH=`pwd`/node_modules
|
||||||
#- npm config set registry https://registry.npm.taobao.org
|
#- npm config set registry https://registry.npm.taobao.org
|
||||||
#- set NODE_OPTIONS=--openssl-legacy-provider
|
#- set NODE_OPTIONS=--openssl-legacy-provider
|
||||||
# - npm install
|
# - npm install
|
||||||
- npm run build
|
- npm run build
|
||||||
- ls /app/build/$DRONE_REPO_NAME/
|
- ls /app/build/$DRONE_REPO_NAME/
|
||||||
- echo $NODE_MODULES_PATH
|
- echo $NODE_MODULES_PATH
|
||||||
- cp -r dist /app/build/$DRONE_REPO_NAME
|
- cp -r dist /app/build/$DRONE_REPO_NAME
|
||||||
|
|
||||||
|
|
||||||
|
- name: build-docker-prod # 制作docker镜像
|
||||||
- name: build-docker # 制作docker镜像
|
|
||||||
image: docker # 使用官方docker镜像
|
image: docker # 使用官方docker镜像
|
||||||
volumes: # 将容器内目录挂载到宿主机
|
volumes: # 将容器内目录挂载到宿主机
|
||||||
- name: docker
|
- name: docker
|
||||||
@@ -65,9 +66,47 @@ steps:
|
|||||||
- sh docker.sh
|
- sh docker.sh
|
||||||
# 执行完脚本删除本次制作的docker镜像,避免多次后当前runner空间不足
|
# 执行完脚本删除本次制作的docker镜像,避免多次后当前runner空间不足
|
||||||
- docker rmi -f $(docker images | grep $DRONE_REPO_NAME | awk '{print $3}')
|
- docker rmi -f $(docker images | grep $DRONE_REPO_NAME | awk '{print $3}')
|
||||||
|
when:
|
||||||
|
branch:
|
||||||
|
- prod
|
||||||
|
|
||||||
|
- name: build-docker-dm # 制作docker镜像
|
||||||
|
image: docker # 使用官方docker镜像
|
||||||
|
volumes: # 将容器内目录挂载到宿主机
|
||||||
|
- name: docker
|
||||||
|
path: /var/run/docker.sock # 挂载宿主机的docker
|
||||||
|
- name: config
|
||||||
|
path: /config
|
||||||
|
environment: # 获取到密文的docker用户名和密码
|
||||||
|
DOCKER_USERNAME:
|
||||||
|
from_secret: docker_username
|
||||||
|
DOCKER_PASSWORD:
|
||||||
|
from_secret: docker_password
|
||||||
|
REGISTRY:
|
||||||
|
from_secret: registry
|
||||||
|
REGISTRY_NAMESPACE:
|
||||||
|
from_secret: registry_namespace
|
||||||
|
commands: # 定义在Docker容器中执行的shell命令
|
||||||
|
- cat Dockerfile
|
||||||
|
- sed -i 's/$REGISTRY/'"$REGISTRY"'/' deployment.yml
|
||||||
|
- sed -i 's/$REGISTRY_NAMESPACE/'"$REGISTRY_NAMESPACE"'/' deployment.yml
|
||||||
|
- sed -i 's/$DRONE_REPO_NAME/'"$DRONE_REPO_NAME"'/' deployment.yml
|
||||||
|
- sed -i 's/$DRONE_COMMIT/'"$DRONE_COMMIT"'/' deployment.yml
|
||||||
|
- sed -i 's/$PORTS_NAME/'"dasdafas"'/' deployment.yml
|
||||||
|
- sed -i 's/$PORTS_PORT/'"8082"'/' deployment.yml
|
||||||
|
- sed -i 's/$PROFILES/'"mosr-dm"'/' nginx.conf
|
||||||
|
# docker登录,不能在脚本中登录,并且不能使用docker login -u -p
|
||||||
|
- echo $DOCKER_PASSWORD | docker login $REGISTRY --username $DOCKER_USERNAME --password-stdin
|
||||||
|
- chmod +x docker.sh
|
||||||
|
- cat docker.sh
|
||||||
|
- sh docker.sh
|
||||||
|
# 执行完脚本删除本次制作的docker镜像,避免多次后当前runner空间不足
|
||||||
|
- docker rmi -f $(docker images | grep $DRONE_REPO_NAME | awk '{print $3}')
|
||||||
|
when:
|
||||||
|
branch:
|
||||||
|
- dm
|
||||||
|
|
||||||
- name: drone-rancher # rancher运行
|
- name: drone-rancher-prod # rancher运行
|
||||||
image: bitnami/kubectl:1.26.13-debian-11-r1
|
image: bitnami/kubectl:1.26.13-debian-11-r1
|
||||||
volumes: # 将容器内目录挂载到宿主机
|
volumes: # 将容器内目录挂载到宿主机
|
||||||
- name: config
|
- name: config
|
||||||
@@ -75,6 +114,24 @@ steps:
|
|||||||
commands: # 定义在Docker容器中执行的shell命令
|
commands: # 定义在Docker容器中执行的shell命令
|
||||||
# 将deployment中定义的变量替换为drone中的内置变量
|
# 将deployment中定义的变量替换为drone中的内置变量
|
||||||
- kubectl apply -f deployment.yml -n mosr --kubeconfig=/app/config/base-taishan-kubectl.yml
|
- kubectl apply -f deployment.yml -n mosr --kubeconfig=/app/config/base-taishan-kubectl.yml
|
||||||
|
when:
|
||||||
|
branch:
|
||||||
|
- prod
|
||||||
|
|
||||||
|
|
||||||
|
- name: drone-rancher-dm # rancher运行
|
||||||
|
image: bitnami/kubectl:1.26.13-debian-11-r1
|
||||||
|
volumes: # 将容器内目录挂载到宿主机
|
||||||
|
- name: config
|
||||||
|
path: /app/config # 将kubectl 配置文件挂载出来
|
||||||
|
commands: # 定义在Docker容器中执行的shell命令
|
||||||
|
# 将deployment中定义的变量替换为drone中的内置变量
|
||||||
|
- kubectl apply -f deployment.yml -n mosr-dm --kubeconfig=/app/config/base-taishan-kubectl.yml
|
||||||
|
when:
|
||||||
|
branch:
|
||||||
|
- dm
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
- name: cache
|
- name: cache
|
||||||
@@ -87,8 +144,10 @@ volumes:
|
|||||||
host:
|
host:
|
||||||
path: /var/run/docker.sock
|
path: /var/run/docker.sock
|
||||||
|
|
||||||
|
load:
|
||||||
trigger:
|
trigger:
|
||||||
branch:
|
branch:
|
||||||
- prod
|
- prod
|
||||||
|
- dm
|
||||||
event:
|
event:
|
||||||
- push
|
- push
|
||||||
|
|||||||
1
src/assets/svg/sso.svg
Normal file
1
src/assets/svg/sso.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 5.4 KiB |
@@ -4,14 +4,14 @@
|
|||||||
:model="loginForm"
|
:model="loginForm"
|
||||||
ref="formInstance"
|
ref="formInstance"
|
||||||
:rules="rules"
|
:rules="rules"
|
||||||
label-width="65px"
|
label-width="70px"
|
||||||
>
|
>
|
||||||
<h3>科研管理平台</h3>
|
<h2>科研管理平台</h2>
|
||||||
<el-form-item prop="username" label="账号">
|
<el-form-item prop="username" label="账号">
|
||||||
<el-input v-model="loginForm.username" :prefix-icon="User"></el-input>
|
<el-input v-model="loginForm.username" :prefix-icon="User"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="password" label="密码">
|
<el-form-item prop="password" label="密码">
|
||||||
<el-input v-model="loginForm.password" type="password" :prefix-icon="Lock"></el-input>
|
<el-input v-model="loginForm.password" type="password" :prefix-icon="Lock" :show-password="true"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="code" label="验证码">
|
<el-form-item prop="code" label="验证码">
|
||||||
<div class="code">
|
<div class="code">
|
||||||
@@ -20,6 +20,12 @@
|
|||||||
<img :src="codeImg" alt="" @click="getCode">
|
<img :src="codeImg" alt="" @click="getCode">
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<div class="sso">
|
||||||
|
<a href="/api/auth/cas/login">
|
||||||
|
<svg-icon name="sso"/>
|
||||||
|
<span>统一身份认证</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button @click="handleLogin(formInstance)" type="primary">登录</el-button>
|
<el-button @click="handleLogin(formInstance)" type="primary">登录</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -98,26 +104,77 @@ onBeforeUnmount(() => {
|
|||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.login-box {
|
.login-box {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background-color: #4158D0;
|
background-color: #F3F3F3;
|
||||||
background-image: linear-gradient(43deg, #4158D0 0%, #C850C0 46%, #FFCC70 100%);
|
//background-image: linear-gradient(43deg, #4158D0 0%, #C850C0 46%, #FFCC70 100%);
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
|
.sso {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
margin-top: -5px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
|
||||||
|
a {
|
||||||
|
font-size: 16px;
|
||||||
|
color: #BEA266;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.el-form {
|
.el-form {
|
||||||
padding: 12px 15px;
|
padding: 12px 15px;
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
width: 25%;
|
width: 35%;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
|
|
||||||
h3 {
|
.el-form-item {
|
||||||
|
margin-bottom: 25px;
|
||||||
|
|
||||||
|
:deep(.el-form-item__label) {
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-input {
|
||||||
|
height: 40px;
|
||||||
|
|
||||||
|
:deep(.el-input__inner) {
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.el-input__suffix) {
|
||||||
|
.el-input__password {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.el-input__prefix ) {
|
||||||
|
.el-input__prefix-inner {
|
||||||
|
.el-icon {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin-bottom: 15px;
|
margin-bottom: 25px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-button {
|
.el-button {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
background-color: #BEA266;
|
||||||
|
border-color: #BEA266;
|
||||||
|
font-size: 17px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -134,7 +191,7 @@ onBeforeUnmount(() => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
img {
|
img {
|
||||||
height: 32px;
|
height: 40px;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user