From c0c719f7286508251572bdc2c006919d9b4c5460 Mon Sep 17 00:00:00 2001 From: Matthias Bilger Date: Mon, 20 Jan 2020 10:31:11 +0100 Subject: [PATCH 1/5] Added docker container file --- .drone.yml | 29 +++++++++++++++++++++++++++++ Dockerfile | 17 +++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 .drone.yml create mode 100644 Dockerfile diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..9ee9a43 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,29 @@ +kind: pipeline +name: default + +steps: + - name: docker + image: plugins/docker + settings: + registry: registry.d1v3.de + repo: registry.d1v3.de/dnd-spellcard-builder + username: + from_secret: docker_username + password: + from_secret: docker_password + tags: latest + auto_tag: true +--- +kind: secret +name: docker_username +get: + path: kv/data/drone/docker + name: username +--- + +kind: secret +name: docker_password +get: + path: kv/data/drone/docker + name: token + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..7cb95e2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +FROM python:3.8-alpine as base + +FROM base as builder +RUN mkdir /install +WORKDIR /install +COPY requirements.txt /requirements.txt +RUN pip install --install-option="--prefix=/install" -r /requirements.txt + +FROM base +COPY --from=builder /install /usr/local +RUN addgroup -S appgroup && adduser -S appuser -G appgroup + +WORKDIR /home/appuser +USER appuser + +COPY ./ +ENTRYPOINT ["python", "./genspells.py"] From 8f49a9f77a3da859d7603d52b98538a8fd2c6deb Mon Sep 17 00:00:00 2001 From: Matthias Bilger Date: Mon, 20 Jan 2020 10:34:37 +0100 Subject: [PATCH 2/5] fixed COPY in Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 7cb95e2..6fff426 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,5 +13,5 @@ RUN addgroup -S appgroup && adduser -S appuser -G appgroup WORKDIR /home/appuser USER appuser -COPY ./ +COPY ./ ./ ENTRYPOINT ["python", "./genspells.py"] From 2511dd42e1c7099b7eef0108f3a8660f1a9091d5 Mon Sep 17 00:00:00 2001 From: Matthias Bilger Date: Mon, 20 Jan 2020 10:35:08 +0100 Subject: [PATCH 3/5] Black formatted --- genspells.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/genspells.py b/genspells.py index de7cfaf..2489e1b 100644 --- a/genspells.py +++ b/genspells.py @@ -59,9 +59,11 @@ def main(): spells.update(json.load(jf)) if args.characterclass != "All": - spells = dict(filter(lambda x: args.characterclass in x[1]["classes"], spells.items())) + spells = dict( + filter(lambda x: args.characterclass in x[1]["classes"], spells.items()) + ) - spells = dict(sorted(spells.items(), key=spell_sorter(args.sort.split(',')))) + spells = dict(sorted(spells.items(), key=spell_sorter(args.sort.split(",")))) pages = generate_pages(spells, args.twosided) filename = args.output if args.output is not None else args.characterclass write_doc(filename, pages) @@ -75,8 +77,8 @@ def write_doc(filename, pages): def generate_pages(spells, twosided=False): spellpages = [] back = get_template("spellcard_back").render() - for i in range(0, len(spells)+9, 10): - spellpages.append(generate_page(list(spells.items())[i:i+10])) + for i in range(0, len(spells) + 9, 10): + spellpages.append(generate_page(list(spells.items())[i : i + 10])) if twosided: spellpages.append(back) if not twosided: @@ -109,5 +111,6 @@ def latex_format(text): text = re.sub(r"([0-9]+)\sm", r"\1~m", text) return text + if __name__ == "__main__": main() From 3c1702bb6a911230d874e104b685f7b9acd170df Mon Sep 17 00:00:00 2001 From: Matthias Bilger Date: Mon, 20 Jan 2020 13:04:24 +0100 Subject: [PATCH 4/5] generic template path --- genspells.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/genspells.py b/genspells.py index 2489e1b..407c750 100644 --- a/genspells.py +++ b/genspells.py @@ -23,7 +23,9 @@ def get_template(name): line_comment_prefix="%#", trim_blocks=True, autoescape=False, - loader=jinja2.FileSystemLoader(os.path.abspath("templates/")), + loader=jinja2.FileSystemLoader( + os.path.abspath(os.path.join(os.path.dirname(__file__), "templates/")) + ), ) template = latex_jinja_env.get_template(f"{name}.tex.jinja") return template From bd81ac9a5b4794a691f33129186cb48db72892d6 Mon Sep 17 00:00:00 2001 From: Matthias Bilger Date: Mon, 20 Jan 2020 13:24:36 +0100 Subject: [PATCH 5/5] Dockerfile for root container --- .drone.yml | 12 ++++++++++++ Dockerfile.root | 14 ++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 Dockerfile.root diff --git a/.drone.yml b/.drone.yml index 9ee9a43..cb0d94e 100644 --- a/.drone.yml +++ b/.drone.yml @@ -13,6 +13,18 @@ steps: from_secret: docker_password tags: latest auto_tag: true + - name: dockerroot + image: plugins/docker + settings: + registry: registry.d1v3.de + repo: registry.d1v3.de/dnd-spellcard-builder-root + dockerfile: Dockerfile.root + username: + from_secret: docker_username + password: + from_secret: docker_password + tags: latest + auto_tag: true --- kind: secret name: docker_username diff --git a/Dockerfile.root b/Dockerfile.root new file mode 100644 index 0000000..97493dc --- /dev/null +++ b/Dockerfile.root @@ -0,0 +1,14 @@ +FROM python:3.8-alpine as base + +FROM base as builder +RUN mkdir /install +WORKDIR /install +COPY requirements.txt /requirements.txt +RUN pip install --install-option="--prefix=/install" -r /requirements.txt + +FROM base +COPY --from=builder /install /usr/local +WORKDIR /home/appuser + +COPY ./ ./ +ENTRYPOINT ["python", "./genspells.py"]