39 lines
919 B
Docker
39 lines
919 B
Docker
FROM haskell:9.10-slim-bookworm AS build
|
|
|
|
RUN cabal update
|
|
|
|
COPY ./psb.cabal /mnt
|
|
WORKDIR /mnt
|
|
RUN cabal build --only-dependencies
|
|
|
|
COPY . /mnt
|
|
|
|
RUN cabal build
|
|
|
|
WORKDIR /github/workspace
|
|
|
|
FROM debian:12
|
|
|
|
RUN mkdir -p /github/workspace
|
|
|
|
RUN apt update
|
|
|
|
RUN apt upgrade -y
|
|
|
|
RUN apt install locales curl -y
|
|
|
|
# unfortunately debian is eternally outdated so we need to get esbuild from npm
|
|
RUN curl -fsSL https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz \
|
|
| tar -xz --strip-components=2 -C /usr/local/bin package/bin/esbuild
|
|
|
|
# If I don't do this then some bit in Haskell throws a fit for BS Locale reasons
|
|
RUN locale-gen en_US.UTF-8
|
|
ENV LANG=C.UTF-8
|
|
|
|
COPY --from=build /mnt /mnt
|
|
|
|
RUN export folder=$(ls /mnt/dist-newstyle/build/x86_64-linux) && mv /mnt/dist-newstyle/build/x86_64-linux/"$folder"/psb-0.2.0.0/x/psb/build/psb/psb /mnt/psb
|
|
|
|
WORKDIR /github/workspace
|
|
|
|
ENTRYPOINT ["/mnt/psb", "build"]
|