3 # Avoid tzdata interactive dialog
4 ENV DEBIAN_FRONTEND=noninteractive
6 # Install PeerTube's dependencies.
7 # Packages are from https://github.com/Chocobozzz/PeerTube#dependencies
8 RUN apt-get update -q && apt-get install -qy \
20 && curl -sL https://deb.nodesource.com/setup_10.x | bash - \
21 && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
22 && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
24 && apt-get install -qy nodejs yarn \
25 && rm -rf /var/lib/apt/lists/*
27 # Download PeerTube's source code.
28 RUN git clone -b develop https://github.com/Chocobozzz/PeerTube /home/user/PeerTube
29 WORKDIR /home/user/PeerTube
31 # Copy postgresql setup script
32 COPY setup_postgres.sql /tmp/
34 # Install Node.js dependencies and setup PostgreSQL
35 RUN yarn install --pure-lockfile \
36 && service postgresql start \
37 && su postgres -c "psql --file=/tmp/setup_postgres.sql"
39 # Expose PeerTube sources as a volume
40 VOLUME /home/user/PeerTube
42 # Expose API and frontend
45 # Start PostgreSQL and Redis
46 CMD ["service postgresql start && redis-server"]