mirror of
				https://github.com/iv-org/invidious.git
				synced 2025-11-04 06:31:57 +00:00 
			
		
		
		
	Merge pull request #186 from flourgaz/feature/docker-compose
Add basic docker-compose cluster
This commit is contained in:
		
							
								
								
									
										21
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
version: '3'
 | 
			
		||||
services:
 | 
			
		||||
  postgres:
 | 
			
		||||
    build:
 | 
			
		||||
      context: .
 | 
			
		||||
      dockerfile: docker/Dockerfile.postgres
 | 
			
		||||
    restart: unless-stopped
 | 
			
		||||
    volumes:
 | 
			
		||||
      - postgresdata:/var/lib/postgresql/data
 | 
			
		||||
  invidious:
 | 
			
		||||
    build:
 | 
			
		||||
      context: .
 | 
			
		||||
      dockerfile: docker/Dockerfile
 | 
			
		||||
    restart: unless-stopped
 | 
			
		||||
    ports:
 | 
			
		||||
      - "3000:3000"
 | 
			
		||||
    depends_on:
 | 
			
		||||
      - postgres
 | 
			
		||||
 | 
			
		||||
volumes:
 | 
			
		||||
  postgresdata:
 | 
			
		||||
							
								
								
									
										15
									
								
								docker/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								docker/Dockerfile
									
									
									
									
									
										Normal file
									
								
							@@ -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" ]
 | 
			
		||||
							
								
								
									
										10
									
								
								docker/Dockerfile.postgres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								docker/Dockerfile.postgres
									
									
									
									
									
										Normal file
									
								
							@@ -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" ]
 | 
			
		||||
							
								
								
									
										19
									
								
								docker/entrypoint.postgres.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										19
									
								
								docker/entrypoint.postgres.sh
									
									
									
									
									
										Executable file
									
								
							@@ -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
 | 
			
		||||
		Reference in New Issue
	
	Block a user