mirror of
https://github.com/freckle/yesod-auth-oauth2.git
synced 2026-01-21 00:21:56 +01:00
34 lines
977 B
Docker
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
|