.containerfile
+8
-6
diff --git a/.containerfile b/.containerfile
index 8434a0e..beb0e02 100644
@@ -25,17 +25,19 @@ RUN dotnet build ./src/Api/Api.csproj --no-restore --configuration Release
RUN dotnet publish ./src/Api/Api.csproj --no-build --configuration Release --output /output
FROM node:26-alpine AS frontend-build
FROM ghcr.io/pnpm/pnpm:latest AS frontend-build
WORKDIR /app
COPY ./src/Frontend/package.json ./src/Frontend/package-lock.json ./
COPY ./package.json ./pnpm-lock.yaml ./pnpm-workspace.yaml ./
RUN npm ci
COPY ./src/Frontend/package.json ./src/Frontend/
COPY ./src/Frontend/ ./
RUN pnpm ci
RUN npm run build
COPY ./src/Frontend/ ./src/Frontend/
RUN pnpm -C ./src/Frontend build --emptyOutDir --outDir /output
FROM mcr.microsoft.com/dotnet/aspnet:11.0.0-preview.2 AS release
@@ -45,6 +47,6 @@ RUN apt-get update && apt-get install ffmpeg -y
COPY --from=build /output ./
COPY --from=frontend-build /app/dist ./wwwroot
COPY --from=frontend-build /output ./wwwroot
ENTRYPOINT ["dotnet", "./Slopper.Api.dll"]
package.json
+7
-0
diff --git a/package.json b/package.json
index 0c0303a..f3ceb49 100644
@@ -6,6 +6,13 @@
"engines": {
"node": "^26.1.0"
},
"devEngines": {
"runtime": {
"name": "node",
"version": "^26.1.0",
"onFail": "download"
}
},
"devDependencies": {
"@playwright/cli": "^0.1.13"
}
pnpm-lock.yaml
+129
-0
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 9f8dbc8..a248a67 100644
@@ -11,6 +11,9 @@ importers:
'@playwright/cli':
specifier: ^0.1.13
version: 0.1.13
node:
specifier: runtime:^26.1.0
version: runtime:26.1.0
src/Frontend:
dependencies:
@@ -30,6 +33,9 @@ importers:
'@vue/tsconfig':
specifier: ^0.9.1
version: 0.9.1(typescript@6.0.3)(vue@3.5.34(typescript@6.0.3))
node:
specifier: runtime:^26.1.0
version: runtime:26.1.0
typescript:
specifier: ~6.0.2
version: 6.0.3
@@ -480,6 +486,127 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
node@runtime:26.1.0:
resolution:
type: variations
variants:
- resolution:
archive: tarball
bin:
node: bin/node
integrity: sha256-Z4CKdYYg5snMB1tcnHdgCjeTx75tRhDHBmrmeU6R2ws=
type: binary
url: https://nodejs.org/download/release/v26.1.0/node-v26.1.0-aix-ppc64.tar.gz
targets:
- cpu: ppc64
os: aix
- resolution:
archive: tarball
bin:
node: bin/node
integrity: sha256-kQY/ZlwvXW5p5Pj8tm09R2vCeFrOgiZydL9Np4mYXOs=
type: binary
url: https://nodejs.org/download/release/v26.1.0/node-v26.1.0-darwin-arm64.tar.gz
targets:
- cpu: arm64
os: darwin
- resolution:
archive: tarball
bin:
node: bin/node
integrity: sha256-M1GbKKNS3maKsKKmQ2bbAypFy2KdU1P4bkV24ngPT88=
type: binary
url: https://nodejs.org/download/release/v26.1.0/node-v26.1.0-darwin-x64.tar.gz
targets:
- cpu: x64
os: darwin
- resolution:
archive: tarball
bin:
node: bin/node
integrity: sha256-/LTDOe73DJCcrnIJEAimSXJ44tD80iHAZTBoz06k8Mc=
type: binary
url: https://nodejs.org/download/release/v26.1.0/node-v26.1.0-linux-arm64.tar.gz
targets:
- cpu: arm64
os: linux
- resolution:
archive: tarball
bin:
node: bin/node
integrity: sha256-8+5yop09JaYmuuFnJmelALEsKE/PwA9dYWLjdi6/Fz8=
type: binary
url: https://nodejs.org/download/release/v26.1.0/node-v26.1.0-linux-ppc64le.tar.gz
targets:
- cpu: ppc64le
os: linux
- resolution:
archive: tarball
bin:
node: bin/node
integrity: sha256-bjgeSjs1PzNdKXq/5MfZSFRZJHUZ3xBEWxfMidjH96U=
type: binary
url: https://nodejs.org/download/release/v26.1.0/node-v26.1.0-linux-s390x.tar.gz
targets:
- cpu: s390x
os: linux
- resolution:
archive: tarball
bin:
node: bin/node
integrity: sha256-YtVVwyngXjYlEJ8uOotRlbNo1e84JmKSRp0y9jzZj/0=
type: binary
url: https://nodejs.org/download/release/v26.1.0/node-v26.1.0-linux-x64.tar.gz
targets:
- cpu: x64
os: linux
- resolution:
archive: zip
bin:
node: node.exe
integrity: sha256-C5E9Z8zvPn5i7c7NLa8x3l/ZVRk2UBzNPNXAJ62gie4=
prefix: node-v26.1.0-win-arm64
type: binary
url: https://nodejs.org/download/release/v26.1.0/node-v26.1.0-win-arm64.zip
targets:
- cpu: arm64
os: win32
- resolution:
archive: zip
bin:
node: node.exe
integrity: sha256-CJoCxMaHRRyfC38b/SUtroWnuiffApWhQJa9zJVv3JI=
prefix: node-v26.1.0-win-x64
type: binary
url: https://nodejs.org/download/release/v26.1.0/node-v26.1.0-win-x64.zip
targets:
- cpu: x64
os: win32
- resolution:
archive: tarball
bin:
node: bin/node
integrity: sha256-fO0dmDu7kkXJfbx94ylmPaSb2IrKb3uq7ZuvL2+sfTM=
type: binary
url: https://unofficial-builds.nodejs.org/download/release/v26.1.0/node-v26.1.0-linux-arm64-musl.tar.gz
targets:
- cpu: arm64
os: linux
libc: musl
- resolution:
archive: tarball
bin:
node: bin/node
integrity: sha256-4wLoIM6hAH3+aPX6qiPI7Vpwma1IzwaNbevz1JWPqu8=
type: binary
url: https://unofficial-builds.nodejs.org/download/release/v26.1.0/node-v26.1.0-linux-x64-musl.tar.gz
targets:
- cpu: x64
os: linux
libc: musl
version: 26.1.0
hasBin: true
path-browserify@1.0.1:
resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
@@ -1028,6 +1155,8 @@ snapshots:
nanoid@3.3.12: {}
node@runtime:26.1.0: {}
path-browserify@1.0.1: {}
pathe@2.0.3: {}
src/Frontend/package.json
+7
-0
diff --git a/src/Frontend/package.json b/src/Frontend/package.json
index 99bb469..db01145 100644
@@ -7,6 +7,13 @@
"engines": {
"node": "^26.1.0"
},
"devEngines": {
"runtime": {
"name": "node",
"version": "^26.1.0",
"onFail": "download"
}
},
"scripts": {
"dev": "vite",
"build": "vue-tsc -b && vite build",