git.fiddlerwoaroof.com
Raw Blame History
FROM openfaas/classic-watchdog:0.18.1 as watchdog

FROM fiddlerwoaroof/sbcl-static:1.5.8

# Allows you to add additional packages via build-arg
ARG ADDITIONAL_PACKAGE

COPY --from=watchdog /fwatchdog /usr/bin/fwatchdog
RUN chmod +x /usr/bin/fwatchdog
RUN apt install -y ca-certificates ${ADDITIONAL_PACKAGE}

# Add non root user
RUN addgroup --system app && adduser --system --group app

WORKDIR /home/app/

COPY fn.asd           .
RUN cp -R /root/quicklisp  .

RUN chown -R app /home/app
  
USER app

RUN mkdir bin
ENV PATH "$PATH:/home/app/bin"

RUN sbcl --disable-debugger --load /home/app/quicklisp/setup.lisp \
         --eval "(mapcar 'asdf:load-asd (directory \"*.asd\"))" \
         --eval "(quicklisp:quickload (asdf:system-depends-on (asdf:find-system :fn)))"

USER ROOT
COPY src /home/app/src

USER app
RUN sbcl --disable-debugger --load /home/app/quicklisp/setup.lisp \

         --eval "(mapcar 'asdf:load-asd (directory \"*.asd\"))" \
         --eval "(quicklisp:quickload :fn)" \
         --eval "(sb-ext:save-lisp-and-die \"/home/app/bin/fn\" :executable t :toplevel 'cl-user::main)"

ENV fprocess="/home/app/bin/fn"
EXPOSE 8080

HEALTHCHECK --interval=3s CMD [ -e /tmp/.lock ] || exit 1

ENTRYPOINT ["fwatchdog"]