-
Notifications
You must be signed in to change notification settings - Fork 51
/
Dockerfile
43 lines (36 loc) · 1.44 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
FROM python:3.8-slim
ENV TASKDDATA=/var/taskd CA_CERT=/var/taskd/pki/ca.cert.pem \
CA_KEY=/var/taskd/pki/ca.key.pem CA_SIGNING_TEMPLATE=/var/taskd/cert.template \
REDIS_HOST=redis CERTIFICATE_DB=/var/taskd/orgs/certificates.sqlite3
RUN apt-get update
RUN apt-get install -y build-essential git supervisor uuid-dev cmake \
libgnutls28-dev gnutls-bin libev-dev libhiredis-dev libjsoncpp-dev \
libsqlite3-dev
# This is the library used for communicating with Redis
RUN git clone https://github.com/hmartiro/redox &&\
cd redox &&\
cmake . &&\
make && make install &&\
mv /usr/local/lib64/* /usr/lib/x86_64-linux-gnu
# & install the taskserver itself
RUN git clone https://github.com/coddingtonbear/taskserver &&\
cd taskserver &&\
git checkout inthe_am_dockerized &&\
cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
-DREDOX_INCLUDE_DIR=../redox/include &&\
make && make install
COPY docker/taskd/simple_taskd_configuration.conf /var/taskd/config
COPY docker/taskd/certificate_signing_template.template /var/taskd/cert.template
COPY docker/taskd/entrypoint.sh /app/run.sh
COPY docker/taskd/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY taskd_services/http/api.py /app/api.py
COPY taskd_services/http/requirements.txt /tmp/requirements.txt
RUN pip install -r /tmp/requirements.txt
RUN mkdir -p /var/taskd/orgs
VOLUME /var/taskd/orgs
RUN mkdir -p /var/taskd/pki
VOLUME /var/taskd/pki
EXPOSE 53589
EXPOSE 8000
CMD /usr/bin/supervisord --nodaemon