From c2d9709bddedd404aa839e5897866f05163c0032 Mon Sep 17 00:00:00 2001 From: Th0rOnDoR Date: Sat, 24 Aug 2024 09:10:51 +0200 Subject: [PATCH 1/2] add docker support --- Dockerfile | 11 +++++++++++ docker.sh | 5 +++++ run.sh | 2 +- 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 Dockerfile create mode 100755 docker.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ee8f222 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +FROM denoland/deno:debian +RUN mkdir /app + +WORKDIR /app + +COPY . ./ + +RUN chmod +x ./run.sh +RUN chmod +x ./src/bot.ts + +ENTRYPOINT [ "./run.sh" ] diff --git a/docker.sh b/docker.sh new file mode 100755 index 0000000..1fb4402 --- /dev/null +++ b/docker.sh @@ -0,0 +1,5 @@ +#!/bin/bash +docker stop ruche-manager +docker remove ruche-manager +docker build . --tag ruche-manager/ruche-manager:latest +docker run -d --name ruche-manager --restart unless-stopped ruche-manager/ruche-manager:latest diff --git a/run.sh b/run.sh index 1a0cc0f..80ad14f 100755 --- a/run.sh +++ b/run.sh @@ -6,4 +6,4 @@ if ! [ -f ./token ] then echo "ERROR : Needs discord API token in ./token" && exit fi -DEBUG=871777993922588712 ./src/bot.ts ./token +DEBUG=871777993922588712 ./src/bot.ts ./token \ No newline at end of file From 8b4de1be9d580a6552061c06342c13bfa12d3ae1 Mon Sep 17 00:00:00 2001 From: JOLIMAITRE Matthieu Date: Thu, 29 Aug 2024 20:34:29 +0200 Subject: [PATCH 2/2] move docker setup into packaging subdir --- .gitignore | 2 +- Dockerfile | 11 ----------- docker.sh | 5 ----- packaging/docker/.gitignore | 1 + packaging/docker/Dockerfile | 11 +++++++++++ packaging/docker/build.sh | 11 +++++++++++ packaging/docker/run.sh | 24 ++++++++++++++++++++++++ run.sh | 2 +- 8 files changed, 49 insertions(+), 18 deletions(-) delete mode 100644 Dockerfile delete mode 100755 docker.sh create mode 100644 packaging/docker/.gitignore create mode 100644 packaging/docker/Dockerfile create mode 100755 packaging/docker/build.sh create mode 100755 packaging/docker/run.sh diff --git a/.gitignore b/.gitignore index 6a2e95c..a777481 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ /target -/token \ No newline at end of file +/token diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index ee8f222..0000000 --- a/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM denoland/deno:debian -RUN mkdir /app - -WORKDIR /app - -COPY . ./ - -RUN chmod +x ./run.sh -RUN chmod +x ./src/bot.ts - -ENTRYPOINT [ "./run.sh" ] diff --git a/docker.sh b/docker.sh deleted file mode 100755 index 1fb4402..0000000 --- a/docker.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -docker stop ruche-manager -docker remove ruche-manager -docker build . --tag ruche-manager/ruche-manager:latest -docker run -d --name ruche-manager --restart unless-stopped ruche-manager/ruche-manager:latest diff --git a/packaging/docker/.gitignore b/packaging/docker/.gitignore new file mode 100644 index 0000000..35de6cf --- /dev/null +++ b/packaging/docker/.gitignore @@ -0,0 +1 @@ +/docker-ruche-manager.tgz diff --git a/packaging/docker/Dockerfile b/packaging/docker/Dockerfile new file mode 100644 index 0000000..2a30447 --- /dev/null +++ b/packaging/docker/Dockerfile @@ -0,0 +1,11 @@ +# syntax=docker/dockerfile:1 +FROM denoland/deno:1.46.1 + +USER deno + +COPY --from=project src /ruche-manager/src +COPY --from=project modules.conf /ruche-manager/modules.conf +WORKDIR /ruche-manager +RUN deno cache /ruche-manager/src/bot.ts + +ENTRYPOINT [ "/ruche-manager/src/bot.ts", "/token" ] diff --git a/packaging/docker/build.sh b/packaging/docker/build.sh new file mode 100755 index 0000000..1d56eb3 --- /dev/null +++ b/packaging/docker/build.sh @@ -0,0 +1,11 @@ +#!/bin/bash +set -e +cd "$(dirname "$(realpath "$0")")" + + +project_dir="$(dirname "$(dirname "$PWD")")" +tag="ruche-manager/ruche-manager:latest" + + +docker build --tag="$tag" --build-context=project="$project_dir" . +docker image save --output="docker-ruche-manager.tgz" "$tag" diff --git a/packaging/docker/run.sh b/packaging/docker/run.sh new file mode 100755 index 0000000..16f138e --- /dev/null +++ b/packaging/docker/run.sh @@ -0,0 +1,24 @@ +#!/bin/bash +set -e +cd "$(dirname "$(realpath "$0")")" + + +project_dir="$(dirname "$(dirname "$PWD")")" +tag="ruche-manager/ruche-manager:latest" +name="ruche-manager" + + +if ! [ -f "$project_dir/token" ] +then echo "ERROR : Needs discord API token in '$project_dir/token'" && exit +fi + +docker remove --force "$name" +docker build --tag="$tag" --build-context=project="$project_dir" . +docker run \ + --volume="$project_dir/token:/token" \ + --volume="$project_dir/local:/ruche-manager/local" \ + --user="$(id -u):$(id -g)" \ + --restart="unless-stopped" \ + --name="$name" \ + --detach \ + "$tag" diff --git a/run.sh b/run.sh index 80ad14f..1a0cc0f 100755 --- a/run.sh +++ b/run.sh @@ -6,4 +6,4 @@ if ! [ -f ./token ] then echo "ERROR : Needs discord API token in ./token" && exit fi -DEBUG=871777993922588712 ./src/bot.ts ./token \ No newline at end of file +DEBUG=871777993922588712 ./src/bot.ts ./token