mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2025-12-06 19:47:00 +03:00
Fix docker container
This commit is contained in:
@@ -1,13 +1,15 @@
|
|||||||
FROM node:16-alpine as builder
|
FROM node:16-alpine as builder
|
||||||
RUN apk add --no-cache --virtual .build-deps python make g++
|
RUN apk add --no-cache --virtual .build-deps python3 make g++
|
||||||
COPY package.json package-lock.json tsconfig.json entrypoint.sh ./
|
COPY package.json package-lock.json tsconfig.json entrypoint.sh ./
|
||||||
COPY src src
|
COPY src src
|
||||||
RUN npm ci && npm run tsc
|
RUN npm ci && npm run tsc
|
||||||
|
|
||||||
FROM node:16-alpine as app
|
FROM node:16-alpine as app
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
COPY --from=builder node_modules .
|
RUN apk add git
|
||||||
COPY --from=builder dist ./dist
|
COPY --from=builder ./node_modules ./node_modules
|
||||||
|
COPY --from=builder ./dist ./dist
|
||||||
|
COPY ./.git ./.git
|
||||||
COPY entrypoint.sh .
|
COPY entrypoint.sh .
|
||||||
COPY databases/*.sql databases/
|
COPY databases/*.sql databases/
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ echo 'Entrypoint script'
|
|||||||
cd /usr/src/app
|
cd /usr/src/app
|
||||||
|
|
||||||
# blank config, use defaults
|
# blank config, use defaults
|
||||||
cp /etc/sponsorblock/config.json . || cat <<EOF > config.json
|
cat <<EOF > config.json
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
node dist/index.js
|
node dist/src/index.js
|
||||||
@@ -9,8 +9,6 @@ const configFile = process.env.TEST_POSTGRES ? "ci.json"
|
|||||||
: "config.json";
|
: "config.json";
|
||||||
export const config: SBSConfig = JSON.parse(fs.readFileSync(configFile).toString("utf8"));
|
export const config: SBSConfig = JSON.parse(fs.readFileSync(configFile).toString("utf8"));
|
||||||
|
|
||||||
loadFromEnv(config);
|
|
||||||
migrate(config);
|
|
||||||
addDefaults(config, {
|
addDefaults(config, {
|
||||||
port: 8080,
|
port: 8080,
|
||||||
behindProxy: "X-Forwarded-For",
|
behindProxy: "X-Forwarded-For",
|
||||||
@@ -74,7 +72,7 @@ addDefaults(config, {
|
|||||||
maxRewardTimePerSegmentInSeconds: 600,
|
maxRewardTimePerSegmentInSeconds: 600,
|
||||||
poiMinimumStartTime: 2,
|
poiMinimumStartTime: 2,
|
||||||
postgres: {
|
postgres: {
|
||||||
enabled: null,
|
enabled: false,
|
||||||
user: "",
|
user: "",
|
||||||
host: "",
|
host: "",
|
||||||
password: "",
|
password: "",
|
||||||
@@ -120,7 +118,7 @@ addDefaults(config, {
|
|||||||
},
|
},
|
||||||
crons: null,
|
crons: null,
|
||||||
redis: {
|
redis: {
|
||||||
enabled: null,
|
enabled: false,
|
||||||
socket: {
|
socket: {
|
||||||
host: "",
|
host: "",
|
||||||
port: 0
|
port: 0
|
||||||
@@ -128,6 +126,8 @@ addDefaults(config, {
|
|||||||
disableOfflineQueue: true
|
disableOfflineQueue: true
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
loadFromEnv(config);
|
||||||
|
migrate(config);
|
||||||
|
|
||||||
// Add defaults
|
// Add defaults
|
||||||
function addDefaults(config: SBSConfig, defaults: SBSConfig) {
|
function addDefaults(config: SBSConfig, defaults: SBSConfig) {
|
||||||
@@ -153,25 +153,27 @@ function migrate(config: SBSConfig) {
|
|||||||
config.disableOfflineQueue = !redisConfig.enable_offline_queue;
|
config.disableOfflineQueue = !redisConfig.enable_offline_queue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (redisConfig.socket.host && redisConfig.enabled === null) {
|
if (redisConfig.socket?.host && redisConfig.enabled === undefined) {
|
||||||
redisConfig.enabled = true;
|
redisConfig.enabled = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config.postgres && config.postgres.user && config.postgres.enabled === null) {
|
if (config.postgres && config.postgres.user && config.postgres.enabled === undefined) {
|
||||||
config.postgres.enabled = true;
|
config.postgres.enabled = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadFromEnv(config: SBSConfig, prefix = "") {
|
function loadFromEnv(config: SBSConfig, prefix = "") {
|
||||||
for (const key in config) {
|
for (const key in config) {
|
||||||
|
const fullKey = (prefix ? `${prefix}_` : "") + key;
|
||||||
|
|
||||||
if (typeof config[key] === "object") {
|
if (typeof config[key] === "object") {
|
||||||
loadFromEnv(config[key], (prefix ? `${prefix}.` : "") + key);
|
loadFromEnv(config[key], fullKey);
|
||||||
} else if (process.env[key]) {
|
} else if (process.env[fullKey]) {
|
||||||
const value = process.env[key];
|
const value = process.env[fullKey];
|
||||||
if (isNumber(value)) {
|
if (isNumber(value)) {
|
||||||
config[key] = parseInt(value, 10);
|
config[key] = parseInt(value, 10);
|
||||||
} else if (isBoolean(value)) {
|
} else if (value.toLowerCase() === "true" || value.toLowerCase() === "false") {
|
||||||
config[key] = value === "true";
|
config[key] = value === "true";
|
||||||
} else {
|
} else {
|
||||||
config[key] = value;
|
config[key] = value;
|
||||||
|
|||||||
@@ -16,13 +16,13 @@ interface RedisSB {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let exportClient: RedisSB = {
|
let exportClient: RedisSB = {
|
||||||
get: () => new Promise((resolve, reject) => reject()),
|
get: () => new Promise((resolve) => resolve(null)),
|
||||||
set: () => new Promise((resolve, reject) => reject()),
|
set: () => new Promise((resolve) => resolve(null)),
|
||||||
setEx: () => new Promise((resolve, reject) => reject()),
|
setEx: () => new Promise((resolve) => resolve(null)),
|
||||||
del: () => new Promise((resolve, reject) => reject()),
|
del: () => new Promise((resolve) => resolve(null)),
|
||||||
increment: () => new Promise((resolve, reject) => reject()),
|
increment: () => new Promise((resolve) => resolve(null)),
|
||||||
sendCommand: () => new Promise((resolve, reject) => reject()),
|
sendCommand: () => new Promise((resolve) => resolve(null)),
|
||||||
quit: () => new Promise((resolve, reject) => reject()),
|
quit: () => new Promise((resolve) => resolve(null)),
|
||||||
};
|
};
|
||||||
|
|
||||||
if (config.redis?.enabled) {
|
if (config.redis?.enabled) {
|
||||||
|
|||||||
Reference in New Issue
Block a user