]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - support/docker/dev/Dockerfile
Refractor notification service
[github/Chocobozzz/PeerTube.git] / support / docker / dev / Dockerfile
index 2b4f2b215f74aa05870b0bc8bbc52e8682406140..8e049f3f6a1390ba9214d646ddff35df044ce177 100644 (file)
@@ -1,32 +1,46 @@
-FROM janitortechnology/ubuntu-dev
+FROM ubuntu:bionic
+
+# Avoid tzdata interactive dialog
+ENV DEBIAN_FRONTEND=noninteractive
 
 # Install PeerTube's dependencies.
 # Packages are from https://github.com/Chocobozzz/PeerTube#dependencies
-RUN sudo apt-get update -q && sudo apt-get install -qy \
- ffmpeg \
- postgresql \
- openssl
+RUN apt-get update -q && apt-get install -qy \
+      curl \
+      ffmpeg \
+      g++ \
+      git \
+      gnupg \
+      make \
+      nano \
+      openssl \
+      postgresql \
+      postgresql-contrib \
+      redis-server \
+    && curl -sL https://deb.nodesource.com/setup_8.x | bash - \
+    && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
+    && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
+    && apt-get update \
+    && apt-get install -qy nodejs yarn \
+    && rm -rf /var/lib/apt/lists/*
 
 # Download PeerTube's source code.
 RUN git clone -b develop https://github.com/Chocobozzz/PeerTube /home/user/PeerTube
 WORKDIR /home/user/PeerTube
 
-# Configure the IDEs to use Janitor's source directory as workspace.
-ENV WORKSPACE /home/user/PeerTube/
-
-# Install dependencies.
-RUN yarn install --pure-lockfile
+# Copy postgresql setup script
+COPY setup_postgres.sql /tmp/
 
-# Configure Janitor for PeerTube.
-COPY --chown=user:user janitor.json /home/user/
+# Install Node.js dependencies and setup PostgreSQL
+RUN yarn install --pure-lockfile \
+    && service postgresql start \
+    && su postgres -c "psql --file=/tmp/setup_postgres.sql"
 
-# Configure and build PeerTube.
-COPY create_user.sql /tmp/
-RUN sudo service postgresql start \
- && sudo -u postgres psql --file=/tmp/create_user.sql \
- && npm run build
-
-COPY --chown=user:user supervisord.conf /tmp/supervisord-extra.conf
-RUN cat /tmp/supervisord-extra.conf | sudo tee -a /etc/supervisord.conf
+# Expose PeerTube sources as a volume
+VOLUME /home/user/PeerTube
 
+# Expose API and frontend
 EXPOSE 3000 9000
+
+# Start PostgreSQL and Redis
+CMD ["service postgresql start && redis-server"]