aboutsummaryrefslogtreecommitdiffhomepage
path: root/support/docker/dev
diff options
context:
space:
mode:
Diffstat (limited to 'support/docker/dev')
-rw-r--r--support/docker/dev/Dockerfile54
-rw-r--r--support/docker/dev/janitor.json42
-rw-r--r--support/docker/dev/setup_postgres.sql (renamed from support/docker/dev/create_user.sql)3
-rw-r--r--support/docker/dev/supervisord.conf3
-rw-r--r--support/docker/dev/usage.md20
5 files changed, 57 insertions, 65 deletions
diff --git a/support/docker/dev/Dockerfile b/support/docker/dev/Dockerfile
index 2b4f2b215..8e049f3f6 100644
--- a/support/docker/dev/Dockerfile
+++ b/support/docker/dev/Dockerfile
@@ -1,32 +1,46 @@
1FROM janitortechnology/ubuntu-dev 1FROM ubuntu:bionic
2
3# Avoid tzdata interactive dialog
4ENV DEBIAN_FRONTEND=noninteractive
2 5
3# Install PeerTube's dependencies. 6# Install PeerTube's dependencies.
4# Packages are from https://github.com/Chocobozzz/PeerTube#dependencies 7# Packages are from https://github.com/Chocobozzz/PeerTube#dependencies
5RUN sudo apt-get update -q && sudo apt-get install -qy \ 8RUN apt-get update -q && apt-get install -qy \
6 ffmpeg \ 9 curl \
7 postgresql \ 10 ffmpeg \
8 openssl 11 g++ \
12 git \
13 gnupg \
14 make \
15 nano \
16 openssl \
17 postgresql \
18 postgresql-contrib \
19 redis-server \
20 && curl -sL https://deb.nodesource.com/setup_8.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 \
23 && apt-get update \
24 && apt-get install -qy nodejs yarn \
25 && rm -rf /var/lib/apt/lists/*
9 26
10# Download PeerTube's source code. 27# Download PeerTube's source code.
11RUN git clone -b develop https://github.com/Chocobozzz/PeerTube /home/user/PeerTube 28RUN git clone -b develop https://github.com/Chocobozzz/PeerTube /home/user/PeerTube
12WORKDIR /home/user/PeerTube 29WORKDIR /home/user/PeerTube
13 30
14# Configure the IDEs to use Janitor's source directory as workspace. 31# Copy postgresql setup script
15ENV WORKSPACE /home/user/PeerTube/ 32COPY setup_postgres.sql /tmp/
16
17# Install dependencies.
18RUN yarn install --pure-lockfile
19 33
20# Configure Janitor for PeerTube. 34# Install Node.js dependencies and setup PostgreSQL
21COPY --chown=user:user janitor.json /home/user/ 35RUN yarn install --pure-lockfile \
36 && service postgresql start \
37 && su postgres -c "psql --file=/tmp/setup_postgres.sql"
22 38
23# Configure and build PeerTube. 39# Expose PeerTube sources as a volume
24COPY create_user.sql /tmp/ 40VOLUME /home/user/PeerTube
25RUN sudo service postgresql start \
26 && sudo -u postgres psql --file=/tmp/create_user.sql \
27 && npm run build
28
29COPY --chown=user:user supervisord.conf /tmp/supervisord-extra.conf
30RUN cat /tmp/supervisord-extra.conf | sudo tee -a /etc/supervisord.conf
31 41
42# Expose API and frontend
32EXPOSE 3000 9000 43EXPOSE 3000 9000
44
45# Start PostgreSQL and Redis
46CMD ["service postgresql start && redis-server"]
diff --git a/support/docker/dev/janitor.json b/support/docker/dev/janitor.json
deleted file mode 100644
index 5acdf3060..000000000
--- a/support/docker/dev/janitor.json
+++ /dev/null
@@ -1,42 +0,0 @@
1{
2 "name": "PeerTube",
3 "description": "Federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser with WebTorrent and Angular.",
4 "icon": "https://janitor.technology/img/peertube.svg",
5 "docker": {
6 "image": "chocobozzz/peertube-dev"
7 },
8 "ports": {
9 "22": {
10 "label": "SSH",
11 "proxy": "none"
12 },
13 "3000": {
14 "label": "PeerTube web app",
15 "proxy": "https",
16 "preview": true
17 },
18 "8088": {
19 "label": "VNC",
20 "proxy": "https"
21 },
22 "8089": {
23 "label": "Cloud9",
24 "proxy": "https"
25 },
26 "8090": {
27 "label": "Theia",
28 "proxy": "https"
29 },
30 "9000": {
31 "label": "PeerTube API",
32 "proxy": "https"
33 }
34 },
35 "scripts": {
36 "Start PeerTube": "npm run dev",
37 "Build PeerTube": "npm run build",
38 "Run tests": "npm test",
39 "Update source code": "git pull --rebase origin",
40 "Send to code review": "hub pull-request"
41 }
42}
diff --git a/support/docker/dev/create_user.sql b/support/docker/dev/setup_postgres.sql
index c2fbcf27e..0937f9d19 100644
--- a/support/docker/dev/create_user.sql
+++ b/support/docker/dev/setup_postgres.sql
@@ -1,3 +1,6 @@
1create database peertube_dev; 1create database peertube_dev;
2create user peertube password 'peertube'; 2create user peertube password 'peertube';
3grant all privileges on database peertube_dev to peertube; 3grant all privileges on database peertube_dev to peertube;
4\c peertube_dev
5CREATE EXTENSION pg_trgm;
6CREATE EXTENSION unaccent;
diff --git a/support/docker/dev/supervisord.conf b/support/docker/dev/supervisord.conf
deleted file mode 100644
index b2e1682df..000000000
--- a/support/docker/dev/supervisord.conf
+++ /dev/null
@@ -1,3 +0,0 @@
1[program:postgresql]
2user = user
3command = sudo -u postgres /usr/lib/postgresql/9.5/bin/postgres -D /var/lib/postgresql/9.5/main -c config_file=/etc/postgresql/9.5/main/postgresql.conf
diff --git a/support/docker/dev/usage.md b/support/docker/dev/usage.md
new file mode 100644
index 000000000..319d7db30
--- /dev/null
+++ b/support/docker/dev/usage.md
@@ -0,0 +1,20 @@
1### Usage
21. Build the image:
3 ```
4 docker build -t my_peertube_dev .
5 ```
61. Start the container:
7 ```
8 docker run -d -i -p 3000:3000 -p 9000:9000 --name peertube my_peertube_dev
9 ```
10 This will create a new Docker volume containing PeerTube sources.
11
121. Start PeerTube inside the container:
13 ```
14 docker exec -it peertube npm run dev
15 ```
161. In another window, find the path to the Docker volume
17 ```
18 docker inspect peertube | less +/Mounts
19 ```
20 You can now make changes to the files. They should be automatically recompiled.