build: fix plugins not working with docker

This commit is contained in:
Aleksi Lassila
2025-02-11 04:39:36 +02:00
parent 0d39a98038
commit 17906be3cd
13 changed files with 133 additions and 2037 deletions

View File

@@ -4,3 +4,7 @@ build
.idea
.env
.DS_Store
backend/plugins
!backend/plugins/torrent-stream.plugin
!backend/plugins/jellyfin.plugin

View File

@@ -11,9 +11,16 @@ COPY package-lock.json .
COPY backend/package.json ./backend/package.json
COPY backend/package-lock.json ./backend/package-lock.json
COPY backend/packages/reiverr-plugin/package.json ./backend/packages/reiverr-plugin/package.json
COPY backend/plugins/jellyfin.plugin/package.json ./backend/plugins/jellyfin.plugin/package.json
COPY backend/plugins/jellyfin.plugin/package-lock.json ./backend/plugins/jellyfin.plugin/package-lock.json
COPY backend/plugins/torrent-stream.plugin/package.json ./backend/plugins/torrent-stream.plugin/package.json
COPY backend/plugins/torrent-stream.plugin/package-lock.json ./backend/plugins/torrent-stream.plugin/package-lock.json
RUN npm i
RUN #npm ci --prefix backend --omit dev
RUN npm ci --prefix backend
COPY . .
@@ -29,6 +36,7 @@ ENV NODE_ENV=production
COPY --from=pre-production /usr/src/app/backend/dist ./dist
COPY --from=pre-production /usr/src/app/backend/node_modules ./node_modules
COPY --from=pre-production /usr/src/app/backend/packages ./packages
COPY backend/package.json .
COPY backend/package-lock.json .
@@ -36,6 +44,7 @@ COPY backend/package-lock.json .
#RUN npm ci --omit dev
RUN mkdir -p ./config
RUN mkdir -p ./plugins
RUN ln -s /usr/src/app/config /config
RUN ln -s /usr/src/app/plugins /plugins

2139
backend/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -92,7 +92,7 @@
"singleQuote": true
},
"workspaces": [
"plugins/reiverr-plugin",
"packages/reiverr-plugin",
"plugins/jellyfin.plugin",
"plugins/torrent-stream.plugin"
]

View File

@@ -16,4 +16,4 @@
"publishConfig": {
"registry": "https://npm.pkg.github.com/"
}
}
}

View File

@@ -12,7 +12,18 @@ import {
StreamCandidate,
} from './types';
/**
* PluginProvider is a class that provides a list of SourceProvider instances.
* This is so that you can provide multiple SourceProviders in a single plugin.
*
* The plugin should default export a class that extends PluginProvider.
*
* @see SourceProvider
*/
export class PluginProvider {
/**
* @returns {SourceProvider[]} A list of SourceProvider instances that the plugin provides.
*/
static getPlugins(): SourceProvider[] {
return [];
}

View File

@@ -9,4 +9,3 @@ services:
restart: unless-stopped
volumes:
- ./backend/config:/usr/src/app/config
- ./backend/plugins:/usr/src/app/plugins