summaryrefslogtreecommitdiffstats
path: root/docker
diff options
context:
space:
mode:
Diffstat (limited to 'docker')
-rw-r--r--docker/Dockerfile15
-rw-r--r--docker/Dockerfile.postgres10
-rwxr-xr-xdocker/entrypoint.postgres.sh19
3 files changed, 44 insertions, 0 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile
new file mode 100644
index 00000000..0197db94
--- /dev/null
+++ b/docker/Dockerfile
@@ -0,0 +1,15 @@
+FROM archlinux/base
+
+RUN pacman -Sy --noconfirm shards crystal imagemagick librsvg \
+ which pkgconf gcc ttf-liberation
+# base-devel contains many other basic packages, that are normally assumed to already exist on a clean arch system
+
+ADD . /invidious
+
+WORKDIR /invidious
+
+RUN sed -i 's/host: localhost/host: postgres/' config/config.yml && \
+ shards && \
+ crystal build src/invidious.cr
+
+CMD [ "/invidious/invidious" ]
diff --git a/docker/Dockerfile.postgres b/docker/Dockerfile.postgres
new file mode 100644
index 00000000..3186e050
--- /dev/null
+++ b/docker/Dockerfile.postgres
@@ -0,0 +1,10 @@
+FROM postgres:10
+
+ENV POSTGRES_USER postgres
+
+ADD ./setup.sh /setup.sh
+ADD ./config/sql /config/sql
+ADD ./docker/entrypoint.postgres.sh /entrypoint.sh
+
+ENTRYPOINT [ "/entrypoint.sh" ]
+CMD [ "postgres" ]
diff --git a/docker/entrypoint.postgres.sh b/docker/entrypoint.postgres.sh
new file mode 100755
index 00000000..2f3ae65f
--- /dev/null
+++ b/docker/entrypoint.postgres.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/env bash
+
+CMD="$@"
+if [ ! -f /var/lib/postgresql/data/setupFinished ]; then
+ echo "### first run - setting up invidious database"
+ /usr/local/bin/docker-entrypoint.sh postgres &
+ sleep 10
+ until runuser -l postgres -c 'pg_isready' 2>/dev/null; do
+ >&2 echo "### Postgres is unavailable - waiting"
+ sleep 5
+ done
+ >&2 echo "### importing table schemas"
+ su postgres -c "/setup.sh" && touch /var/lib/postgresql/data/setupFinished
+ echo "### invidious database setup finished"
+ exit
+fi
+
+echo "running postgres /usr/local/bin/docker-entrypoint.sh $CMD"
+exec /usr/local/bin/docker-entrypoint.sh $CMD