Create new Docker dev image (#1173)
* Move the old dev docker files to support/docker/janitor * Create new Docker dev image
This commit is contained in:
parent
e2dc00a8fe
commit
ee7c25c767
7 changed files with 90 additions and 16 deletions
|
@ -1,32 +1,48 @@
|
||||||
FROM janitortechnology/ubuntu-dev
|
FROM ubuntu:bionic
|
||||||
|
|
||||||
|
# Avoid tzdata interactive dialog
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
# Install PeerTube's dependencies.
|
# Install PeerTube's dependencies.
|
||||||
# Packages are from https://github.com/Chocobozzz/PeerTube#dependencies
|
# Packages are from https://github.com/Chocobozzz/PeerTube#dependencies
|
||||||
RUN sudo apt-get update -q && sudo apt-get install -qy \
|
RUN apt-get update -q && apt-get install -qy \
|
||||||
|
curl \
|
||||||
|
nano \
|
||||||
ffmpeg \
|
ffmpeg \
|
||||||
postgresql \
|
postgresql \
|
||||||
openssl
|
postgresql-contrib \
|
||||||
|
openssl \
|
||||||
|
g++ \
|
||||||
|
make \
|
||||||
|
redis-server \
|
||||||
|
git \
|
||||||
|
gnupg
|
||||||
|
|
||||||
|
# Install NodeJS 8.x
|
||||||
|
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash - && \
|
||||||
|
apt-get install -y nodejs
|
||||||
|
|
||||||
|
# Install Yarn
|
||||||
|
RUN 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 yarn
|
||||||
|
|
||||||
# Download PeerTube's source code.
|
# Download PeerTube's source code.
|
||||||
RUN git clone -b develop https://github.com/Chocobozzz/PeerTube /home/user/PeerTube
|
RUN git clone -b develop https://github.com/Chocobozzz/PeerTube /home/user/PeerTube
|
||||||
WORKDIR /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.
|
# Install dependencies.
|
||||||
RUN yarn install --pure-lockfile
|
RUN yarn install --pure-lockfile
|
||||||
|
|
||||||
# Configure Janitor for PeerTube.
|
# Configure and run PeerTube.
|
||||||
COPY --chown=user:user janitor.json /home/user/
|
COPY setup_postgres.sql /tmp/
|
||||||
|
RUN service postgresql start \
|
||||||
|
&& su postgres -c "psql --file=/tmp/setup_postgres.sql"
|
||||||
|
|
||||||
# Configure and build PeerTube.
|
# Expose PeerTube sources as a volume
|
||||||
COPY create_user.sql /tmp/
|
VOLUME /home/user/PeerTube
|
||||||
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 3000 9000
|
EXPOSE 3000 9000
|
||||||
|
|
||||||
|
# Start PostgreSQL and Redis
|
||||||
|
CMD service postgresql start && redis-server
|
||||||
|
|
6
support/docker/dev/setup_postgres.sql
Normal file
6
support/docker/dev/setup_postgres.sql
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
create database peertube_dev;
|
||||||
|
create user peertube password 'peertube';
|
||||||
|
grant all privileges on database peertube_dev to peertube;
|
||||||
|
\c peertube_dev
|
||||||
|
CREATE EXTENSION pg_trgm;
|
||||||
|
CREATE EXTENSION unaccent;
|
20
support/docker/dev/usage.md
Normal file
20
support/docker/dev/usage.md
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
### Usage
|
||||||
|
1. Build the image:
|
||||||
|
```
|
||||||
|
docker build -t my_peertube_dev .
|
||||||
|
```
|
||||||
|
1. Start the container:
|
||||||
|
```
|
||||||
|
docker run -d -i -p 3000:3000 -p 9000:9000 --name peertube my_peertube_dev
|
||||||
|
```
|
||||||
|
This will create a new Docker volume containing PeerTube sources.
|
||||||
|
|
||||||
|
1. Start PeerTube inside the container:
|
||||||
|
```
|
||||||
|
docker exec -it peertube npm run dev
|
||||||
|
```
|
||||||
|
1. In another window, find the path to the Docker volume
|
||||||
|
```
|
||||||
|
docker inspect peertube | less +/Mounts
|
||||||
|
```
|
||||||
|
You can now make changes to the files. They should be automatically recompiled.
|
32
support/docker/janitor/Dockerfile
Normal file
32
support/docker/janitor/Dockerfile
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
FROM janitortechnology/ubuntu-dev
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# Configure Janitor for PeerTube.
|
||||||
|
COPY --chown=user:user janitor.json /home/user/
|
||||||
|
|
||||||
|
# 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 3000 9000
|
Loading…
Reference in a new issue