FROM alpine AS builder
WORKDIR /build
COPY --exclude=Dockerfile . .
RUN apk add --no-cache sbcl curl alpine-sdk
RUN { curl 'https://beta.quicklisp.org/quicklisp.lisp' \
    ; echo '(in-package #:cl-user)' \
    ; echo '(quicklisp-quickstart:install :path "/quicklisp/")' \
    ; echo '(ql-dist:install-dist "http://dist.shirakumo.org/shirakumo.txt" :prompt NIL)' \
    ; echo '(asdf:load-asd "/build/lichat-tcp-client.asd")' \
    ; echo '(ql:quickload :lichat-tcp-client)' \
    ; }| sbcl --disable-ldb --lose-on-corruption --disable-debugger
RUN { echo '(load "/quicklisp/setup.lisp")' \
    ; echo '(asdf:load-asd "/build/lichat-tcp-client.asd")' \
    ; echo '(asdf:make :lichat-tcp-client)' \
    ; }| sbcl --disable-ldb --lose-on-corruption --disable-debugger

FROM alpine
RUN apk add --no-cache zstd-libs libssl3 libcrypto3 ca-certificates
COPY --from=builder /build/lichat-tcp-client /bin/
ENTRYPOINT ["/bin/lichat-tcp-client"]
