diff options
Diffstat (limited to 'support/docker/dev')
-rw-r--r-- | support/docker/dev/Dockerfile | 54 | ||||
-rw-r--r-- | support/docker/dev/janitor.json | 42 | ||||
-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.conf | 3 | ||||
-rw-r--r-- | support/docker/dev/usage.md | 20 |
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 @@ | |||
1 | FROM janitortechnology/ubuntu-dev | 1 | FROM ubuntu:bionic |
2 | |||
3 | # Avoid tzdata interactive dialog | ||
4 | ENV 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 |
5 | RUN sudo apt-get update -q && sudo apt-get install -qy \ | 8 | RUN 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. |
11 | RUN git clone -b develop https://github.com/Chocobozzz/PeerTube /home/user/PeerTube | 28 | RUN git clone -b develop https://github.com/Chocobozzz/PeerTube /home/user/PeerTube |
12 | WORKDIR /home/user/PeerTube | 29 | WORKDIR /home/user/PeerTube |
13 | 30 | ||
14 | # Configure the IDEs to use Janitor's source directory as workspace. | 31 | # Copy postgresql setup script |
15 | ENV WORKSPACE /home/user/PeerTube/ | 32 | COPY setup_postgres.sql /tmp/ |
16 | |||
17 | # Install dependencies. | ||
18 | RUN yarn install --pure-lockfile | ||
19 | 33 | ||
20 | # Configure Janitor for PeerTube. | 34 | # Install Node.js dependencies and setup PostgreSQL |
21 | COPY --chown=user:user janitor.json /home/user/ | 35 | RUN 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 |
24 | COPY create_user.sql /tmp/ | 40 | VOLUME /home/user/PeerTube |
25 | RUN sudo service postgresql start \ | ||
26 | && sudo -u postgres psql --file=/tmp/create_user.sql \ | ||
27 | && npm run build | ||
28 | |||
29 | COPY --chown=user:user supervisord.conf /tmp/supervisord-extra.conf | ||
30 | RUN cat /tmp/supervisord-extra.conf | sudo tee -a /etc/supervisord.conf | ||
31 | 41 | ||
42 | # Expose API and frontend | ||
32 | EXPOSE 3000 9000 | 43 | EXPOSE 3000 9000 |
44 | |||
45 | # Start PostgreSQL and Redis | ||
46 | CMD ["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 @@ | |||
1 | create database peertube_dev; | 1 | create database peertube_dev; |
2 | create user peertube password 'peertube'; | 2 | create user peertube password 'peertube'; |
3 | grant all privileges on database peertube_dev to peertube; | 3 | grant all privileges on database peertube_dev to peertube; |
4 | \c peertube_dev | ||
5 | CREATE EXTENSION pg_trgm; | ||
6 | CREATE 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] | ||
2 | user = user | ||
3 | command = 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 | ||
2 | 1. Build the image: | ||
3 | ``` | ||
4 | docker build -t my_peertube_dev . | ||
5 | ``` | ||
6 | 1. 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 | |||
12 | 1. Start PeerTube inside the container: | ||
13 | ``` | ||
14 | docker exec -it peertube npm run dev | ||
15 | ``` | ||
16 | 1. 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. | ||