mirror of
https://github.com/lifegpc/eh-downloader.git
synced 2026-06-06 05:38:44 +08:00
add docker detect
This commit is contained in:
2
.github/workflows/docker.yaml
vendored
2
.github/workflows/docker.yaml
vendored
@@ -40,5 +40,7 @@ jobs:
|
|||||||
push: true
|
push: true
|
||||||
tags: ${{ steps.meta.outputs.tags }}
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
labels: ${{ steps.meta.outputs.labels }}
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
|
cache-from: type=gha,scope=docker-cache
|
||||||
|
cache-to: type=gha,mode=max,scope=docker-cache
|
||||||
build-args: |
|
build-args: |
|
||||||
DENO_DEPLOYMENT_ID=${{ github.sha }}
|
DENO_DEPLOYMENT_ID=${{ github.sha }}
|
||||||
|
|||||||
@@ -85,16 +85,12 @@ COPY ./deno.json ./
|
|||||||
COPY ./import_map.json ./
|
COPY ./import_map.json ./
|
||||||
COPY ./LICENSE ./
|
COPY ./LICENSE ./
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
||||||
zlib1g \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
ENV LD_LIBRARY_PATH=/app/lib
|
ENV LD_LIBRARY_PATH=/app/lib
|
||||||
ENV PATH=/app/bin:$PATH
|
ENV PATH=/app/bin:$PATH
|
||||||
|
|
||||||
RUN deno task fetch && deno task server-build && mkdir -p ./thumbnails && chmod 777 ./thumbnails && mkdir -p ./downloads && chmod 777 ./downloads
|
RUN deno task fetch && deno task server-build && mkdir -p ./thumbnails && chmod 777 ./thumbnails && mkdir -p ./downloads && chmod 777 ./downloads && mkdir -p ./data && chmod 777 ./data
|
||||||
ENV DENO_DEPLOYMENT_ID=${DENO_DEPLOYMENT_ID}
|
ENV DENO_DEPLOYMENT_ID=${DENO_DEPLOYMENT_ID}
|
||||||
ENV DOCKER=1
|
ENV DOCKER=true
|
||||||
|
|
||||||
EXPOSE 8000
|
EXPOSE 8000
|
||||||
ENTRYPOINT deno task server
|
ENTRYPOINT deno task server
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { exists } from "std/fs/exists.ts";
|
import { exists } from "std/fs/exists.ts";
|
||||||
import { JsonValue, parse } from "std/jsonc/mod.ts";
|
import { JsonValue, parse } from "std/jsonc/mod.ts";
|
||||||
|
import { isDocker } from "./utils.ts";
|
||||||
|
|
||||||
export type ConfigType = {
|
export type ConfigType = {
|
||||||
cookies: boolean;
|
cookies: boolean;
|
||||||
@@ -81,6 +82,9 @@ export class Config {
|
|||||||
return this._return_string("cookies");
|
return this._return_string("cookies");
|
||||||
}
|
}
|
||||||
get db_path() {
|
get db_path() {
|
||||||
|
if (isDocker()) {
|
||||||
|
return this._return_string("db_path") || "./data";
|
||||||
|
}
|
||||||
return this._return_string("db_path");
|
return this._return_string("db_path");
|
||||||
}
|
}
|
||||||
get ua() {
|
get ua() {
|
||||||
@@ -114,7 +118,10 @@ export class Config {
|
|||||||
return this._return_bool("export_zip_jpn_title") || false;
|
return this._return_bool("export_zip_jpn_title") || false;
|
||||||
}
|
}
|
||||||
get hostname() {
|
get hostname() {
|
||||||
return this._return_string("hostname") || "0.0.0.0";
|
if (isDocker()) {
|
||||||
|
return this._return_string("hostname") || "0.0.0.0";
|
||||||
|
}
|
||||||
|
return this._return_string("hostname") || "127.0.0.1";
|
||||||
}
|
}
|
||||||
get meili_host() {
|
get meili_host() {
|
||||||
return this._return_string("meili_host");
|
return this._return_string("meili_host");
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
import { startServer } from "./server.ts";
|
import { startServer } from "./server.ts";
|
||||||
|
import { isDocker } from "./utils.ts";
|
||||||
|
|
||||||
await startServer("./config.json");
|
const configPath = isDocker() ? "./data/config.json" : "./config.json";
|
||||||
|
|
||||||
|
await startServer(configPath);
|
||||||
|
|||||||
7
utils.ts
7
utils.ts
@@ -270,3 +270,10 @@ export class TimeoutError extends Error {
|
|||||||
super("Timeout");
|
super("Timeout");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let _isDocker: boolean | undefined = undefined;
|
||||||
|
|
||||||
|
export function isDocker() {
|
||||||
|
if (_isDocker === undefined) _isDocker = parse_bool(Deno.env.get("DOCKER") ?? "false");
|
||||||
|
return _isDocker;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user