yesod-auth-oauth2/Dockerfile

34 lines
977 B
Docker

FROM heroku/heroku:18-build
# Update system and install stack
ENV DEBIAN_FRONTEND noninteractive
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8
RUN apt-get update \
&& apt-get install sudo haskell-stack \
&& apt-get clean
# Create user "testuser"
RUN useradd -m -d /home/testuser -s /bin/bash testuser
RUN mkdir -p /etc/sudoers.d \
&& echo "testuser ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/testuser \
&& chmod 0440 /etc/sudoers.d/testuser
ENV HOME /home/testuser
WORKDIR /home/testuser
USER testuser
COPY --chown=testuser package.yaml app
COPY --chown=testuser stack.yaml app
# Update stack and cache dependencies and app in stages
ENV PATH="/home/testuser/.local/bin:${PATH}"
RUN stack upgrade
RUN cd app && stack setup
RUN cd app && stack build --only-dependencies Cabal
RUN cd app && stack build --only-dependencies yesod
COPY --chown=testuser . app
RUN cd app && stack install --flag yesod-auth-oauth2:example
WORKDIR /home/testuser/app
CMD yesod-auth-oauth2-example