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"]