-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathDockerfile.harvester
85 lines (74 loc) · 3.17 KB
/
Dockerfile.harvester
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
# 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
ENV YEAR=2019
ENV MINUTES=30
ENV DATA_DIR=/mari-data/data
ENV STEP=0
ENV PYTHONUNBUFFERED=1
ENV DEPTH_FIRST=--depth-first
ENV CLEAR=--clear
ARG USER=mari-data
ARG HOME=/${USER}
ARG GROUP=${USER}
ARG ID=52142
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 Harvester" \
org.opencontainers.image.description="Python script for harvesting and processing AIS data."
WORKDIR ${HOME}
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY ./Harvester/*.py ./
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} && \
chown --recursive ${USER}:${GROUP} ${HOME} && \
mkdir --parents ${DATA_DIR} && \
chown --recursive ${USER}:${GROUP} ${DATA_DIR}
USER ${USER}
CMD python ./main.py --year="$YEAR" --minutes="$MINUTES" --dir="$DATA_DIR" --step="$STEP" "$CLEAR" "$DEPTH_FIRST"
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_harvester-${VERSION}"