docker/server/server.dockerfile
author ymh <ymh.work@gmail.com>
Wed, 04 Sep 2024 16:52:49 +0200
changeset 0 2a447b707b65
permissions -rw-r--r--
First commit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
# set base image (host OS)
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
FROM docker.io/python:2.7-alpine as builder
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
ENV VIRTUALENV=/opt/venv
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
# set the working directory in the container
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
WORKDIR /code
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
RUN \
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
    pip install virtualenv && \
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
    virtualenv $VIRTUALENV
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
ENV PATH="$VIRTUALENV/bin:$PATH"
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
# copy the dependencies file to the working directory
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
COPY docker/server/requirements.txt .
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
RUN \
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
 apk add --no-cache postgresql-client postgresql-libs libxml2 libxslt && \
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
 apk add --no-cache --virtual .build-deps gcc musl-dev postgresql-dev libxml2-dev libxslt-dev linux-headers && \
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
 pip install -r requirements.txt
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
COPY hashcut ./hashcut
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
COPY metadatacomposer ./metadatacomposer
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
COPY platform ./platform
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
RUN \
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
  cd /code/platform/src/ldt && python setup.py sdist && pip install --no-binary ":all:" dist/*.tar.gz && \
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
  cd /code/hashcut/src && python setup.py sdist && pip install --no-binary ":all:" dist/*.tar.gz && \
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
  cd /code/metadatacomposer/src && python setup.py sdist && pip install --no-binary ":all:" dist/*.tar.gz
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
FROM docker.io/python:2.7-alpine 
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
COPY --from=builder /opt/venv /opt/venv
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
WORKDIR /code
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
ENV PATH="/opt/venv/bin:/code:$PATH"
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
RUN \
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
 apk add --no-cache postgresql-client postgresql-libs libxml2 libxslt bash && \
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
 mkdir -p /static /iridata/www/ldt/web/static/media /run/log 
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
COPY platform_web/src ./platform_web
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
COPY docker/server/config.py ./platform_web/ldtplatform/
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
COPY docker/server/platform.yml .
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
COPY --chmod=0755 docker/server/entrypoint.sh .
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
ENV PYTHONPATH "/code/platform_web"
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
ENV DJANGO_SETTINGS_MODULE ldtplatform.settings
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
ENV DEBUG "False"
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
ENV DATABASE_URL ""
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
ENV ES_HOST "es"
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
ENV LDT_SECRET ""
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
EXPOSE 8000
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
ENTRYPOINT ["entrypoint.sh"]
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
# command to run on container start
2a447b707b65 First commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
CMD [ "/opt/venv/bin/uwsgi", "--yaml", "/code/platform.yml"]