summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNullptrderef <nullptrderef@proton.me>2024-04-21 17:55:51 +0200
committerNullptrderef <nullptrderef@proton.me>2024-04-21 17:55:51 +0200
commit0e4fd4ffaf89a4501afe3c954966557990c0c583 (patch)
tree6c96ba2469c20f2aa43914bc9139ecc54315ca33
parent6f488c910e5639273810c630e12bfbce4360272d (diff)
downloaddeployment-0e4fd4ffaf89a4501afe3c954966557990c0c583.tar.gz
deployment-0e4fd4ffaf89a4501afe3c954966557990c0c583.tar.bz2
deployment-0e4fd4ffaf89a4501afe3c954966557990c0c583.zip
fix everything
-rw-r--r--packaging/docker-alpine/.gitignore3
-rw-r--r--packaging/docker-alpine/Makefile5
-rw-r--r--packaging/docker-alpine/README.anastasis.md77
-rw-r--r--packaging/docker-alpine/anastasis-compose.yml38
-rw-r--r--packaging/docker-alpine/anastasis.Containerfile6
-rwxr-xr-xpackaging/docker-alpine/build-files/anastasis-entrypoint.sh7
-rwxr-xr-xpackaging/docker-alpine/contrib/clean.sh3
-rwxr-xr-xpackaging/docker-alpine/contrib/publish.sh10
8 files changed, 145 insertions, 4 deletions
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