File: Dockerfile.dev

package info (click to toggle)
pycsw 2.6.2%2Bdfsg-3
  • links: PTS, VCS
  • area: non-free
  • in suites: forky, sid
  • size: 10,928 kB
  • sloc: xml: 38,354; python: 11,552; makefile: 173; sh: 3
file content (101 lines) | stat: -rw-r--r-- 3,227 bytes parent folder | download | duplicates (4)
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
92
93
94
95
96
97
98
99
100
101
# =================================================================
# Authors: Ricardo Garcia Silva <ricardo.garcia.silva@gmail.com>
# Authors: Massimo Di Stefano <epiesasha@me.com>
# Authors: Tom Kralidis <tomkralidis@gmail.com>
#
# Contributors: Arnulf Heimsbakk <aheimsbakk@met.no>
#               Tom Kralidis <tomkralidis@gmail.com>
#
# Copyright (c) 2017 Ricardo Garcia Silva
# Copyright (c) 2020 Massimo Di Stefano
# Copyright (c) 2020 Tom Kralidis
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation
# files (the "Software"), to deal in the Software without
# restriction, including without limitation the rights to use,
# copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following
# conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
#
#
# =================================================================

FROM alpine:3.11
LABEL maintainer="massimods@met.no,aheimsbakk@met.no,tomkralidis@gmail.com"

ARG PYCSW_HOME=/tmp/pycsw

ENV PYCSW_CONFIG=/etc/pycsw/pycsw.cfg

COPY . ${PYCSW_HOME}

RUN apk add binutils \
  && ${PYCSW_HOME}/docker/min-apk \
    ca-certificates \
    geos \
    libpq \
    libxml2 \
    libxslt \
    proj \
    proj-util \
    python3 \
    sqlite \
  && apk del binutils


RUN apk add --no-cache --virtual .build-deps \
    build-base \
    geos-dev \
    libxml2-dev \
    libxslt-dev \
    postgresql-dev \
    proj-dev \
    python3-dev \
    libffi-dev \
  && pip3 install --upgrade pip setuptools \
  && pip3 install wheel \
  && pip3 install gunicorn \
  && pip3 install --requirement ${PYCSW_HOME}/requirements.txt \
  && pip3 install --requirement ${PYCSW_HOME}/requirements-standalone.txt \
  && pip3 install --requirement ${PYCSW_HOME}/requirements-pg.txt \
  && pip3 install --requirement ${PYCSW_HOME}/requirements-dev.txt \
  && apk del .build-deps

ADD docker/pycsw.cfg ${PYCSW_CONFIG}
ADD docker/entrypoint.py /usr/local/bin/entrypoint.py

WORKDIR ${PYCSW_HOME}

RUN pip3 install . \
  && adduser -D -u 1000 pycsw \
  && cp -r ${PYCSW_HOME}/tests /home/pycsw \
  && chown -R pycsw:pycsw /home/pycsw/* \
  && rm -rf /usr/lib/python3*/*/tests \
  && rm -rf /usr/lib/python3*/ensurepip \
  && rm -rf /usr/lib/python3*/idlelib \
  && rm -f /usr/lib/python3*/distutils/command/*exe \
  && rm -rf /usr/share/man/* \
  && rm -fr ${PYCSW_HOME} \
  && find /usr/lib -name  "*.pyc" -o -name "*.pyo" -delete

WORKDIR /home/pycsw

EXPOSE 8000

USER pycsw

ENTRYPOINT [ "python3", "/usr/local/bin/entrypoint.py" ]