-
Notifications
You must be signed in to change notification settings - Fork 6
/
Dockerfile.EnvDataServer
91 lines (79 loc) · 3.52 KB
/
Dockerfile.EnvDataServer
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
82
83
84
85
86
87
88
89
90
91
# Copyright (C) 2020-2023 52°North Spatial Information Research GmbH
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 as published
# by the Free Software Foundation.
#
# If the program is linked with libraries which are licensed under one of
# the following licenses, the combination of the program with the linked
# library is not considered a "derivative work" of the program:
#
# - Apache License, version 2.0
# - Apache Software License, version 1.0
# - GNU Lesser General Public License, version 3
# - Mozilla Public License, versions 1.0, 1.1 and 2.0
# - Common Development and Distribution License (CDDL), version 1.0
#
# Therefore the distribution of the program linked with libraries licensed
# under the aforementioned licenses, is permitted by the copyright holders
# if the distribution is compliant with both the GNU General Public
# License version 2 and the aforementioned licenses.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# build with
#
# --build-arg GIT_COMMIT=$(git rev-parse -q --verify HEAD)
# --build-arg BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
#
# See https://wiki.52north.org/Documentation/ImageAndContainerLabelSpecification
# regarding the used labels
#
FROM python:3.9-slim-buster
ARG USER=mari-data
ARG HOME=/${USER}
ARG GROUP=${USER}
ARG ID=52142
# https://docs.python.org/3/using/cmdline.html#envvar-PYTHONUNBUFFERED
ENV PYTHONUNBUFFERED=1
# https://docs.python.org/3/using/cmdline.html#envvar-PYTHONDONTWRITEBYTECODE
ENV PYTHONDONTWRITEBYTECODE 1
# https://flask.palletsprojects.com/en/1.1.x/config/#ENV
ENV FLASK_ENV=production
ENV STATIC_URL /static
ENV STATIC_PATH /${HOME}/EnvDataServer/static
ENV PYTHONPATH "${PYTHONPATH}:.:EnvironmentalData:utilities"
LABEL maintainer="Jürrens, Eike Hinderk <[email protected]>" \
org.opencontainers.image.authors="Jürrens, Eike Hinderk <[email protected]>" \
org.opencontainers.image.url="https://github.com/52North/MariDataHarvest.git" \
org.opencontainers.image.vendor="52°North GmbH" \
org.opencontainers.image.licenses="GPL-3.0-or-later" \
org.opencontainers.image.title="52°North MariData EnvDataServer" \
org.opencontainers.image.description="Python Flask based web application for downloading environmental data"
WORKDIR ${HOME}
COPY ./requirements.util.txt ./
COPY ./requirements.environmentaldata.txt ./
COPY ./requirements.envdataserver.txt ./
RUN pip install --no-cache-dir -r requirements.envdataserver.txt
COPY ./EnvDataServer/ ./EnvDataServer/
COPY ./EnvDataServer/templates ./EnvDataServer/templates
COPY ./EnvironmentalData ./EnvironmentalData
COPY ./utilities ./utilities
COPY ./utilities/logging.yaml ./utilities/logging.yaml
RUN addgroup --system --gid ${ID} ${GROUP} && \
adduser --system --home ${HOME} --no-create-home --uid ${ID} --ingroup ${GROUP} ${USER} && \
mkdir ${HOME}/download && \
chown --recursive ${USER}:${GROUP} ${HOME}
USER ${USER}
CMD ["python", "./EnvDataServer/app.py"]
ARG GIT_COMMIT
LABEL org.opencontainers.image.revision="${GIT_COMMIT}"
ARG BUILD_DATE
LABEL org.opencontainers.image.created="${BUILD_DATE}"
ARG VERSION=1.0.0
LABEL org.opencontainers.image.version="${VERSION}" \
org.opencontainers.image.ref.name="52north/mari-data_env-data-api-${VERSION}"
EXPOSE 8080