Better dockerfile w/ GPG_TTY & bootstrapped stack
This commit is contained in:
parent
11e1bf2f7d
commit
a562702b3b
1 changed files with 21 additions and 7 deletions
|
@ -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'
|
||||||
|
|
Loading…
Reference in a new issue