webmachine-flambda.dockerfile 970 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. FROM ocaml/opam:debian-10-ocaml-4.12-flambda
  2. ENV DIR project
  3. # https://blog.packagecloud.io/eng/2017/02/21/set-environment-variable-save-thousands-of-system-calls/
  4. ENV TZ :/etc/localtime
  5. # https://caml.inria.fr/pub/docs/manual-ocaml/libref/Gc.html
  6. # https://linux.die.net/man/1/ocamlrun
  7. # https://blog.janestreet.com/memory-allocator-showdown/
  8. ENV OCAMLRUNPARAM a=2,o=240
  9. ENV PKGS="\
  10. atdgen>=2.2.1 \
  11. atdgen-runtime>=2.2.1 \
  12. caqti>=1.6.0 \
  13. caqti-driver-postgresql>=1.6.0 \
  14. caqti-lwt>=1.6.0 \
  15. cohttp-lwt-unix>=4.0.0 \
  16. conf-libev>=4-12 \
  17. dune>=2.8.5 \
  18. httpaf>=0.7.1 \
  19. httpaf-lwt-unix>=0.7.1 \
  20. lwt>=5.4.1 \
  21. lwt_ppx>=2.0.2 \
  22. opium>=0.20.0 \
  23. ppx_deriving_yojson>=3.6.1 \
  24. ppx_rapper>=3.0.0 \
  25. tiny_httpd>=0.8 \
  26. tyxml>=4.5.0 \
  27. webmachine>=0.7.0 \
  28. yojson>=1.7.0 \
  29. "
  30. RUN \
  31. opam update && \
  32. opam depext $PKGS && \
  33. opam install $PKGS
  34. WORKDIR /${DIR}
  35. COPY ./src /${DIR}
  36. RUN sudo chown -R opam: . && make build
  37. EXPOSE 8080
  38. ENTRYPOINT ["_build/default/src/bin/tfb.exe"]