...
 
Commits (7)
    https://gitcode.net/metersphere1/installer/-/commit/0b456669c311b9d79c60f04595a476ae57cc0d8c ci: 使用内置的监控 2023-08-14T11:42:06+08:00 CaptainB bin@fit2cloud.com https://gitcode.net/metersphere1/installer/-/commit/6f7da20a43e12d4ac8e2dc6b1f6edf763fe7bf0f ci: 使用内置的监控 2023-08-14T21:59:12+08:00 CaptainB bin@fit2cloud.com https://gitcode.net/metersphere1/installer/-/commit/d461edfd4fbe11e2b0a0fc8ce4387cd31c2ea709 build: pipeline changed 2023-08-17T18:10:52+08:00 CaptainB bin@fit2cloud.com https://gitcode.net/metersphere1/installer/-/commit/0eef39e59bbbfa3fc75cc3522b215d377e3f7b4d build: jmeter version 2023-08-17T18:11:19+08:00 CaptainB bin@fit2cloud.com https://gitcode.net/metersphere1/installer/-/commit/3e0f1f63c5f36db7cebf0a18115644bf8b9a728d build: jmeter image 2023-08-17T18:12:57+08:00 CaptainB bin@fit2cloud.com https://gitcode.net/metersphere1/installer/-/commit/3ff696c069fe7423a81b804ebeec9333abb80a82 ci: 调整顺序 2023-08-17T18:57:13+08:00 CaptainB bin@fit2cloud.com https://gitcode.net/metersphere1/installer/-/commit/c47ce78744bd7359e03ad6de4fb80af7e2db06b0 ci: 默认swagger不开启,需要用户手动开启 2023-08-28T14:58:12+08:00 CaptainB bin@fit2cloud.com
...@@ -9,7 +9,7 @@ pipeline { ...@@ -9,7 +9,7 @@ pipeline {
} }
environment { environment {
IMAGE_PREFIX = "registry.cn-qingdao.aliyuncs.com/metersphere" IMAGE_PREFIX = "registry.cn-qingdao.aliyuncs.com/metersphere"
JMETER_TAG = "5.5-ms5-jdk17" JMETER_TAG = "5.6.2-release1"
} }
stages { stages {
stage('Preparation') { stage('Preparation') {
...@@ -33,7 +33,6 @@ pipeline { ...@@ -33,7 +33,6 @@ pipeline {
when { tag pattern: "^v.*?(?<!-arm64)\$", comparator: "REGEXP" } when { tag pattern: "^v.*?(?<!-arm64)\$", comparator: "REGEXP" }
steps { steps {
// Get some code from a GitHub repository // Get some code from a GitHub repository
dir('metersphere') { dir('metersphere') {
git credentialsId:'metersphere-registry', url: 'git@github.com:metersphere/metersphere.git', branch: "${BRANCH_NAME}" git credentialsId:'metersphere-registry', url: 'git@github.com:metersphere/metersphere.git', branch: "${BRANCH_NAME}"
} }
...@@ -61,7 +60,6 @@ pipeline { ...@@ -61,7 +60,6 @@ pipeline {
''' '''
} }
} }
stage('MS Domain SDK XPack') { stage('MS Domain SDK XPack') {
when { tag pattern: "^v.*?(?<!-arm64)\$", comparator: "REGEXP" } when { tag pattern: "^v.*?(?<!-arm64)\$", comparator: "REGEXP" }
steps { steps {
...@@ -103,24 +101,6 @@ pipeline { ...@@ -103,24 +101,6 @@ pipeline {
stage('Tag Other Repos') { stage('Tag Other Repos') {
when { tag pattern: "^v.*?(?<!-arm64)\$", comparator: "REGEXP" } when { tag pattern: "^v.*?(?<!-arm64)\$", comparator: "REGEXP" }
parallel { parallel {
stage('metersphere') {
steps {
script {
for (int i=0;i<10;i++) {
try {
echo "Waiting for scanning new created Job"
sleep 10
build job:"../metersphere/${RELEASE}", quietPeriod:10
break
} catch (Exception e) {
println(e)
println("Not building the job ../metersphere/${RELEASE} as it doesn't exist")
continue
}
}
}
}
}
stage('ui-test') { stage('ui-test') {
steps { steps {
dir('ui-test') { dir('ui-test') {
...@@ -226,14 +206,30 @@ pipeline { ...@@ -226,14 +206,30 @@ pipeline {
} }
} }
} }
stage('metersphere') {
steps {
script {
for (int i=0;i<10;i++) {
try {
echo "Waiting for scanning new created Job"
sleep 10
build job:"../metersphere/${RELEASE}", quietPeriod:10
break
} catch (Exception e) {
println(e)
println("Not building the job ../metersphere/${RELEASE} as it doesn't exist")
continue
}
}
}
}
}
} }
} }
stage('Modify install conf') { stage('Modify install conf') {
when { when {
anyOf { anyOf {
tag pattern: "^v.*", comparator: "REGEXP" tag pattern: "^v.*", comparator: "REGEXP"
tag "dev"
tag "main"
} }
} }
steps { steps {
...@@ -243,7 +239,7 @@ pipeline { ...@@ -243,7 +239,7 @@ pipeline {
#修改安装参数 #修改安装参数
sed -i -e "s#MS_IMAGE_TAG=.*#MS_IMAGE_TAG=${RELEASE}#g" install.conf sed -i -e "s#MS_IMAGE_TAG=.*#MS_IMAGE_TAG=${RELEASE}#g" install.conf
sed -i -e "s#MS_IMAGE_PREFIX=.*#MS_IMAGE_PREFIX=${IMAGE_PREFIX}#g" install.conf sed -i -e "s#MS_IMAGE_PREFIX=.*#MS_IMAGE_PREFIX=${IMAGE_PREFIX}#g" install.conf
sed -i -e "s#MS_JMETER_IMAGE=.*#MS_JMETER_IMAGE=\\\${MS_IMAGE_PREFIX}/jmeter-master:${JMETER_TAG}#g" install.conf sed -i -e "s#MS_JMETER_IMAGE=.*#MS_JMETER_IMAGE=\\\${MS_IMAGE_PREFIX}/jmeter:${JMETER_TAG}#g" install.conf
echo ${RELEASE}-b$BUILD_NUMBER > ./metersphere/version echo ${RELEASE}-b$BUILD_NUMBER > ./metersphere/version
''' '''
} }
...@@ -253,8 +249,6 @@ pipeline { ...@@ -253,8 +249,6 @@ pipeline {
when { when {
anyOf { anyOf {
tag pattern: "^v.*?(?<!-arm64)\$", comparator: "REGEXP"; tag pattern: "^v.*?(?<!-arm64)\$", comparator: "REGEXP";
tag "dev"
tag "main"
} }
} }
steps { steps {
...@@ -300,7 +294,7 @@ pipeline { ...@@ -300,7 +294,7 @@ pipeline {
steps { steps {
dir('installer') { dir('installer') {
script { script {
def images = ['jmeter-master:${JMETER_TAG}', def images = ['jmeter:${JMETER_TAG}',
'kafka:3.5.1', 'kafka:3.5.1',
'mysql:8.0.34', 'mysql:8.0.34',
'redis:7.0.12-alpine', 'redis:7.0.12-alpine',
...@@ -309,7 +303,6 @@ pipeline { ...@@ -309,7 +303,6 @@ pipeline {
'node-chromium:4.10.0', 'node-chromium:4.10.0',
'node-firefox:4.10.0', 'node-firefox:4.10.0',
'selenium-hub:4.10.0', 'selenium-hub:4.10.0',
'node-exporter:v1.5.0',
"metersphere:${RELEASE}", "metersphere:${RELEASE}",
"task-runner:${RELEASE}", "task-runner:${RELEASE}",
"result-hub:${RELEASE}"] "result-hub:${RELEASE}"]
...@@ -326,13 +319,12 @@ pipeline { ...@@ -326,13 +319,12 @@ pipeline {
docker save ${IMAGE_PREFIX}/metersphere:${RELEASE} \\ docker save ${IMAGE_PREFIX}/metersphere:${RELEASE} \\
${IMAGE_PREFIX}/task-runner:${RELEASE} \\ ${IMAGE_PREFIX}/task-runner:${RELEASE} \\
${IMAGE_PREFIX}/result-hub:${RELEASE} \\ ${IMAGE_PREFIX}/result-hub:${RELEASE} \\
${IMAGE_PREFIX}/jmeter-master:${JMETER_TAG} \\ ${IMAGE_PREFIX}/jmeter:${JMETER_TAG} \\
${IMAGE_PREFIX}/kafka:3.5.1 \\ ${IMAGE_PREFIX}/kafka:3.5.1 \\
${IMAGE_PREFIX}/mysql:8.0.34 \\ ${IMAGE_PREFIX}/mysql:8.0.34 \\
${IMAGE_PREFIX}/redis:7.0.12-alpine \\ ${IMAGE_PREFIX}/redis:7.0.12-alpine \\
${IMAGE_PREFIX}/minio:RELEASE.2023-08-09T23-30-22Z \\ ${IMAGE_PREFIX}/minio:RELEASE.2023-08-09T23-30-22Z \\
${IMAGE_PREFIX}/prometheus:v2.42.0 \\ ${IMAGE_PREFIX}/prometheus:v2.42.0 \\
${IMAGE_PREFIX}/node-exporter:v1.5.0 \\
${IMAGE_PREFIX}/node-firefox:4.10.0 \\ ${IMAGE_PREFIX}/node-firefox:4.10.0 \\
${IMAGE_PREFIX}/node-chromium:4.10.0 \\ ${IMAGE_PREFIX}/node-chromium:4.10.0 \\
${IMAGE_PREFIX}/selenium-hub:4.10.0 > metersphere.tar ${IMAGE_PREFIX}/selenium-hub:4.10.0 > metersphere.tar
......
...@@ -8,7 +8,7 @@ MS_IMAGE_PREFIX='registry.cn-qingdao.aliyuncs.com/metersphere' ...@@ -8,7 +8,7 @@ MS_IMAGE_PREFIX='registry.cn-qingdao.aliyuncs.com/metersphere'
## 镜像标签, MeterSphere 相关组件使用的 Docker 镜像标签 ## 镜像标签, MeterSphere 相关组件使用的 Docker 镜像标签
MS_IMAGE_TAG=dev MS_IMAGE_TAG=dev
## 性能测试使用的 JMeter 镜像 ## 性能测试使用的 JMeter 镜像
MS_JMETER_IMAGE=${MS_IMAGE_PREFIX}/jmeter-master:5.6-ms1-jdk17 MS_JMETER_IMAGE=${MS_IMAGE_PREFIX}/jmeter:5.6.2-release1
## 安装模式 allinone | server | task-runner | selenium-hub | middleware ## 安装模式 allinone | server | task-runner | selenium-hub | middleware
MS_INSTALL_MODE=allinone MS_INSTALL_MODE=allinone
## MeterSphere 主程序的 HTTP 服务监听端口 ## MeterSphere 主程序的 HTTP 服务监听端口
......
logger.sql.level=info logger.sql.level=info
eureka.client.service-url.defaultZone=http://eureka:8761/eureka/ springdoc.swagger-ui.enabled=false
spring.session.store-type=redis # PROPERTIES FOR METERSPHERE SERVER
# PROPERTIES FOR METERSPHERE SERVER
## DATABASE ## DATABASE
#spring.datasource.url=jdbc:mysql://${MS_MYSQL_HOST}:${MS_MYSQL_PORT}/${MS_MYSQL_DB}?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false #spring.datasource.url=jdbc:mysql://${MS_MYSQL_HOST}:${MS_MYSQL_PORT}/${MS_MYSQL_DB}?autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
#spring.datasource.username=${MS_MYSQL_USER} #spring.datasource.username=${MS_MYSQL_USER}
...@@ -17,7 +16,7 @@ spring.session.store-type=redis ...@@ -17,7 +16,7 @@ spring.session.store-type=redis
# PROPERTIES FOR METERSPHERE NODE CONTROLLER # PROPERTIES FOR METERSPHERE NODE CONTROLLER
## JMETER ## JMETER
#jmeter.image=registry.fit2cloud.com/metersphere/jmeter-master:0.0.7 #jmeter.image=registry.fit2cloud.com/metersphere/jmeter:0.0.7
## CAS ## CAS
......
...@@ -6,11 +6,17 @@ services: ...@@ -6,11 +6,17 @@ services:
deploy: deploy:
resources: resources:
limits: limits:
memory: ${MS_TASK_MEM_LIMIT:-1g} memory: ${MS_NC_MEM_LIMIT:-1g}
environment: environment:
FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS: 'true' FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS: 'true'
RUN_AS_NON_ROOT_USER: 'true' RUN_AS_NON_ROOT_USER: 'true'
command: sh -c 'sed -i "s/:101:/:${MS_DOCKER_GID:-101}:/g" /etc/group; /deployments/run-java.sh' command:
- sh
- -c
- |
node_exporter --path.procfs=/host/proc --path.sysfs=/host/sys &
sed -i "s/:101:/:${MS_DOCKER_GID:-101}:/g" /etc/group
/deployments/run-java.sh
ports: ports:
- ${MS_TASK_RUNNER_PORT}:6000 - ${MS_TASK_RUNNER_PORT}:6000
- ${MS_NODE_EXPORTER_PORT}:9100 - ${MS_NODE_EXPORTER_PORT}:9100
...@@ -23,30 +29,9 @@ services: ...@@ -23,30 +29,9 @@ services:
- ${MS_BASE}/metersphere/data/app:/opt/metersphere/data/app - ${MS_BASE}/metersphere/data/app:/opt/metersphere/data/app
- ${MS_BASE}/metersphere/logs/task-runner:/opt/metersphere/logs/task-runner - ${MS_BASE}/metersphere/logs/task-runner:/opt/metersphere/logs/task-runner
- /var/run/docker.sock:/var/run/docker.sock - /var/run/docker.sock:/var/run/docker.sock
restart: always
networks:
- ms-network
node-exporter:
image: ${MS_IMAGE_PREFIX}/node-exporter:v1.5.0
container_name: node-exporter
user: root
privileged: true
deploy:
resources:
limits:
memory: 128m
volumes:
- /proc:/host/proc:ro - /proc:/host/proc:ro
- /sys:/host/sys:ro - /sys:/host/sys:ro
- /:/rootfs:ro - /:/rootfs:ro
command:
- '--path.procfs=/host/proc'
- '--path.sysfs=/host/sys'
- '--collector.filesystem.ignored-mount-points=^/(sys|proc|dev|host|etc)($$|/)'
restart: always restart: always
healthcheck: networks:
test: [ "CMD", "nc", "-zv", "localhost", "9100" ] - ms-network
interval: 6s
timeout: 5s
retries: 50
network_mode: service:task-runner