From ed668a943223a174f49e68728d27a85290d6d1d1 Mon Sep 17 00:00:00 2001 From: Michael Goodnow Date: Wed, 7 Oct 2020 22:19:59 -0400 Subject: [PATCH] Add dockerfile --- .dockerignore | 3 +++ Dockerfile | 9 +++++++++ src/configuration.js | 9 +++++++-- 3 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..43923d086 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +node_modules +npm-debug.log +output diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..1c3a253ce --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM node:12 +WORKDIR /usr/src/app +COPY package*.json ./ +RUN npm ci --only=production +COPY . . +RUN npm link +EXPOSE 2468 +ENV CONFIG_DIR=/config +CMD [ "cross-seed", "daemon" ] diff --git a/src/configuration.js b/src/configuration.js index 2845cc4b0..af4f79f45 100644 --- a/src/configuration.js +++ b/src/configuration.js @@ -20,10 +20,15 @@ function createAppDir() { return fs.mkdirSync(appDir(), { recursive: true }); } -function generateConfig() { +function generateConfig(force = false) { createAppDir(); const dest = path.join(appDir(), "config.js"); - fs.copyFileSync(path.join(__dirname, "config.template.js"), dest); + const configPath = path.join(__dirname, "config.template.js"); + if (!force && fs.existsSync(configPath)) { + console.log("Configuration file already exists. Override with --force"); + return dest; + } + fs.copyFileSync(configPath, dest); console.log("Configuration file created at", chalk.yellow.bold(dest)); return dest; }