aboutsummaryrefslogtreecommitdiffstats
path: root/Dockerfile
blob: f7b75907bb33ed3ee050a93b709fab73890d83bc (plain)
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
FROM scratch
MAINTAINER Jesus E.

# Set the $architecture ARG on your `docker build' command line with `--build-arg architecture=x86_64' or `i686'.
ARG architecture

ADD bootstrap.tar.gz /

RUN if [ "$architecture" != "x86_64" -a "$architecture" != "i686" ]; then \
    printf '\nYou need to specify the architecture with "--build-arg architecture=i686" on your\n\
    \r"docker build" command line. "x86_64" and "i686" are supported. Aborting build!\n\n'; exit 1; fi

RUN \
    # First
    pacman-key --init \
    && pacman-key --populate hyperbola \
    # Another bit of a hack, until Hyperbola bootstrap tarballs start including `sed' package, which is required by
    # `rankmirrors', which comes with `pacman' package, while that one doesn't depend on `sed'. (Note to self: ask the
    # Hyperbola devs about this; `locale-gen' uses `sed' too). Again, lucky it has very little deps.
    && sed -i "s/^Architecture = auto$/Architecture = $architecture/" /etc/pacman.conf \
    # `locale-gen' needs `gzip' (via `localedef', which works on /usr/share/i18n/charmaps/*.gz), `paccache' needs `awk'.
    # Update the system BTW.
    && pacman -Su --noconfirm --noprogressbar --quiet gzip awk \
    # Remove the last leftovers of the initial dirty `haveged' install.
    && paccache -r -k0 \
    && echo 'en_US.UTF-8 UTF-8' > /etc/locale.gen \
    && locale-gen \
    && echo 'LANG=en_US.UTF-8' > /etc/locale.conf

ENV LANG en_US.UTF-8

# As per https://docs.docker.com/engine/userguide/networking/default_network/configure-dns/, the /etc/hostname,
# /etc/hosts and /etc/resolv.conf should be rather left alone.