From 0e4fd4ffaf89a4501afe3c954966557990c0c583 Mon Sep 17 00:00:00 2001 From: Nullptrderef Date: Sun, 21 Apr 2024 17:55:51 +0200 Subject: fix everything --- packaging/docker-alpine/.gitignore | 3 + packaging/docker-alpine/Makefile | 5 +- packaging/docker-alpine/README.anastasis.md | 77 ++++++++++++++++++++++ packaging/docker-alpine/anastasis-compose.yml | 38 +++++++++++ packaging/docker-alpine/anastasis.Containerfile | 6 +- .../build-files/anastasis-entrypoint.sh | 7 +- packaging/docker-alpine/contrib/clean.sh | 3 + packaging/docker-alpine/contrib/publish.sh | 10 +++ 8 files changed, 145 insertions(+), 4 deletions(-) create mode 100644 packaging/docker-alpine/.gitignore create mode 100644 packaging/docker-alpine/README.anastasis.md create mode 100644 packaging/docker-alpine/anastasis-compose.yml create mode 100755 packaging/docker-alpine/contrib/clean.sh create mode 100755 packaging/docker-alpine/contrib/publish.sh (limited to 'packaging') diff --git a/packaging/docker-alpine/.gitignore b/packaging/docker-alpine/.gitignore new file mode 100644 index 0000000..8135b62 --- /dev/null +++ b/packaging/docker-alpine/.gitignore @@ -0,0 +1,3 @@ +.env +anastasis-data +anastasis-config diff --git a/packaging/docker-alpine/Makefile b/packaging/docker-alpine/Makefile index b240d7b..4fbc4e2 100644 --- a/packaging/docker-alpine/Makefile +++ b/packaging/docker-alpine/Makefile @@ -40,6 +40,9 @@ build-anastasis: build-anastasis-builder ./contrib/build-image.sh $(author) anastasis anastasis clean: - docker rm $(docker image ls -a | awk '{print $1 " " $3}' | awk 'NR > 1' | grep taler-alpine-imaging/ | awk '{print $2}') + ./contrib/clean.sh + +publish: + ./contrib/publish.sh $(author) build: build-builder build-libmicrohttpd build-libgnunet build-libtalerexchange build-libtalermerchant build-anastasis diff --git a/packaging/docker-alpine/README.anastasis.md b/packaging/docker-alpine/README.anastasis.md new file mode 100644 index 0000000..c241982 --- /dev/null +++ b/packaging/docker-alpine/README.anastasis.md @@ -0,0 +1,77 @@ +# nullptrderef/anastasis + +An [Anastasis](https://anastasis.lu) Image + +## Tags + +- [latest](https://hub.docker.com/repository/docker/nullptrderef/anastasis/tags?page=&page_size=&ordering=&name=latest): An image built form [Anastasis Master](https://git.taler.net/anastasis.git) at some point in time, hopefully recently. +- [builder](https://hub.docker.com/repository/docker/nullptrderef/anastasis/tags?page=&page_size=&ordering=&name=builder): The image used to build `latest`'s binaries. + +## Usage + +The Image exposes a `/etc/anastasis` volume, which contains the anastasis configuration. By default, Anastasis listens on port `9977` in the container, however this behaviour can natuarlly be changed. + +### Docker CLI + +An example usage via the docker CLI may look like: + +`docker run -d -v './anastasis-config:/etc/anastasis' -p '127.0.0.1:9977:9977' nullptrderef/anastasis:latest` + +### Docker Compose + +```yml +services: + database: + container_name: anastasis-db + image: postgres:alpine + hostname: database + ports: + - 127.0.0.1:15432:5432 + networks: + anastasis-pg-net: + ipv4_address: 172.168.111.10 + environment: + - POSTGRES_DB=postgres + - POSTGRES_USERNAME=postgres + - POSTGRES_PASSWORD=password + - PGDATA=/var/lib/postgresql/data/ + volumes: + - ./anastasis-data/:/var/lib/postgresql/data/:rw + + anastasis: + container_name: anastasis + image: nullptrderef/anastasis:latest + depends_on: + - database + networks: + - anastasis-pg-net + ports: + - 127.0.0.1:9977:9977 + volumes: + - ./anastasis-config:/etc/anastasis + command: sh -c "while true; do sleep 1; done" + +networks: + anastasis-pg-net: + driver: bridge + ipam: + driver: default + config: + - subnet: "172.168.111.0/24" +``` + +(Change the password ofc) + +### First Execution + +Upon first execution, it will exit before getting anywhere, as you'll need to edit the configuation to specify the correct postgres URL. + +The config file is created on this first execution. + +## Source + +This image was packaged from [deployment.git:packaging/docker-alpine](https://git.taler.net/deployment.git/tree/packaging/docker-alpine). It is licensed under the AGPL-3.0-ONLY + +``` + +``` diff --git a/packaging/docker-alpine/anastasis-compose.yml b/packaging/docker-alpine/anastasis-compose.yml new file mode 100644 index 0000000..fc90745 --- /dev/null +++ b/packaging/docker-alpine/anastasis-compose.yml @@ -0,0 +1,38 @@ +services: + database: + container_name: anastasis-db + image: postgres:alpine + hostname: database + ports: + - 127.0.0.1:15432:5432 + networks: + anastasis-pg-net: + ipv4_address: 172.168.111.10 + environment: + - POSTGRES_DB=postgres + - POSTGRES_USERNAME=postgres + - POSTGRES_PASSWORD=password + - PGDATA=/var/lib/postgresql/data/ + volumes: + - ./anastasis-data/:/var/lib/postgresql/data/:rw + + anastasis: + container_name: anastasis + image: nullptrderef/anastasis:latest + depends_on: + - database + networks: + - anastasis-pg-net + ports: + - 127.0.0.1:9977:9977 + volumes: + - ./anastasis-config:/etc/anastasis + command: sh -c "while true; do sleep 1; done" + +networks: + anastasis-pg-net: + driver: bridge + ipam: + driver: default + config: + - subnet: "172.168.111.0/24" diff --git a/packaging/docker-alpine/anastasis.Containerfile b/packaging/docker-alpine/anastasis.Containerfile index e733355..875bfd4 100644 --- a/packaging/docker-alpine/anastasis.Containerfile +++ b/packaging/docker-alpine/anastasis.Containerfile @@ -4,7 +4,11 @@ COPY ./build-files/anastasis-entrypoint.sh /prefix/usr/bin/anastasis-docker-entr FROM taler-alpine-imaging/libtalermerchant:latest COPY --from=builder /prefix/* / -VOLUME [ "/data", "/etc/anastasis" ] +VOLUME [ "/etc/anastasis" ] EXPOSE 9977 CMD [ "anastasis-docker-entrypoint" ] + +LABEL org.opencontainers.image.title="Anastasis" +LABEL org.opencontainers.image.description="A 'keep-your-own-key' crypto-custody solution with password-less key recovery via multi-factor multi-party authentication." +LABEL org.opencontainers.image.documentation="https://git.taler.net/deployment.git/tree/packaging/docker-alpine/README.anastasis.md" diff --git a/packaging/docker-alpine/build-files/anastasis-entrypoint.sh b/packaging/docker-alpine/build-files/anastasis-entrypoint.sh index e33f297..ec72716 100755 --- a/packaging/docker-alpine/build-files/anastasis-entrypoint.sh +++ b/packaging/docker-alpine/build-files/anastasis-entrypoint.sh @@ -21,11 +21,14 @@ if ! [ -f "/etc/anastasis/anastasis.conf" ]; then echo '[anastasis] SERVE = tcp PORT = 9977 +DB = postgres [stasis-postgres] -CONFIG = postgres://user:pass@192.168.1.123/db -' > +CONFIG = postgres://admin:password@172.168.111.10:5432/postgres +' > /etc/anastasis/anastasis.conf fi; +set -ax + anastasis-dbinit -c /etc/anastasis/anastasis.conf anastasis-httpd -c /etc/anastasis/anastasis.conf $@ diff --git a/packaging/docker-alpine/contrib/clean.sh b/packaging/docker-alpine/contrib/clean.sh new file mode 100755 index 0000000..94c8414 --- /dev/null +++ b/packaging/docker-alpine/contrib/clean.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +set -eax +docker image rm $(docker image ls -a | awk '{print $1 " " $3}' | awk 'NR > 1' | grep taler-alpine-imaging/ | awk '{print $2}') --force diff --git a/packaging/docker-alpine/contrib/publish.sh b/packaging/docker-alpine/contrib/publish.sh new file mode 100755 index 0000000..a824b9f --- /dev/null +++ b/packaging/docker-alpine/contrib/publish.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +set -e +AUTHOR="$1"; +IMAGES="$(docker image ls -a | awk '{print $1 ":" $2 " " $3}' | awk 'NR > 1' | grep "$AUTHOR/")" +echo "Pushing Images: +$IMAGES" +while IFS= read -r IMAGE; do + awk '{print "Deploying " $1 " (" $2 ") ..."}' <<< "$IMAGE" + docker push $(awk '{print $1}' <<< "$IMAGE") +done <<< "$IMAGES" \ No newline at end of file -- cgit v1.2.3