|
1 # set base image (host OS) |
|
2 FROM docker.io/python:2.7-alpine as builder |
|
3 |
|
4 ENV VIRTUALENV=/opt/venv |
|
5 |
|
6 # set the working directory in the container |
|
7 WORKDIR /code |
|
8 |
|
9 RUN \ |
|
10 pip install virtualenv && \ |
|
11 virtualenv $VIRTUALENV |
|
12 |
|
13 ENV PATH="$VIRTUALENV/bin:$PATH" |
|
14 |
|
15 # copy the dependencies file to the working directory |
|
16 COPY docker/server/requirements.txt . |
|
17 |
|
18 ENV JCC_JDK=/usr/lib/jvm/java-11-openjdk |
|
19 ENV JCC_LFLAGS="-L/usr/lib/jvm/java-11-openjdk/jre/lib -ljava -L/usr/lib/jvm/java-11-openjdk/jre/lib/server -ljvm" |
|
20 ENV PATH="/usr/lib/jvm/java-11-openjdk/jre/bin:$PATH" |
|
21 ENV LD_LIBRARY_PATH="/usr/lib/jvm/java-11-openjdk/jre/lib:/usr/lib/jvm/java-11-openjdk/jre/lib/server" |
|
22 # ENV JCC_LFLAGS=-L/usr/lib/jvm/java-8-openjdk/jre/lib/amd64 |
|
23 |
|
24 |
|
25 RUN \ |
|
26 apk add --no-cache postgresql-client postgresql-libs libxml2 libxslt libmemcached openjdk11 apache-ant bash jpeg-dev zlib-dev freetype-dev lcms2-dev openjpeg-dev tiff-dev tk-dev tcl-dev && \ |
|
27 apk add --no-cache --virtual .build-deps build-base postgresql-dev libxml2-dev libxslt-dev linux-headers sed wget patchelf git jpeg-dev zlib-dev freetype-dev lcms2-dev openjpeg-dev tiff-dev tk-dev tcl-dev && \ |
|
28 wget https://dlcdn.apache.org/lucene/pylucene/pylucene-7.7.1-src.tar.gz && \ |
|
29 tar zxvf pylucene-7.7.1-src.tar.gz && \ |
|
30 cd pylucene-7.7.1 && \ |
|
31 cd jcc && \ |
|
32 python setup.py install && \ |
|
33 cd .. && \ |
|
34 sed -i '1s/^/PREFIX_PYTHON=\/opt\/venv\nANT=JAVA_HOME=\/usr\/lib\/jvm\/java-11-openjdk \/usr\/bin\/ant\nPYTHON=$(PREFIX_PYTHON)\/bin\/python\nJCC=$(PYTHON) -m jcc --shared\nNUM_FILES=8\n/' Makefile && \ |
|
35 sed -i 's/http:\/\/repo1\.maven\.org\/maven2/https:\/\/repo1.maven.org\/maven2/' lucene-java-7.7.1/lucene/common-build.xml && \ |
|
36 patchelf --add-needed libjvm.so /opt/venv/lib/python2.7/site-packages/JCC-3.5-py2.7-linux-x86_64.egg/jcc/_jcc2.so && \ |
|
37 patchelf --add-needed libjvm.so /opt/venv/lib/python2.7/site-packages/JCC-3.5-py2.7-linux-x86_64.egg/libjcc2.so && \ |
|
38 make && \ |
|
39 make install && \ |
|
40 cd /code && \ |
|
41 wget https://hg.dev.iri-research.org/platform/archive/V01.11.tar.gz && \ |
|
42 tar zxvf V01.11.tar.gz && \ |
|
43 cd platform-V01.11/src/ldt && \ |
|
44 python setup.py sdist && \ |
|
45 pip install dist/ldt-1.11.tar.gz && \ |
|
46 cd /code && \ |
|
47 pip install -r requirements.txt |
|
48 |
|
49 |
|
50 FROM docker.io/python:2.7-alpine |
|
51 |
|
52 COPY --from=builder /opt/venv /opt/venv |
|
53 COPY web/tralalere /code/tralalere |
|
54 COPY web/manage.py /code/ |
|
55 |
|
56 |
|
57 |
|
58 ENV BASEDIR="/code" |
|
59 ENV PATH="/opt/venv/bin:$BASEDIR:$PATH" |
|
60 |
|
61 WORKDIR $BASEDIR |
|
62 |
|
63 RUN \ |
|
64 apk add --no-cache postgresql-client postgresql-libs libxml2 libxslt libmemcached openjdk11 apache-ant bash jpeg-dev zlib-dev freetype-dev lcms2-dev openjpeg-dev tiff-dev tk-dev tcl-dev bash && \ |
|
65 mkdir -p /static |
|
66 |
|
67 |
|
68 COPY docker/server/config.py ./tralalere/ |
|
69 |
|
70 COPY docker/server/tralalere.yml . |
|
71 COPY --chmod=0755 docker/server/entrypoint.sh / |
|
72 |
|
73 ENV PYTHONPATH "/code/" |
|
74 ENV DJANGO_SETTINGS_MODULE tralalere.settings |
|
75 ENV DEBUG "False" |
|
76 ENV DATABASE_URL "" |
|
77 ENV DJANGO_SECRET "" |
|
78 |
|
79 ENV PATH="/usr/lib/jvm/java-11-openjdk/jre/bin:$PATH" |
|
80 ENV LD_LIBRARY_PATH="/usr/lib/jvm/java-11-openjdk/jre/lib:/usr/lib/jvm/java-11-openjdk/jre/lib/server" |
|
81 |
|
82 EXPOSE 8000 |
|
83 |
|
84 ENTRYPOINT ["/entrypoint.sh"] |
|
85 |
|
86 # # command to run on container start |
|
87 CMD [ "/opt/venv/bin/uwsgi", "--yaml", "/code/tralalere.yml"] |