git.fiddlerwoaroof.com
Dockerfile
67f02b50
 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"]