Skip to content

Commit 1de7c0c

Browse files
authored
Merge pull request #186 from flourgaz/feature/docker-compose
Add basic docker-compose cluster
2 parents 7d35b6e + 71a9954 commit 1de7c0c

File tree

5 files changed

+67
-1
lines changed

5 files changed

+67
-1
lines changed

docker-compose.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
version: '3'
2+
services:
3+
postgres:
4+
build:
5+
context: .
6+
dockerfile: docker/Dockerfile.postgres
7+
restart: unless-stopped
8+
volumes:
9+
- postgresdata:/var/lib/postgresql/data
10+
invidious:
11+
build:
12+
context: .
13+
dockerfile: docker/Dockerfile
14+
restart: unless-stopped
15+
ports:
16+
- "3000:3000"
17+
depends_on:
18+
- postgres
19+
20+
volumes:
21+
postgresdata:

docker/Dockerfile

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
FROM archlinux/base
2+
3+
RUN pacman -Sy --noconfirm shards crystal imagemagick librsvg \
4+
which pkgconf gcc ttf-liberation
5+
# base-devel contains many other basic packages, that are normally assumed to already exist on a clean arch system
6+
7+
ADD . /invidious
8+
9+
WORKDIR /invidious
10+
11+
RUN sed -i 's/host: localhost/host: postgres/' config/config.yml && \
12+
shards && \
13+
crystal build src/invidious.cr
14+
15+
CMD [ "/invidious/invidious" ]

docker/Dockerfile.postgres

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
FROM postgres:10
2+
3+
ENV POSTGRES_USER postgres
4+
5+
ADD ./setup.sh /setup.sh
6+
ADD ./config/sql /config/sql
7+
ADD ./docker/entrypoint.postgres.sh /entrypoint.sh
8+
9+
ENTRYPOINT [ "/entrypoint.sh" ]
10+
CMD [ "postgres" ]

docker/entrypoint.postgres.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/usr/bin/env bash
2+
3+
CMD="$@"
4+
if [ ! -f /var/lib/postgresql/data/setupFinished ]; then
5+
echo "### first run - setting up invidious database"
6+
/usr/local/bin/docker-entrypoint.sh postgres &
7+
sleep 10
8+
until runuser -l postgres -c 'pg_isready' 2>/dev/null; do
9+
>&2 echo "### Postgres is unavailable - waiting"
10+
sleep 5
11+
done
12+
>&2 echo "### importing table schemas"
13+
su postgres -c "/setup.sh" && touch /var/lib/postgresql/data/setupFinished
14+
echo "### invidious database setup finished"
15+
exit
16+
fi
17+
18+
echo "running postgres /usr/local/bin/docker-entrypoint.sh $CMD"
19+
exec /usr/local/bin/docker-entrypoint.sh $CMD

setup.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
#!/bin/bash
22

33
createdb invidious
4-
createuser kemal
4+
#createuser kemal
5+
psql -c "CREATE USER kemal WITH PASSWORD 'kemal';"
56
psql invidious < config/sql/channels.sql
67
psql invidious < config/sql/videos.sql
78
psql invidious < config/sql/channel_videos.sql

0 commit comments

Comments
 (0)