-
Notifications
You must be signed in to change notification settings - Fork 5
/
.gitpod.Dockerfile
45 lines (35 loc) · 1.48 KB
/
.gitpod.Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# Based on https://github.com/gitpod-io/template-nix/blob/main/.gitpod.Dockerfile
FROM gitpod/workspace-base
USER root
# Install Nix
RUN addgroup --system nixbld \
&& adduser gitpod nixbld \
&& for i in $(seq 1 30); do useradd -ms /bin/bash nixbld$i && adduser nixbld$i nixbld; done \
&& mkdir -m 0755 /nix && chown gitpod /nix \
&& mkdir -p /etc/nix && echo 'sandbox = false' > /etc/nix/nix.conf
# Install Nix
CMD /bin/bash -l
USER gitpod
ENV USER gitpod
WORKDIR /home/gitpod
RUN touch .bash_profile \
&& curl https://nixos.org/releases/nix/nix-2.3.14/install | sh
RUN echo '. /home/gitpod/.nix-profile/etc/profile.d/nix.sh' >> /home/gitpod/.bashrc
RUN mkdir -p /home/gitpod/.config/nixpkgs && echo '{ allowUnfree = true; }' >> /home/gitpod/.config/nixpkgs/config.nix
# Install cachix
RUN . /home/gitpod/.nix-profile/etc/profile.d/nix.sh \
&& nix-env -iA cachix -f https://cachix.org/api/v1/install \
&& cachix use cachix \
&& cachix use digitallyinduced
# Install git
RUN . /home/gitpod/.nix-profile/etc/profile.d/nix.sh \
&& nix-env -i git git-lfs
# Install direnv
RUN . /home/gitpod/.nix-profile/etc/profile.d/nix.sh \
&& nix-env -i direnv \
&& direnv hook bash >> /home/gitpod/.bashrc
# Make an empty IHP project to warm up the nix store
RUN . /home/gitpod/.nix-profile/etc/profile.d/nix.sh \
&& git clone https://github.com/digitallyinduced/ihp-boilerplate.git /tmp/warmup \
&& cd /tmp/warmup \
&& (nix-shell -j auto --cores 0 --quiet --run 'echo ok' || true)