From 29194ceb240a5fa14408433a33935f482c7e3233 Mon Sep 17 00:00:00 2001 From: bjkim Date: Mon, 29 Sep 2025 10:24:30 +0900 Subject: [PATCH] =?UTF-8?q?Dockerfile=20=EC=B5=9C=EC=8B=A0=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.dev | 2 +- .env.prod | 2 +- Dockerfile_queenclient => Dockerfile | 0 components.d.ts | 8 ------- default.conf | 8 +++++++ .../service/management/KubefliwRunService.ts | 24 +++++++++++++++++++ vite.config.mjs | 4 ++-- 7 files changed, 36 insertions(+), 12 deletions(-) rename Dockerfile_queenclient => Dockerfile (100%) create mode 100644 src/components/service/management/KubefliwRunService.ts diff --git a/.env.dev b/.env.dev index b0c7266..759edf0 100644 --- a/.env.dev +++ b/.env.dev @@ -1,3 +1,3 @@ NODE_ENV = "dev" -VITE_APP_API_SERVER_URL = "http://localhost:8080" +VITE_APP_API_SERVER_URL = "http://localhost:80" VITE_ROOT_PATH = "" \ No newline at end of file diff --git a/.env.prod b/.env.prod index ee3fe6a..fa9edf1 100644 --- a/.env.prod +++ b/.env.prod @@ -1,3 +1,3 @@ NODE_ENV = "prod" -VITE_APP_API_SERVER_URL = "http://cuuva.com:2480/autoflow-server-mgmt" +VITE_APP_API_SERVER_URL = "http://cuuva.com:2481/autoflow-server-mgmt" VITE_ROOT_PATH = "/autoflow" \ No newline at end of file diff --git a/Dockerfile_queenclient b/Dockerfile similarity index 100% rename from Dockerfile_queenclient rename to Dockerfile diff --git a/components.d.ts b/components.d.ts index 7daf980..f638129 100644 --- a/components.d.ts +++ b/components.d.ts @@ -10,10 +10,7 @@ declare module 'vue' { export interface GlobalComponents { AppFooter: typeof import('./src/components/AppFooter.vue')['default'] CompareComponent: typeof import('./src/components/templates/run/executions/CompareComponent.vue')['default'] - copy: typeof import('./src/components/templates/run/executions/ListComponent copy.vue')['default'] DatasetBaseDoalog: typeof import('./src/components/atoms/organisms/DatasetBaseDoalog.vue')['default'] - DatasetsBaseDoalog: typeof import('./src/components/atoms/organisms/DatasetsBaseDoalog.vue')['default'] - DatesetBaseDoalog: typeof import('./src/components/atoms/organisms/DatesetBaseDoalog.vue')['default'] DeploymentDialog: typeof import('./src/components/atoms/organisms/DeploymentDialog.vue')['default'] DrawerComponent: typeof import('./src/components/common/DrawerComponent.vue')['default'] ExecutionBaseDialog: typeof import('./src/components/atoms/organisms/ExecutionBaseDialog.vue')['default'] @@ -30,19 +27,14 @@ declare module 'vue' { IconSettingBtn: typeof import('./src/components/atoms/button/IconSettingBtn.vue')['default'] LayoutComponent: typeof import('./src/components/common/LayoutComponent.vue')['default'] ListComponent: typeof import('./src/components/templates/Datasets/ListComponent.vue')['default'] - ListComponentback: typeof import('./src/components/templates/run/executions/ListComponentback.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] SidebarHeader: typeof import('./src/components/common/SidebarHeader.vue')['default'] - StapComfigDialog: typeof import('./src/components/atoms/organisms/StapComfigDialog.vue')['default'] - StepComfigDialog: typeof import('./src/components/atoms/organisms/StepComfigDialog.vue')['default'] TrainingScriptBaseDoalog: typeof import('./src/components/atoms/organisms/TrainingScriptBaseDoalog.vue')['default'] ViewComponent: typeof import('./src/components/templates/Datasets/ViewComponent.vue')['default'] WorkflowDialog: typeof import('./src/components/atoms/organisms/WorkflowDialog.vue')['default'] WorkflowsBaseDialog: typeof import('./src/components/atoms/organisms/WorkflowsBaseDialog.vue')['default'] - WorkflowsCreateDialog: typeof import('./src/components/atoms/organisms/WorkflowsCreateDialog.vue')['default'] WorkflowsRunDialog: typeof import('./src/components/atoms/organisms/WorkflowsRunDialog.vue')['default'] - WorkflowsRunsDialog: typeof import('./src/components/atoms/organisms/WorkflowsRunsDialog.vue')['default'] WorkflowsUploadDialog: typeof import('./src/components/atoms/organisms/WorkflowsUploadDialog.vue')['default'] WorklfowStepBaseDialog: typeof import('./src/components/atoms/organisms/WorklfowStepBaseDialog.vue')['default'] } diff --git a/default.conf b/default.conf index 857bc0f..4235eaa 100644 --- a/default.conf +++ b/default.conf @@ -8,6 +8,14 @@ server { try_files $uri $uri/ /autoflow/index.html; } + # 백엔드 API 프록시 + location /autoflow-server-mgmt/ { + proxy_pass http://backend:8080/; # Docker Compose 서비스 이름 사용 + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } error_page 500 502 503 504 /50x.html; location = /50x.html { diff --git a/src/components/service/management/KubefliwRunService.ts b/src/components/service/management/KubefliwRunService.ts new file mode 100644 index 0000000..4125fe4 --- /dev/null +++ b/src/components/service/management/KubefliwRunService.ts @@ -0,0 +1,24 @@ +import { request } from "@/components/service/index"; + +export type KubeflowRunSearchParams = { + experimentId?: string; // 실험 ID + page?: number; // 페이지 번호 (0부터 시작) + size?: number; // 한 페이지당 출력 건수 + keyword?: string; // 공통 키워드 검색 + searchType?: string; // 검색 유형 (전체, 제목, 작성자 등) + startDate?: string; // 등록일자 검색 시작 (yyyy-MM-dd) + endDate?: string; // 등록일자 검색 종료 (yyyy-MM-dd) + sortField?: string; // 정렬 기준 필드명 + sortDirection?: "ASC" | "DESC"; // 정렬 방향 +}; +export const kubeflowRunService = { + getAll: () => { + return request.get("/api/kubeflow/runs", {}); + }, + singleData: (runId: number) => { + return request.get(`/api/kubeflow/runs/${runId}`, {}); + }, + search: (params?: KubeflowRunSearchParams) => { + return request.get("/api/kubeflow/runs", params); + }, +}; diff --git a/vite.config.mjs b/vite.config.mjs index 1fdc47b..3f08628 100644 --- a/vite.config.mjs +++ b/vite.config.mjs @@ -15,8 +15,8 @@ import { fileURLToPath, URL } from "node:url"; // https://vitejs.dev/config/ export default defineConfig({ // 배포할때는 주석 풀기 - // base: process.env.VITE_ROOT_PATH, - // base: "/autoflow/", + //base: process.env.VITE_ROOT_PATH, + base: "/autoflow/", plugins: [ VueRouter(), Layouts(),