Better dockerfile w/ GPG_TTY & bootstrapped stack

This commit is contained in:
Tim Dysinger 2016-05-05 20:40:58 -07:00
parent 11e1bf2f7d
commit a562702b3b
No known key found for this signature in database
GPG key ID: 155E7413C156F68B

View file

@ -8,6 +8,7 @@ RUN apt-get -y install expect ;# needed to automate GPG key trust
RUN apt-get -y install build-essential ;# needed by Stack at runtime RUN apt-get -y install build-essential ;# needed by Stack at runtime
RUN apt-get -y install libgmp-dev ;# needed by Stack at runtime RUN apt-get -y install libgmp-dev ;# needed by Stack at runtime
RUN apt-get -y install xz-utils ;# needed by Stack at runtime RUN apt-get -y install xz-utils ;# needed by Stack at runtime
RUN apt-get -y install zlib1g-dev ;# needed by Stack at runtime
# USER # USER
ENV USER user ENV USER user
@ -26,16 +27,29 @@ CMD /bin/bash -l
WORKDIR $HOME WORKDIR $HOME
USER $USER USER $USER
RUN curl -s https://nixos.org/nix/install | sh RUN curl -s https://nixos.org/nix/install | sh
RUN echo "\nsource /nix/var/nix/profiles/default/etc/profile.d/nix.sh" \ RUN echo 'source /nix/var/nix/profiles/default/etc/profile.d/nix.sh' \
| tee -a $HOME/.bash_profile | tee -a $HOME/.bash_profile
# INSTALL GNUPGs # INSTALL GNUPGs
RUN bash -lc "nix-env -p /nix/var/nix/profiles/gpg14 -iA nixpkgs.nix nixpkgs.gnupg1orig" RUN bash -lc 'nix-env -p /nix/var/nix/profiles/gpg14 -iA nixpkgs.nix nixpkgs.ghc nixpkgs.gnupg1orig'
RUN bash -lc "nix-env -p /nix/var/nix/profiles/gpg20 -iA nixpkgs.nix nixpkgs.gnupg20" RUN bash -lc 'nix-env -p /nix/var/nix/profiles/gpg20 -iA nixpkgs.nix nixpkgs.ghc nixpkgs.gnupg20'
RUN bash -lc "nix-env -p /nix/var/nix/profiles/gpg21 -iA nixpkgs.nix nixpkgs.gnupg" RUN bash -lc 'nix-env -p /nix/var/nix/profiles/gpg21 -iA nixpkgs.nix nixpkgs.ghc nixpkgs.gnupg'
RUN bash -lc "nix-env -S /nix/var/nix/profiles/gpg14" ;# SET CURRENT PROFILE TO GPG 1.4 RUN echo 'export GPG_TTY=$(tty)' | tee -a $HOME/.bash_profile
# IMPORT & TRUST KEYS # IMPORT & TRUST KEYS
RUN bash -lc "gpg --import $HOME/.gnupg/public.asc $HOME/.gnupg/subkey.asc" RUN bash -lc 'gpg --import $HOME/.gnupg/public.asc $HOME/.gnupg/subkey.asc'
RUN bash -lc "expect $HOME/.gnupg/trust" RUN bash -lc 'expect $HOME/.gnupg/trust'
RUN rm $HOME/.gnupg/*.asc $HOME/.gnupg/trust RUN rm $HOME/.gnupg/*.asc $HOME/.gnupg/trust
# INSTALL STACK, BOOTSTRAP LTS & GHC & UNINSTALL STACK
RUN bash -lc 'nix-env -i stack ghc'
RUN bash -lc 'stack setup --resolver=lts-5.15'
# SET THE DEFAULT PROFILE TO GPG 1.4
RUN bash -lc 'nix-env -S /nix/var/nix/profiles/gpg14'
# UNCOMMENT THE stack image SECTION OF Stack's stack.yaml FILE AT THE BASE OF
# THE PROJECT. AFTER BUILDING WITH `stack image container` YOU CAN `docker run`
# THE RESULTING IMAGE & MESS AROUND WITH DIFFERENT VERSIONS OF GNUPG. SWITCH
# BETWEEN THEM WITH `nix-env -S /nix/var/nix/profiles/gpg14` (EXAMPLE)
# THE user's GPG KEY PASSWORD IS 'test'