Browse code
(init)
Ed L authored on 23/12/2019 20:14:36
Showing 5 changed files
Showing 5 changed files
0 | 3 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,46 @@ |
1 |
+FROM openfaas/classic-watchdog:0.18.1 as watchdog |
|
2 |
+ |
|
3 |
+FROM fiddlerwoaroof/sbcl-static:1.5.8 |
|
4 |
+ |
|
5 |
+# Allows you to add additional packages via build-arg |
|
6 |
+ARG ADDITIONAL_PACKAGE |
|
7 |
+ |
|
8 |
+COPY --from=watchdog /fwatchdog /usr/bin/fwatchdog |
|
9 |
+RUN chmod +x /usr/bin/fwatchdog |
|
10 |
+RUN apt install -y ca-certificates ${ADDITIONAL_PACKAGE} |
|
11 |
+ |
|
12 |
+# Add non root user |
|
13 |
+RUN addgroup --system app && adduser --system --group app |
|
14 |
+ |
|
15 |
+WORKDIR /home/app/ |
|
16 |
+ |
|
17 |
+COPY fn.asd . |
|
18 |
+RUN cp -R /root/quicklisp . |
|
19 |
+ |
|
20 |
+RUN chown -R app /home/app |
|
21 |
+ |
|
22 |
+USER app |
|
23 |
+ |
|
24 |
+RUN mkdir bin |
|
25 |
+ENV PATH "$PATH:/home/app/bin" |
|
26 |
+ |
|
27 |
+RUN sbcl --disable-debugger --load /home/app/quicklisp/setup.lisp \ |
|
28 |
+ --eval "(mapcar 'asdf:load-asd (directory \"*.asd\"))" \ |
|
29 |
+ --eval "(quicklisp:quickload (asdf:system-depends-on (asdf:find-system :fn)))" |
|
30 |
+ |
|
31 |
+USER ROOT |
|
32 |
+COPY src /home/app/src |
|
33 |
+ |
|
34 |
+USER app |
|
35 |
+RUN sbcl --disable-debugger --load /home/app/quicklisp/setup.lisp \ |
|
36 |
+ |
|
37 |
+ --eval "(mapcar 'asdf:load-asd (directory \"*.asd\"))" \ |
|
38 |
+ --eval "(quicklisp:quickload :fn)" \ |
|
39 |
+ --eval "(sb-ext:save-lisp-and-die \"/home/app/bin/fn\" :executable t :toplevel 'cl-user::main)" |
|
40 |
+ |
|
41 |
+ENV fprocess="/home/app/bin/fn" |
|
42 |
+EXPOSE 8080 |
|
43 |
+ |
|
44 |
+HEALTHCHECK --interval=3s CMD [ -e /tmp/.lock ] || exit 1 |
|
45 |
+ |
|
46 |
+ENTRYPOINT ["fwatchdog"] |
0 | 47 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,13 @@ |
1 |
+;;; -*- Mode:Lisp; Syntax:ANSI-Common-Lisp; Package: ASDF-USER -*- |
|
2 |
+(in-package :asdf-user) |
|
3 |
+ |
|
4 |
+(defsystem :fn |
|
5 |
+ :description "" |
|
6 |
+ :author "Ed L <edward@elangley.org>" |
|
7 |
+ :license "MIT" |
|
8 |
+ :depends-on (#:alexandria |
|
9 |
+ #:uiop |
|
10 |
+ #:serapeum) |
|
11 |
+ :serial t |
|
12 |
+ :components ((:module "src" |
|
13 |
+ :components ((:file "main"))))) |