-
Notifications
You must be signed in to change notification settings - Fork 177
/
Copy pathgitDigitalPy.Dockerfile
51 lines (40 loc) · 1.59 KB
/
gitDigitalPy.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
FROM python:3.11
# don't use root, let's not have FTS be used as a priv escalation in the wild
RUN groupadd -r freetak && useradd -m -r -g freetak freetak
RUN mkdir /opt/fts ; chown -R freetak:freetak /opt/fts ; chmod 775 /opt/fts ; chmod a+w /var/log
USER freetak
# This needs the trailing slash
ENV FTS_DATA_PATH = "/opt/fts/"
# Move to the FTS directory, then do the copying and unpacking
WORKDIR /home/freetak/
# Get digitalpy from git
RUN git clone https://github.com/FreeTAKTeam/DigitalPy.git digitalpy
RUN pip install /home/freetak/digitalpy
COPY --chown=freetak:freetak --chmod=774 requirements.txt setup.py README.md docker-run.sh ./
# Install pre-reqs then the base FTS
ENV PATH /home/freetak/.local/bin:$PATH
RUN pip install --no-cache-dir -r requirements.txt
RUN pip install -e /home/freetak/
COPY --chown=freetak:freetak --chmod=774 . ./
# Provide a way to edit the configuration from outside the container
# May need to be updated if the base image changes
RUN cp FreeTAKServer/core/configuration/MainConfig.py FreeTAKServer/core/configuration/MainConfig.bak
RUN mv FreeTAKServer/core/configuration/MainConfig.py /opt/fts/MainConfig.py
RUN ln -s /opt/fts/MainConfig.py FreeTAKServer/core/configuration/MainConfig.py
# Open ports
# note: docker compose documentation suggests that communication between
# core and ui doesn't need a port explicitly exposed
# DataPackagePort
EXPOSE 8080
# CoTPort
EXPOSE 8087
# SSLCoTPort
EXPOSE 8089
# SSLDataPackagePort
EXPOSE 8443
# FederationPort
EXPOSE 9000
# APIPort - Don't expose by default
#EXPOSE 19023
VOLUME /opt/fts
CMD [ "/home/freetak/docker-run.sh" ]