plack.dockerfile 827 B

12345678910111213141516171819202122232425262728293031
  1. FROM tfb/nginx:latest
  2. FROM tfb/perl:latest
  3. COPY --from=0 /nginx /nginx
  4. ENV NGINX_HOME="/nginx"
  5. ENV PATH=/nginx/sbin:${PATH}
  6. WORKDIR /plack
  7. ENV PERL_CARTON_PATH=/plack/local
  8. ENV PERL5LIB=${PERL_CARTON_PATH}/lib/perl5
  9. ENV PATH=${PERL_CARTON_PATH}/bin:${PERL_HOME}/bin:${PATH}
  10. RUN cpanm --notest --no-man-page \
  11. JSON::[email protected] \
  12. HTTP::Parser::[email protected] \
  13. [email protected] \
  14. [email protected] \
  15. DBD::[email protected] \
  16. [email protected]
  17. ADD ./app.pid /plack/
  18. ADD ./app.psgi /plack/
  19. add ./nginx.conf /plack/
  20. CMD nginx -c /plack/nginx.conf && \
  21. start_server --backlog=16384 --pid-file=/plack/app.pid --path=/tmp/perl-plack.sock -- plackup \
  22. -E production -s Starlet --max-keepalive-reqs 1000 --max-reqs-per-child 50000 \
  23. --min-reqs-per-child 40000 --max-workers=$(nproc) -a /plack/app.psgi