forked from Tribler/docker-tribler-prod
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
81 lines (71 loc) · 1.59 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
FROM ubuntu:20.04
LABEL MAINTAINER Mitchell Olsthoorn <[email protected]>
# Make the GUI work in a container
ENV DEBIAN_FRONTEND=noninteractive
# Installing dependencies and cleaning up afterwards
RUN apt-get update && apt-get install -y --no-install-recommends \
# Build depenedencies
git \
python3-setuptools \
python3-pip \
build-essential \
python3-dev \
# Tribler dependencies (apt)
ffmpeg \
libssl-dev \
libx11-6 \
x11-utils \
vlc \
libgmp-dev \
python3 \
python3-minimal \
python3-pip \
python3-libtorrent \
python3-pyqt5 \
python3-pyqt5.qtsvg \
python3-scipy \
# Tribler dependencies (pip)
&& pip3 install wheel \
&& pip3 install \
Pillow \
pyyaml \
bitcoinlib \
cryptography \
chardet \
configobj \
decorator \
dnspython \
ecdsa \
feedparser \
jsonrpclib \
matplotlib \
netifaces \
networkx \
pbkdf2 \
pony \
protobuf \
psutil \
pyaes \
pyasn1 \
pysocks \
requests \
lz4 \
pyqtgraph \
# Cleanup
&& apt-get clean && rm -rf /var/lib/apt/lists/*
ENV HOME /home/tribler
ENV API_PORT 8085
# Create a local user and stop using root
RUN useradd -m --home-dir $HOME tribler \
&& chown -R tribler:tribler $HOME
USER tribler
WORKDIR $HOME
# Set building arguments
ARG REPO_URL=https://github.com/Tribler/tribler.git
ARG VERSION=devel
# Get code from the repository
RUN git clone --recursive --depth 1 ${REPO_URL} -b ${VERSION} tribler
# Install IPv8 dependencies
RUN cd tribler/src/pyipv8 && pip3 install --upgrade -r requirements.txt
EXPOSE $API_PORT
CMD ["/home/tribler/tribler/src/tribler.sh"]