diff --git a/.env.example b/.env.example index 36176a83..95a1cb98 100644 --- a/.env.example +++ b/.env.example @@ -1,6 +1,9 @@ -SERVICE_PORT=1081 VOLUME_BASE=/data/orion-visor-space/docker-volumes +SERVICE_PORT=1081 +SPRING_PROFILES_ACTIVE=prod +SECRET_KEY=uQeacXV8b3isvKLK + MYSQL_HOST=mysql MYSQL_PORT=3306 MYSQL_DATABASE=orion_visor @@ -11,5 +14,4 @@ MYSQL_ROOT_PASSWORD=Data@123456 REDIS_HOST=redis REDIS_PASSWORD=Data@123456 -SECRET_KEY=uQeacXV8b3isvKLK DEMO_MODE=false diff --git a/docker-compose-testing.yml b/docker-compose-testing.yml index 9a6ef02a..a34a6977 100644 --- a/docker-compose-testing.yml +++ b/docker-compose-testing.yml @@ -1,11 +1,13 @@ version: '3.3' + services: service: image: registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-service:latest privileged: true ports: - - 1081:80 + - 9200:9200 environment: + - SPRING_PROFILES_ACTIVE=prod - MYSQL_HOST=mysql - MYSQL_PORT=3306 - MYSQL_DATABASE=orion_visor @@ -19,18 +21,18 @@ services: - /data/orion-visor-space/docker-volumes/service/root-orion:/root/orion healthcheck: test: [ "CMD", "curl", "http://127.0.0.1:9200/orion-visor/api/server/bootstrap/health" ] - interval: 3s - timeout: 300s - retries: 200 - start_period: 3s + interval: 15s + timeout: 5s + retries: 10 + start_period: 15s depends_on: mysql: condition: service_healthy redis: condition: service_healthy - links: - - mysql - - redis + networks: + - orion-visor-net + mysql: image: registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-mysql:latest privileged: true @@ -44,13 +46,15 @@ services: volumes: - /data/orion-visor-space/docker-volumes/mysql/var-lib-mysql:/var/lib/mysql - /data/orion-visor-space/docker-volumes/mysql/var-lib-mysql-files:/var/lib/mysql-files - - /data/orion-visor-space/docker-volumes/mysql/etc-mysql:/etc/mysql healthcheck: test: [ "CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/3306" ] - interval: 3s - timeout: 60s + interval: 15s + timeout: 5s retries: 10 - start_period: 3s + start_period: 5s + networks: + - orion-visor-net + redis: image: registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-redis:latest privileged: true @@ -63,10 +67,13 @@ services: command: sh -c "redis-server /usr/local/redis.conf --requirepass $${REDIS_PASSWORD}" healthcheck: test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ] - interval: 3s - timeout: 60s + interval: 15s + timeout: 5s retries: 10 - start_period: 3s + start_period: 5s + networks: + - orion-visor-net + testing: build: context: ./docker/e2e @@ -75,5 +82,9 @@ services: depends_on: service: condition: service_healthy - links: - - service + networks: + - orion-visor-net + +networks: + orion-visor-net: + driver: bridge \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 712c0baf..99a4d4f0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,11 +1,22 @@ version: '3.3' + services: + ui: + image: registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-ui:latest + ports: + - ${SERVICE_PORT:-1081}:80 + restart: unless-stopped + depends_on: + service: + condition: service_healthy + networks: + - orion-visor-net + service: image: registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-service:latest privileged: true - ports: - - ${SERVICE_PORT:-1081}:80 environment: + - SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE:-prod} - MYSQL_HOST=${MYSQL_HOST:-mysql} - MYSQL_PORT=${MYSQL_PORT:-3306} - MYSQL_DATABASE=${MYSQL_DATABASE:-orion_visor} @@ -17,20 +28,21 @@ services: - DEMO_MODE=${DEMO_MODE:-false} volumes: - ${VOLUME_BASE:-/data/orion-visor-space/docker-volumes}/service/root-orion:/root/orion + restart: unless-stopped healthcheck: test: [ "CMD", "curl", "http://127.0.0.1:9200/orion-visor/api/server/bootstrap/health" ] interval: 15s - timeout: 300s - retries: 15 - start_period: 3s + timeout: 5s + retries: 10 + start_period: 15s depends_on: mysql: condition: service_healthy redis: condition: service_healthy - links: - - mysql - - redis + networks: + - orion-visor-net + mysql: image: registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-mysql:latest privileged: true @@ -44,13 +56,16 @@ services: volumes: - ${VOLUME_BASE:-/data/orion-visor-space/docker-volumes}/mysql/var-lib-mysql:/var/lib/mysql - ${VOLUME_BASE:-/data/orion-visor-space/docker-volumes}/mysql/var-lib-mysql-files:/var/lib/mysql-files - - ${VOLUME_BASE:-/data/orion-visor-space/docker-volumes}/mysql/etc-mysql:/etc/mysql + restart: unless-stopped healthcheck: test: [ "CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/3306" ] interval: 15s - timeout: 60s - retries: 15 - start_period: 3s + timeout: 5s + retries: 10 + start_period: 5s + networks: + - orion-visor-net + redis: image: registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-redis:latest privileged: true @@ -61,18 +76,28 @@ services: volumes: - ${VOLUME_BASE:-/data/orion-visor-space/docker-volumes}/redis/data:/data command: sh -c "redis-server /usr/local/redis.conf --requirepass $${REDIS_PASSWORD}" + restart: unless-stopped healthcheck: test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ] interval: 15s - timeout: 60s - retries: 15 - start_period: 3s + timeout: 5s + retries: 10 + start_period: 5s + networks: + - orion-visor-net + adminer: image: registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-adminer:latest ports: - 8081:8080 + environment: + - ADMINER_DEFAULT_SERVER=${MYSQL_HOST:-mysql} depends_on: mysql: condition: service_healthy - links: - - mysql + networks: + - orion-visor-net + +networks: + orion-visor-net: + driver: bridge \ No newline at end of file diff --git a/docker/e2e/testsuite.yaml b/docker/e2e/testsuite.yaml index bffd45ae..b4ea5899 100644 --- a/docker/e2e/testsuite.yaml +++ b/docker/e2e/testsuite.yaml @@ -2,7 +2,7 @@ # yaml-language-server: $schema=https://linuxsuren.github.io/api-testing/api-testing-schema.json name: orion-visor api: | - {{default "http://orion-visor-service:80" (env "SERVER")}} + {{default "http://orion-visor-service:9200" (env "SERVER")}} items: - name: login request: diff --git a/docker/push.sh b/docker/push.sh index a559d6fa..00dc505b 100644 --- a/docker/push.sh +++ b/docker/push.sh @@ -4,7 +4,9 @@ docker push registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-adminer:${ver docker push registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-mysql:${version} docker push registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-redis:${version} docker push registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-service:${version} +docker push registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-ui:${version} docker push registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-adminer:latest docker push registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-mysql:latest docker push registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-redis:latest docker push registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-service:latest +docker push registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-ui:latest diff --git a/docker/service/Dockerfile b/docker/service/Dockerfile index 8dbe19fa..1f2d39d2 100644 --- a/docker/service/Dockerfile +++ b/docker/service/Dockerfile @@ -1,4 +1,4 @@ -FROM nginx:alpine +FROM openjdk:8-jdk-alpine USER root WORKDIR /app # 系统时区 @@ -8,17 +8,11 @@ RUN \ sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \ apk update && \ apk add tzdata && \ - apk add dmidecode && \ - apk add openjdk8 + apk add dmidecode # 设置时区 RUN ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime && \ echo '${TZ}' > /etc/timezone -# 删除原 nginx 配置 -RUN rm -rf /etc/nginx/conf.d/* # 复制包 COPY ./orion-visor-launch.jar /app/app.jar -COPY ./dist /usr/share/nginx/html -COPY ./entrypoint.sh /app/entrypoint.sh -COPY ./nginx.conf /etc/nginx/conf.d # 启动 -ENTRYPOINT [ "sh", "/app/entrypoint.sh" ] +CMD ["java", "-jar", "/app/app.jar"] diff --git a/docker/service/build.sh b/docker/service/build.sh index 1adc7b36..dbbf4c37 100644 --- a/docker/service/build.sh +++ b/docker/service/build.sh @@ -1,9 +1,7 @@ #/bin/bash version=2.3.5 mv ../../orion-visor-launch/target/orion-visor-launch.jar ./orion-visor-launch.jar -mv ../../orion-visor-ui/dist ./dist docker build -t orion-visor-service:${version} . rm -rf ./orion-visor-launch.jar -rm -rf ./dist docker tag orion-visor-service:${version} registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-service:${version} docker tag orion-visor-service:${version} registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-service:latest diff --git a/docker/service/entrypoint.sh b/docker/service/entrypoint.sh deleted file mode 100644 index fc3cd826..00000000 --- a/docker/service/entrypoint.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -cd /app -nohup java -jar app.jar --spring.profiles.active=prod 2>&1 & -nginx -g 'daemon off;' \ No newline at end of file diff --git a/docker/ui/Dockerfile b/docker/ui/Dockerfile new file mode 100644 index 00000000..e8a9d09f --- /dev/null +++ b/docker/ui/Dockerfile @@ -0,0 +1,19 @@ +FROM nginx:alpine +USER root +# 系统时区 +ARG TZ=Asia/Shanghai +# 添加包 +RUN \ + sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \ + apk update && \ + apk add tzdata +# 设置时区 +RUN ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime && \ + echo '${TZ}' > /etc/timezone +# 删除原 nginx 配置 +RUN rm -rf /etc/nginx/conf.d/* +# 复制包 +COPY ./dist /usr/share/nginx/html +COPY ./nginx.conf /etc/nginx/conf.d +# 启动 +CMD ["nginx", "-g", "daemon off;"] diff --git a/docker/ui/build.sh b/docker/ui/build.sh new file mode 100644 index 00000000..4edb2751 --- /dev/null +++ b/docker/ui/build.sh @@ -0,0 +1,8 @@ +#/bin/bash +version=2.3.5 +mv ../../orion-visor-ui/dist ./dist +docker build -t orion-visor-ui:${version} . +rm -rf ./orion-visor-launch.jar +rm -rf ./dist +docker tag orion-visor-ui:${version} registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-ui:${version} +docker tag orion-visor-ui:${version} registry.cn-hangzhou.aliyuncs.com/orionsec/orion-visor-ui:latest diff --git a/docker/service/nginx.conf b/docker/ui/nginx.conf similarity index 100% rename from docker/service/nginx.conf rename to docker/ui/nginx.conf diff --git a/orion-visor-launch/src/test/java/org/dromara/visor/launch/ReplaceVersion.java b/orion-visor-launch/src/test/java/org/dromara/visor/launch/ReplaceVersion.java index ebf0cb2e..1169b987 100644 --- a/orion-visor-launch/src/test/java/org/dromara/visor/launch/ReplaceVersion.java +++ b/orion-visor-launch/src/test/java/org/dromara/visor/launch/ReplaceVersion.java @@ -39,19 +39,19 @@ import java.util.function.Function; */ public class ReplaceVersion { - private static final String TARGET_VERSION = "2.3.4"; + private static final String TARGET_VERSION = "2.3.5"; - private static final String REPLACE_VERSION = "2.3.5"; + private static final String REPLACE_VERSION = "2.3.6"; private static final String PATH = new File("").getAbsolutePath(); private static final String[] DOCKER_FILES = new String[]{ "docker/push.sh", "docker/adminer/build.sh", - "docker/adminer/build.sh", "docker/mysql/build.sh", "docker/redis/build.sh", "docker/service/build.sh", + "docker/ui/build.sh", "docker-compose.yml", "docker-compose-testing.yml" };