From 20a1a4f2682c48e2bbb7472cdebfcbc2907da581 Mon Sep 17 00:00:00 2001 From: bjkim Date: Wed, 22 Oct 2025 15:08:27 +0900 Subject: [PATCH] =?UTF-8?q?135=EC=84=9C=EB=B2=84=20=EB=B0=B0=ED=8F=AC=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.dev | 4 ++-- Dockerfile_queenclient | 9 +++++++++ components.d.ts | 14 +------------- default.conf | 19 +++++++++++++------ package-lock.json | 27 ++++----------------------- package.json | 3 +-- typed-router.d.ts | 2 -- vite.config.mjs | 5 +++-- 8 files changed, 33 insertions(+), 50 deletions(-) create mode 100644 Dockerfile_queenclient diff --git a/.env.dev b/.env.dev index 42b5c38..759edf0 100644 --- a/.env.dev +++ b/.env.dev @@ -1,3 +1,3 @@ -NODE_ENV = "development" -VITE_APP_API_SERVER_URL = "http://localhost:8080" +NODE_ENV = "dev" +VITE_APP_API_SERVER_URL = "http://localhost:80" VITE_ROOT_PATH = "" \ No newline at end of file diff --git a/Dockerfile_queenclient b/Dockerfile_queenclient new file mode 100644 index 0000000..4fe1aef --- /dev/null +++ b/Dockerfile_queenclient @@ -0,0 +1,9 @@ +FROM nginx:stable-alpine + +RUN apk --no-cache add tzdata && cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime + +COPY default.conf /etc/nginx/conf.d/default.conf + +COPY dist/. /usr/share/nginx/html/autoflow +EXPOSE 80 +ENTRYPOINT ["nginx", "-g", "daemon off;"] diff --git a/components.d.ts b/components.d.ts index 9b1d7a2..f638129 100644 --- a/components.d.ts +++ b/components.d.ts @@ -10,23 +10,15 @@ 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'] - CompareRunDialog: typeof import('./src/components/atoms/organisms/CompareRunDialog.vue')['default'] - copy: typeof import('./src/components/atoms/organisms/DatagroupBaseDoalog copy.vue')['default'] - DatagroupBaseDoalog: typeof import('./src/components/atoms/organisms/DatagroupBaseDoalog.vue')['default'] DatasetBaseDoalog: typeof import('./src/components/atoms/organisms/DatasetBaseDoalog.vue')['default'] DeploymentDialog: typeof import('./src/components/atoms/organisms/DeploymentDialog.vue')['default'] - DetailComponent: typeof import('./src/components/templates/run/experiment/DetailComponent.vue')['default'] DrawerComponent: typeof import('./src/components/common/DrawerComponent.vue')['default'] ExecutionBaseDialog: typeof import('./src/components/atoms/organisms/ExecutionBaseDialog.vue')['default'] - ExecutionsViewComponent: typeof import('./src/components/templates/run/executions/ExecutionsViewComponent.vue')['default'] ExperimentCreateDialog: typeof import('./src/components/atoms/organisms/ExperimentCreateDialog.vue')['default'] - ExperimentViewComponent: typeof import('./src/components/templates/run/experiment/ExperimentViewComponent.vue')['default'] - ExternalDatasetDialog: typeof import('./src/components/atoms/organisms/ExternalDatasetDialog.vue')['default'] HelloWorld: typeof import('./src/components/HelloWorld.vue')['default'] IconArrowDown: typeof import('./src/components/atoms/button/IconArrowDown.vue')['default'] IconArrowUp: typeof import('./src/components/atoms/button/IconArrowUp.vue')['default'] IconDeleteBtn: typeof import('./src/components/atoms/button/IconDeleteBtn.vue')['default'] - IconDeployBtn: typeof import('./src/components/atoms/button/IconDeployBtn.vue')['default'] IconDeployment: typeof import('./src/components/atoms/button/IconDeployment.vue')['default'] IconDownloadBtn: typeof import('./src/components/atoms/button/IconDownloadBtn.vue')['default'] IconInfoBtn: typeof import('./src/components/atoms/button/IconInfoBtn.vue')['default'] @@ -34,15 +26,11 @@ declare module 'vue' { IconRunBtn: typeof import('./src/components/atoms/button/IconRunBtn.vue')['default'] 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/datagroup/ListComponent.vue')['default'] - ListComponentback: typeof import('./src/components/templates/run/executions/ListComponentback.vue')['default'] + ListComponent: typeof import('./src/components/templates/Datasets/ListComponent.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] - RunSearchBar: typeof import('./src/components/templates/run/executions/RunSearchBar.vue')['default'] SidebarHeader: typeof import('./src/components/common/SidebarHeader.vue')['default'] - TrainingGroupBaseDoalog: typeof import('./src/components/atoms/organisms/TrainingGroupBaseDoalog.vue')['default'] TrainingScriptBaseDoalog: typeof import('./src/components/atoms/organisms/TrainingScriptBaseDoalog.vue')['default'] - TrainingScriptgroupBaseDoalog: typeof import('./src/components/atoms/organisms/TrainingScriptgroupBaseDoalog.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'] diff --git a/default.conf b/default.conf index 4235eaa..a7bf56b 100644 --- a/default.conf +++ b/default.conf @@ -10,12 +10,19 @@ server { # 백엔드 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; - } + proxy_pass http://backend:8080; + 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; + + # 타임아웃 연장 + proxy_connect_timeout 600s; + proxy_send_timeout 600s; + proxy_read_timeout 600s; + send_timeout 600s; + } + error_page 500 502 503 504 /50x.html; location = /50x.html { diff --git a/package-lock.json b/package-lock.json index 32292c9..a7f125a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,10 +13,9 @@ "axios": "^1.11.0", "dayjs": "^1.11.18", "monaco-editor": "^0.52.2", - "plotly.js-dist-min": "^3.1.1", + "plotly.js-dist-min": "^3.0.1", "prettier": "^3.5.3", "vue": "^3.5.13", - "vue3-plotly": "^0.0.7", "vuetify": "^3.8.1" }, "devDependencies": { @@ -4760,16 +4759,10 @@ "pathe": "^2.0.3" } }, - "node_modules/plotly.js-dist": { - "version": "2.35.3", - "resolved": "https://registry.npmjs.org/plotly.js-dist/-/plotly.js-dist-2.35.3.tgz", - "integrity": "sha512-dqB9+FUyBFZN04xWnZoYwaeeF4Jj9T/m0CHYmoozmPC3R4Dy0TRJsHgbRVLPxgYQqodzniVUj17+2wmJuGaZAg==", - "license": "MIT" - }, "node_modules/plotly.js-dist-min": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/plotly.js-dist-min/-/plotly.js-dist-min-3.1.1.tgz", - "integrity": "sha512-eyuiESylUXW4kaF+v9J2gy9eZ+YT2uSVLILM4w1Afxnuv9u4UX9OnZnHR1OdF9ybq4x7+9chAzWUUbQ6HvBb3g==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/plotly.js-dist-min/-/plotly.js-dist-min-3.0.1.tgz", + "integrity": "sha512-RReOqr6TfoHaTbVAoHR1UbTCOSRDsQ7Hbthd+3XAxOwaKmxCE3oejMhLG7urQSqWC65DAcSKV23kZd8e+7mG7w==", "license": "MIT" }, "node_modules/pluralize": { @@ -6459,18 +6452,6 @@ "dev": true, "license": "MIT" }, - "node_modules/vue3-plotly": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/vue3-plotly/-/vue3-plotly-0.0.7.tgz", - "integrity": "sha512-ydNOgbQlmg4Zp1etfUVsCKO4ejp/18oZ1pYr0b+pnhwYyx2BNZ+UyuK2PKKRwNdPSpohUBTDml3mhHiF54zVgQ==", - "license": "ISC", - "dependencies": { - "plotly.js-dist": "^2.24.2" - }, - "peerDependencies": { - "vue": "^3.2.21" - } - }, "node_modules/vuetify": { "version": "3.8.9", "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.8.9.tgz", diff --git a/package.json b/package.json index 3614e14..a9dfc4b 100644 --- a/package.json +++ b/package.json @@ -15,10 +15,9 @@ "axios": "^1.11.0", "dayjs": "^1.11.18", "monaco-editor": "^0.52.2", - "plotly.js-dist-min": "^3.1.1", + "plotly.js-dist-min": "^3.0.1", "prettier": "^3.5.3", "vue": "^3.5.13", - "vue3-plotly": "^0.0.7", "vuetify": "^3.8.1" }, "devDependencies": { diff --git a/typed-router.d.ts b/typed-router.d.ts index 116a2e4..e75a5c5 100644 --- a/typed-router.d.ts +++ b/typed-router.d.ts @@ -19,7 +19,6 @@ declare module 'vue-router/auto-routes' { */ export interface RouteNamedMap { '/': RouteRecordInfo<'/', '/', Record, Record>, - '/DatagroupView': RouteRecordInfo<'/DatagroupView', '/DatagroupView', Record, Record>, '/DatasetView': RouteRecordInfo<'/DatasetView', '/DatasetView', Record, Record>, '/DeploymentView': RouteRecordInfo<'/DeploymentView', '/DeploymentView', Record, Record>, '/ExecutionsView': RouteRecordInfo<'/ExecutionsView', '/ExecutionsView', Record, Record>, @@ -29,7 +28,6 @@ declare module 'vue-router/auto-routes' { '/MainView': RouteRecordInfo<'/MainView', '/MainView', Record, Record>, '/ProjectView': RouteRecordInfo<'/ProjectView', '/ProjectView', Record, Record>, '/SignupView': RouteRecordInfo<'/SignupView', '/SignupView', Record, Record>, - '/TrainingscriptgroupView': RouteRecordInfo<'/TrainingscriptgroupView', '/TrainingscriptgroupView', Record, Record>, '/TrainingScriptView': RouteRecordInfo<'/TrainingScriptView', '/TrainingScriptView', Record, Record>, '/UsersView': RouteRecordInfo<'/UsersView', '/UsersView', Record, Record>, '/WorkflowStepConfigView': RouteRecordInfo<'/WorkflowStepConfigView', '/WorkflowStepConfigView', Record, Record>, diff --git a/vite.config.mjs b/vite.config.mjs index b3e6abf..3f08628 100644 --- a/vite.config.mjs +++ b/vite.config.mjs @@ -14,8 +14,9 @@ import { fileURLToPath, URL } from "node:url"; // https://vitejs.dev/config/ export default defineConfig({ - base: - process.env.NODE_ENV === "production" ? process.env.VITE_ROOT_PATH : "/", + // 배포할때는 주석 풀기 + //base: process.env.VITE_ROOT_PATH, + base: "/autoflow/", plugins: [ VueRouter(), Layouts(),