fix: build app docker image

This commit is contained in:
wancat committed 2024-04-05 23:59:26 +08:00
1 parent e2b5bb3b70
commit 1f55ae09d6
11 files changed
+77 -53

No files matched your search

+2 -1
View File
@@ -1,3 +1,4 @@
**/node_modules **/node_modules
.git .git
**/dist **/dist
**/tsconfig.tsbuildinfo
+3 -2
View File
@@ -6,8 +6,9 @@ COPY package.json yarn.lock tsconfig.json ./
COPY packages/file-graph/package.json ./packages/file-graph/package.json COPY packages/file-graph/package.json ./packages/file-graph/package.json
COPY packages/utils/package.json ./packages/utils/package.json COPY packages/utils/package.json ./packages/utils/package.json
COPY packages/constants/package.json ./packages/constants/package.json COPY packages/constants/package.json ./packages/constants/package.json
COPY packages/models/package.json ./packages/models/package.json
COPY app/package.json ./app/package.json COPY app/package.json ./app/package.json
RUN yarn install RUN yarn install --frozen-lockfile
# Dev stage # Dev stage
FROM base as dev FROM base as dev
@@ -19,8 +20,8 @@ FROM base as build
COPY packages/file-graph ./packages/file-graph COPY packages/file-graph ./packages/file-graph
COPY packages/utils ./packages/utils COPY packages/utils ./packages/utils
COPY packages/constants ./packages/constants COPY packages/constants ./packages/constants
COPY packages/models ./packages/models
COPY app ./app COPY app ./app
RUN yarn workspace app build:refs
RUN yarn workspace app build RUN yarn workspace app build
# Production stage # Production stage
+3 -3
View File
@@ -5,8 +5,7 @@
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
"dev:docker": "API_TARGET=http://backend:3000 vite", "dev:docker": "API_TARGET=http://backend:3000 vite",
"build": "vite build", "build": "vue-tsc -b && vite build",
"build:refs": "tsc --build",
"preview": "vite preview" "preview": "vite preview"
}, },
"dependencies": { "dependencies": {
@@ -18,6 +17,7 @@
"@linux-odyssey/constants": "*", "@linux-odyssey/constants": "*",
"@linux-odyssey/file-graph": "*", "@linux-odyssey/file-graph": "*",
"@linux-odyssey/utils": "*", "@linux-odyssey/utils": "*",
"@linux-odyssey/models": "*",
"@types/dompurify": "^3.0.5", "@types/dompurify": "^3.0.5",
"axios": "^1.6.0", "axios": "^1.6.0",
"dompurify": "^3.0.6", "dompurify": "^3.0.6",
@@ -42,6 +42,6 @@
"tailwindcss": "^3.3.3", "tailwindcss": "^3.3.3",
"typescript": "^5.3.3", "typescript": "^5.3.3",
"vite": "^4.5.3", "vite": "^4.5.3",
"vue-tsc": "^1.8.25" "vue-tsc": "^2.0.10"
} }
} }
+1 -1
View File
@@ -1,4 +1,4 @@
<script setup> <script setup lang="ts">
defineProps({ defineProps({
url: { url: {
type: String, type: String,
+2 -1
View File
@@ -29,7 +29,7 @@ const handleLogout = async () => {
defineProps({ defineProps({
title: { title: {
type: String, type: String,
required: true, required: false,
}, },
}) })
@@ -37,6 +37,7 @@ onMounted(async () => {
try { try {
await loadUserProfile() await loadUserProfile()
} catch (err) { } catch (err) {
console.error(err)
toast.error('無法讀取使用者資料') toast.error('無法讀取使用者資料')
} }
}) })
File renamed without changes.
+1 -2
View File
@@ -1,8 +1,7 @@
import { reactive } from 'vue' import { reactive } from 'vue'
import { useToast } from 'vue-toastification' import { useToast } from 'vue-toastification'
import { FileGraph, FileObject } from '@linux-odyssey/file-graph' import { FileGraph, FileObject } from '@linux-odyssey/file-graph'
// eslint-disable-next-line import/no-relative-packages import { IQuest } from '@linux-odyssey/models'
import { IQuest } from '../../../packages/models/src/quest'
import api from '../utils/api' import api from '../utils/api'
import Socket from '../utils/socket' import Socket from '../utils/socket'
import SocketTerminal from '../utils/terminal' import SocketTerminal from '../utils/terminal'
+1 -1
View File
@@ -1,6 +1,6 @@
import { FileGraph } from '@linux-odyssey/file-graph' import { FileGraph } from '@linux-odyssey/file-graph'
// eslint-disable-next-line import/no-relative-packages // eslint-disable-next-line import/no-relative-packages
import { IResponse } from '../../packages/models/src/response' import { IResponse } from '@linux-odyssey/models'
export interface Task { export interface Task {
id: number id: number
+3 -3
View File
@@ -1,15 +1,15 @@
<script setup> <script setup lang="ts">
import ContactButton from '../components/ContactButton.vue' import ContactButton from '../components/ContactButton.vue'
import DynamicBackground from '../components/DynamicBackground.vue' import DynamicBackground from '../components/DynamicBackground.vue'
import { bugReportUrl, facebookUrl, githubUrl } from '../config' import { bugReportUrl, facebookUrl, githubUrl } from '../config'
const scrollToSection = (sectionId) => { const scrollToSection = (sectionId: string) => {
const section = document.getElementById(sectionId) const section = document.getElementById(sectionId)
if (section) { if (section) {
const container = document.querySelector('.overflow-y-auto') // Replace '.overflow-y-auto' with the appropriate class or selector for your container const container = document.querySelector('.overflow-y-auto') // Replace '.overflow-y-auto' with the appropriate class or selector for your container
if (container) { if (container) {
container.scrollTo({ container.scrollTo({
top: section.offsetTop - container.offsetTop, top: section.offsetTop,
behavior: 'smooth', // Add smooth scrolling behavior if desired behavior: 'smooth', // Add smooth scrolling behavior if desired
}) })
} }
+3 -3
View File
@@ -13,7 +13,6 @@
"isolatedModules": true, "isolatedModules": true,
"noEmit": true, "noEmit": true,
"jsx": "preserve", "jsx": "preserve",
"allowJs": true,
/* Linting */ /* Linting */
"strict": true, "strict": true,
@@ -21,10 +20,11 @@
"noUnusedParameters": true, "noUnusedParameters": true,
"noFallthroughCasesInSwitch": true "noFallthroughCasesInSwitch": true
}, },
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue", "src/**/*.js"], "include": ["src/**/*.ts", "src/**/*.vue"],
"references": [ "references": [
{ "path": "../packages/utils" }, { "path": "../packages/utils" },
{ "path": "../packages/constants" }, { "path": "../packages/constants" },
{ "path": "../packages/file-graph" } { "path": "../packages/file-graph" },
{ "path": "../packages/models" }
] ]
} }
+58 -36
View File
@@ -2396,26 +2396,26 @@
resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz#057d2ded94c4e71b94e9814f92dcd9306317aa46" resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz#057d2ded94c4e71b94e9814f92dcd9306317aa46"
integrity sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw== integrity sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==
"@volar/language-core@1.11.1", "@volar/language-core@~1.11.1": "@volar/language-core@2.2.0-alpha.5", "@volar/language-core@~2.2.0-alpha.5":
version "1.11.1" version "2.2.0-alpha.5"
resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-1.11.1.tgz#ecdf12ea8dc35fb8549e517991abcbf449a5ad4f" resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-2.2.0-alpha.5.tgz#c3be19b8a1743509802332d9da85c7647847cb1e"
integrity sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw== integrity sha512-RqERQ8HXxKC/HAGpDg7oG/Yg8n3rC3KEnYE3D7lcKIblU59JEZX73IWD/L3fdjzyeSglDWjL91iOblU8MuKEoA==
dependencies: dependencies:
"@volar/source-map" "1.11.1" "@volar/source-map" "2.2.0-alpha.5"
"@volar/source-map@1.11.1", "@volar/source-map@~1.11.1": "@volar/source-map@2.2.0-alpha.5":
version "1.11.1" version "2.2.0-alpha.5"
resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-1.11.1.tgz#535b0328d9e2b7a91dff846cab4058e191f4452f" resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-2.2.0-alpha.5.tgz#7c492f102c45dabb432f663895d287c158ab8ca4"
integrity sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg== integrity sha512-Lw1LOPgt1QGaQX9HstRTlBz5x6d5mGq9ZTFMeyWVr8/5YOv3hCU0ehtMTwmCiAX/ZyNSINFI01ODePy2hwy06A==
dependencies: dependencies:
muggle-string "^0.3.1" muggle-string "^0.4.0"
"@volar/typescript@~1.11.1": "@volar/typescript@~2.2.0-alpha.5":
version "1.11.1" version "2.2.0-alpha.5"
resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-1.11.1.tgz#ba86c6f326d88e249c7f5cfe4b765be3946fd627" resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-2.2.0-alpha.5.tgz#e42fb813f8164ecf1c18e7085821640df4950d87"
integrity sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ== integrity sha512-9UKZSDTcgvKMXz9TiU1kHmu3uMuH8+M7oZ6/CzBt8LvFda+ec/ZDcvBjQg2rU5EVn4d+YPYcqenkeHre3tO7Og==
dependencies: dependencies:
"@volar/language-core" "1.11.1" "@volar/language-core" "2.2.0-alpha.5"
path-browserify "^1.0.1" path-browserify "^1.0.1"
"@vue/compiler-core@3.4.19": "@vue/compiler-core@3.4.19":
@@ -2429,7 +2429,18 @@
estree-walker "^2.0.2" estree-walker "^2.0.2"
source-map-js "^1.0.2" source-map-js "^1.0.2"
"@vue/compiler-dom@3.4.19", "@vue/compiler-dom@^3.3.0": "@vue/compiler-core@3.4.21":
version "3.4.21"
resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.21.tgz#868b7085378fc24e58c9aed14c8d62110a62be1a"
integrity sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==
dependencies:
"@babel/parser" "^7.23.9"
"@vue/shared" "3.4.21"
entities "^4.5.0"
estree-walker "^2.0.2"
source-map-js "^1.0.2"
"@vue/compiler-dom@3.4.19":
version "3.4.19" version "3.4.19"
resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.19.tgz#2457e57e978f431e3b5fd11fc50a3e92d5816f9a" resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.19.tgz#2457e57e978f431e3b5fd11fc50a3e92d5816f9a"
integrity sha512-vm6+cogWrshjqEHTzIDCp72DKtea8Ry/QVpQRYoyTIg9k7QZDX6D8+HGURjtmatfgM8xgCFtJJaOlCaRYRK3QA== integrity sha512-vm6+cogWrshjqEHTzIDCp72DKtea8Ry/QVpQRYoyTIg9k7QZDX6D8+HGURjtmatfgM8xgCFtJJaOlCaRYRK3QA==
@@ -2437,6 +2448,14 @@
"@vue/compiler-core" "3.4.19" "@vue/compiler-core" "3.4.19"
"@vue/shared" "3.4.19" "@vue/shared" "3.4.19"
"@vue/compiler-dom@^3.4.0":
version "3.4.21"
resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.21.tgz#0077c355e2008207283a5a87d510330d22546803"
integrity sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==
dependencies:
"@vue/compiler-core" "3.4.21"
"@vue/shared" "3.4.21"
"@vue/compiler-sfc@3.4.19", "@vue/compiler-sfc@^3.3.13": "@vue/compiler-sfc@3.4.19", "@vue/compiler-sfc@^3.3.13":
version "3.4.19" version "3.4.19"
resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.19.tgz#33b238ded6d63e51f6a7048b742626f6007df129" resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.19.tgz#33b238ded6d63e51f6a7048b742626f6007df129"
@@ -2473,18 +2492,16 @@
eslint-config-prettier "^8.3.0" eslint-config-prettier "^8.3.0"
eslint-plugin-prettier "^4.0.0" eslint-plugin-prettier "^4.0.0"
"@vue/language-core@1.8.27": "@vue/language-core@2.0.10":
version "1.8.27" version "2.0.10"
resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-1.8.27.tgz#2ca6892cb524e024a44e554e4c55d7a23e72263f" resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-2.0.10.tgz#81d90f9644b95283a3881f3cb594bef7c43831fb"
integrity sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA== integrity sha512-3ULtX6hSPJNdNChi6aJ4FfdJNs5EShBLxnwLFTqrk2N1385WOwGVlbHeS2R6W9s9lXZ0+mC2bv4VlFSyeNPNGA==
dependencies: dependencies:
"@volar/language-core" "~1.11.1" "@volar/language-core" "~2.2.0-alpha.5"
"@volar/source-map" "~1.11.1" "@vue/compiler-dom" "^3.4.0"
"@vue/compiler-dom" "^3.3.0" "@vue/shared" "^3.4.0"
"@vue/shared" "^3.3.0"
computeds "^0.0.1" computeds "^0.0.1"
minimatch "^9.0.3" minimatch "^9.0.3"
muggle-string "^0.3.1"
path-browserify "^1.0.1" path-browserify "^1.0.1"
vue-template-compiler "^2.7.14" vue-template-compiler "^2.7.14"
@@ -2520,11 +2537,16 @@
"@vue/compiler-ssr" "3.4.19" "@vue/compiler-ssr" "3.4.19"
"@vue/shared" "3.4.19" "@vue/shared" "3.4.19"
"@vue/shared@3.4.19", "@vue/shared@^3.3.0": "@vue/shared@3.4.19":
version "3.4.19" version "3.4.19"
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.19.tgz#28105147811bcf1e6612bf1c9ab0c6d91ada019c" resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.19.tgz#28105147811bcf1e6612bf1c9ab0c6d91ada019c"
integrity sha512-/KliRRHMF6LoiThEy+4c1Z4KB/gbPrGjWwJR+crg2otgrf/egKzRaCPvJ51S5oetgsgXLfc4Rm5ZgrKHZrtMSw== integrity sha512-/KliRRHMF6LoiThEy+4c1Z4KB/gbPrGjWwJR+crg2otgrf/egKzRaCPvJ51S5oetgsgXLfc4Rm5ZgrKHZrtMSw==
"@vue/shared@3.4.21", "@vue/shared@^3.4.0":
version "3.4.21"
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.21.tgz#de526a9059d0a599f0b429af7037cd0c3ed7d5a1"
integrity sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==
abbrev@1: abbrev@1:
version "1.1.1" version "1.1.1"
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
@@ -6268,10 +6290,10 @@ ms@2.1.3, ms@^2.1.1:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
muggle-string@^0.3.1: muggle-string@^0.4.0:
version "0.3.1" version "0.4.1"
resolved "https://registry.yarnpkg.com/muggle-string/-/muggle-string-0.3.1.tgz#e524312eb1728c63dd0b2ac49e3282e6ed85963a" resolved "https://registry.yarnpkg.com/muggle-string/-/muggle-string-0.4.1.tgz#3b366bd43b32f809dc20659534dd30e7c8a0d328"
integrity sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg== integrity sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==
mz@^2.7.0: mz@^2.7.0:
version "2.7.0" version "2.7.0"
@@ -8166,13 +8188,13 @@ vue-toastification@^2.0.0-rc.5:
resolved "https://registry.yarnpkg.com/vue-toastification/-/vue-toastification-2.0.0-rc.5.tgz#92798604d806ae473cfb76ed776fae294280f8f8" resolved "https://registry.yarnpkg.com/vue-toastification/-/vue-toastification-2.0.0-rc.5.tgz#92798604d806ae473cfb76ed776fae294280f8f8"
integrity sha512-q73e5jy6gucEO/U+P48hqX+/qyXDozAGmaGgLFm5tXX4wJBcVsnGp4e/iJqlm9xzHETYOilUuwOUje2Qg1JdwA== integrity sha512-q73e5jy6gucEO/U+P48hqX+/qyXDozAGmaGgLFm5tXX4wJBcVsnGp4e/iJqlm9xzHETYOilUuwOUje2Qg1JdwA==
vue-tsc@^1.8.25: vue-tsc@^2.0.10:
version "1.8.27" version "2.0.10"
resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-1.8.27.tgz#feb2bb1eef9be28017bb9e95e2bbd1ebdd48481c" resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-2.0.10.tgz#1a0165de3440be1d084d436ebfdf276778373662"
integrity sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg== integrity sha512-XD9GuUuc40fdL6VrfbFS5PehxK6exhKGEkzCbMjT01HcJVNuJxXaPFIhMEfxn581eryX7LBygAH6YYqnXQGElA==
dependencies: dependencies:
"@volar/typescript" "~1.11.1" "@volar/typescript" "~2.2.0-alpha.5"
"@vue/language-core" "1.8.27" "@vue/language-core" "2.0.10"
semver "^7.5.4" semver "^7.5.4"
vue3-lottie@^3.2.0: vue3-lottie@^3.2.0: