morph-single.dockerfile 829 B

123456789101112131415161718192021222324252627
  1. FROM ocurrent/opam:alpine-3.12-ocaml-4.11
  2. # https://caml.inria.fr/pub/docs/manual-ocaml/libref/Gc.html
  3. # https://linux.die.net/man/1/ocamlrun
  4. # https://blog.janestreet.com/memory-allocator-showdown/
  5. ENV OCAMLRUNPARAM a=2,o=240
  6. RUN sudo apk update && sudo apk add openssl-dev && \
  7. opam depext dune conf-libev httpaf httpaf-lwt-unix lwt yojson conf-postgresql conf-libffi
  8. COPY src/morph-tfb.opam src/dune-project src/morph-tfb.opam.template ./
  9. RUN opam install --yes --deps-only .
  10. COPY ./src/bin ./bin
  11. COPY ./src/server_io ./server_io
  12. COPY ./src/server_io_single ./server_io_single
  13. COPY ./src/server_io_nproc ./server_io_nproc
  14. ENV SERVER_IO=SINGLE
  15. RUN sudo chown -R opam ./bin && sudo chown -R opam ./server_*
  16. RUN opam exec -- dune build --profile release bin/tfb.exe
  17. EXPOSE 8080
  18. ENTRYPOINT _build/default/bin/tfb.exe