aboutsummaryrefslogtreecommitdiffhomepage
path: root/support/docker/dev
diff options
context:
space:
mode:
Diffstat (limited to 'support/docker/dev')
-rw-r--r--support/docker/dev/Dockerfile48
-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, 55 insertions, 61 deletions
diff --git a/support/docker/dev/Dockerfile b/support/docker/dev/Dockerfile
index 2b4f2b215..aa4a8a3d6 100644
--- a/support/docker/dev/Dockerfile
+++ b/support/docker/dev/Dockerfile
@@ -1,32 +1,48 @@
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 \
9 curl \
10 nano \
6 ffmpeg \ 11 ffmpeg \
7 postgresql \ 12 postgresql \
8 openssl 13 postgresql-contrib \
14 openssl \
15 g++ \
16 make \
17 redis-server \
18 git \
19 gnupg
20
21# Install NodeJS 8.x
22RUN curl -sL https://deb.nodesource.com/setup_8.x | bash - && \
23 apt-get install -y nodejs
24
25# Install Yarn
26RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
27 echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
28 apt-get update && apt-get install yarn
9 29
10# Download PeerTube's source code. 30# Download PeerTube's source code.
11RUN git clone -b develop https://github.com/Chocobozzz/PeerTube /home/user/PeerTube 31RUN git clone -b develop https://github.com/Chocobozzz/PeerTube /home/user/PeerTube
12WORKDIR /home/user/PeerTube 32WORKDIR /home/user/PeerTube
13 33
14# Configure the IDEs to use Janitor's source directory as workspace.
15ENV WORKSPACE /home/user/PeerTube/
16
17# Install dependencies. 34# Install dependencies.
18RUN yarn install --pure-lockfile 35RUN yarn install --pure-lockfile
19 36
20# Configure Janitor for PeerTube. 37# Configure and run PeerTube.
21COPY --chown=user:user janitor.json /home/user/ 38COPY setup_postgres.sql /tmp/
39RUN service postgresql start \
40 && su postgres -c "psql --file=/tmp/setup_postgres.sql"
22 41
23# Configure and build PeerTube. 42# Expose PeerTube sources as a volume
24COPY create_user.sql /tmp/ 43VOLUME /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 44
32EXPOSE 3000 9000 45EXPOSE 3000 9000
46
47# Start PostgreSQL and Redis
48CMD 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.