diff --git a/.gitignore b/.gitignore index 192d1d5..2cd6919 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,11 @@ config/apps.config config/production.tfvars config/ssh-keys +# custom chicken eggs for dockerfile +src/scss +src/html-widgets +src/schematra-session + # generated files all-apps/.env all-apps/lb/Caddyfile diff --git a/src/Dockerfile b/src/Dockerfile new file mode 100644 index 0000000..6a19691 --- /dev/null +++ b/src/Dockerfile @@ -0,0 +1,54 @@ +# based on https://github.com/scheme-containers/monorepo/blob/master/implementations/chicken/5/Dockerfile +FROM debian:trixie-slim AS build +RUN apt-get update && apt-get -y --no-install-recommends install \ + build-essential \ + && rm -rf /var/lib/apt/lists/* +WORKDIR /build +COPY checksum checksum +ADD https://code.call-cc.org/releases/5.4.0/chicken-5.4.0.tar.gz chicken.tar.gz +RUN sha256sum chicken.tar.gz && sha256sum -c checksum +RUN mkdir chicken && tar -C chicken --strip-components 1 -xf chicken.tar.gz +WORKDIR /build/chicken +RUN make +RUN make install + +FROM debian:trixie-slim +RUN apt-get update && apt-get -y --no-install-recommends install \ + gcc libc-dev libpq-dev \ + && rm -rf /var/lib/apt/lists/* +COPY --from=build /usr/local/ /usr/local/ + +COPY scss /var/scss +COPY html-widgets /var/html-widgets +COPY schematra-session /var/schematra-session +WORKDIR /var/scss +RUN chicken-install +WORKDIR /var/html-widgets +RUN chicken-install +WORKDIR /var/ + +RUN chicken-install srfi-1 srfi-13 srfi-18 srfi-158 srfi-194 \ + sxml-transforms schematra \ + uri-common http-client medea intarweb \ + sql-null openssl postgresql crypto-tools + +# Egg is currently broken should be able to move back to regular install after it is fixed +WORKDIR /var/schematra-session +RUN chicken-install + +WORKDIR /var +RUN mkdir nassella +WORKDIR /var/nassella +COPY mocks.scm mocks.scm +COPY db.scm db.scm +COPY nassella.scm nassella.scm +COPY run.scm run.scm +COPY docker-ssh-keygen.sh docker-ssh-keygen.sh +COPY nassella-latest.tar nassella-latest.tar +COPY root-key root-key + +RUN csc -O3 run.scm +RUN chmod +x run + +ENTRYPOINT ["./run"] +CMD ["-:a50"] diff --git a/src/checksum b/src/checksum new file mode 100644 index 0000000..0588cf6 --- /dev/null +++ b/src/checksum @@ -0,0 +1 @@ +3c5d4aa61c1167bf6d9bf9eaf891da7630ba9f5f3c15bf09515a7039bfcdec5f chicken.tar.gz \ No newline at end of file diff --git a/src/nassella.scm b/src/nassella.scm index 1bd2fed..bef22b8 100644 --- a/src/nassella.scm +++ b/src/nassella.scm @@ -20,7 +20,7 @@ html-widgets sxml-transforms schematra - schematra-body-parser + schematra.body-parser schematra-session uri-common http-client diff --git a/src/run.scm b/src/run.scm new file mode 100644 index 0000000..19343ac --- /dev/null +++ b/src/run.scm @@ -0,0 +1,4 @@ +(load "nassella.scm") +(import spiffy schematra) + +(with-schematra-app app (lambda () (start-server)))