Dockerfile 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. FROM ubuntu:18.04
  2. ENV GOPATH /root
  3. ENV PROTOBUF_VERSION 3.5.1
  4. RUN apt-get update && \
  5. apt-get install -y --no-install-suggests --no-install-recommends software-properties-common && \
  6. add-apt-repository -y ppa:gophers/archive && \
  7. apt-get update && \
  8. apt-get install -y --no-install-suggests --no-install-recommends locales golang-1.10-go python3 python3-dev libyaml-dev libyaml-0-2 libxml2-dev libxml2 curl git make unzip g++ && \
  9. curl -SLo protoc.zip https://github.com/google/protobuf/releases/download/v$PROTOBUF_VERSION/protoc-$PROTOBUF_VERSION-linux-x86_64.zip && \
  10. unzip -d /usr/local protoc.zip && rm protoc.zip && \
  11. locale-gen en_US.UTF-8 && \
  12. export PATH=/usr/lib/go-1.10/bin:$PATH && \
  13. go get -v -d gopkg.in/src-d/hercules.v4/... && \
  14. cd /root/src/gopkg.in/src-d/hercules.v4 && \
  15. export CGO_CXXFLAGS=-std=c++14 && \
  16. curl -L "https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-$(go env GOOS)-x86_64-1.7.0.tar.gz" | tar -C /usr/local -xz && \
  17. make && \
  18. rm /usr/local/bin/protoc && rm /usr/local/readme.txt && rm -rf /usr/local/include/google && \
  19. cp /root/bin/hercules /usr/local/bin && \
  20. cp -r /root/src/gopkg.in/src-d/hercules.v4/*.py /root/src/gopkg.in/src-d/hercules.v4/internal/pb /usr/local/bin && \
  21. sed -i 's/parser.add_argument("--backend",/parser.add_argument("--backend", default="Agg",/' /usr/local/bin/labours.py && \
  22. echo '#!/bin/bash\n\
  23. \n\
  24. echo\n\
  25. echo " $@"\n\
  26. echo\n\' > /browser && \
  27. chmod +x /browser && \
  28. curl https://bootstrap.pypa.io/get-pip.py | python3 && \
  29. pip3 install --no-cache-dir --no-build-isolation -r /root/src/gopkg.in/src-d/hercules.v4/requirements.txt https://github.com/mind/wheels/releases/download/tf1.7-cpu/tensorflow-1.7.0-cp36-cp36m-linux_x86_64.whl && \
  30. rm -rf /root/* && \
  31. apt-get remove -y software-properties-common golang-1.10-go python3-dev libyaml-dev libxml2-dev curl git make unzip g++ && \
  32. apt-get remove -y *-doc *-man && \
  33. rm -rf /usr/share/doc /usr/share/man && \
  34. apt-get autoremove -y && \
  35. rm -rf /var/lib/apt/lists/* && \
  36. apt-get clean
  37. EXPOSE 8000
  38. ENV BROWSER /browser
  39. ENV LC_ALL en_US.UTF-8
  40. ENV COUPLES_SERVER_TIME 7200