diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..2457e1c --- /dev/null +++ b/.dockerignore @@ -0,0 +1,10 @@ +node_modules +npm-debug.log +Dockerfile +.dockerignore +.git +.gitignore +docker-compose.yml +.env +LICENSE +readme.md \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4f9135e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +FROM node:22-alpine AS builder +WORKDIR /app + +COPY package*.json ./ +RUN npm ci + +COPY . . +RUN npm run build + +FROM node:22-alpine +WORKDIR /app + +COPY package*.json ./ +RUN npm ci --omit=dev + +COPY --from=builder /app . + +CMD ["node", "dist/index.js"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..b8a2e29 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,8 @@ +serivces: + discord-bot: + build: . + container_name: protector_bot + restart: unless-stopped + tty: true + environment: + - TOKEN=${TOKEN} \ No newline at end of file diff --git a/package.json b/package.json index 3c21909..08cdac7 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,9 @@ "type": "commonjs", "main": "dist/index.js", "scripts": { - "dev": "nodemon src/index.ts" + "dev": "nodemon src/index.ts", + "build": "tsc", + "start": "node ." }, "devDependencies": { "dotenv": "^17.4.2", diff --git a/tsconfig.json b/tsconfig.json index 2e3c09f..8d792dd 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,8 +2,8 @@ // Visit https://aka.ms/tsconfig to read more about this file "compilerOptions": { // File Layout - // "rootDir": "./src", - // "outDir": "./dist", + "rootDir": "./src", + "outDir": "./dist", // Environment Settings // See also https://aka.ms/tsconfig/module "module": "nodenext",