|
10 | 10 | # Docker> # hackage-server run --static-dir=datafiles
|
11 | 11 | #
|
12 | 12 |
|
| 13 | +# Set up the system environment. |
13 | 14 | FROM ubuntu
|
14 |
| - |
15 | 15 | RUN apt-get update
|
16 | 16 | RUN apt-get install -y software-properties-common
|
17 | 17 | RUN apt-add-repository ppa:hvr/ghc
|
18 | 18 | RUN apt-get update
|
19 |
| -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y unzip libicu-dev postfix |
20 | 19 | RUN DEBIAN_FRONTEND=noninteractive apt-get install -y ghc-8.2.2 cabal-install-2.4
|
21 | 20 | ENV PATH /opt/ghc/bin:$PATH
|
22 | 21 | RUN cabal v2-update
|
23 |
| -RUN apt-get install -y zlib1g-dev libssl-dev |
| 22 | + |
| 23 | +# Install current HEAD version of cabal-install. |
| 24 | +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y curl zlib1g-dev |
| 25 | +WORKDIR /tmp |
| 26 | +RUN curl --silent -L https://github.com/haskell/cabal/tarball/dc138034d469973fee43af86764567e4202ca84b | tar xz |
| 27 | +WORKDIR /tmp/haskell-cabal-dc13803 |
| 28 | +RUN cabal v2-install -j cabal-install |
| 29 | +ENV PATH /root/.cabal/bin:$PATH |
| 30 | + |
| 31 | +# Build hackage-server. |
| 32 | +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y zlib1g-dev libssl-dev unzip libicu-dev postfix |
24 | 33 | RUN mkdir /build
|
25 | 34 | WORKDIR /build
|
26 | 35 | ADD hackage-server.cabal cabal.project ./
|
27 |
| -RUN cabal v2-build --only-dependencies --enable-tests -j |
28 |
| -RUN cabal v2-install hackage-repo-tool |
29 |
| -ENV PATH /root/.cabal/bin:$PATH |
| 36 | +RUN cabal v2-build --only-dependencies --enable-tests |
| 37 | +RUN cabal v2-install --help |
| 38 | +RUN cabal v2-install --installdir=/root/.cabal/bin hackage-repo-tool |
30 | 39 | ADD . ./
|
31 | 40 | RUN hackage-repo-tool create-keys --keys keys
|
32 | 41 | RUN cp keys/timestamp/*.private datafiles/TUF/timestamp.private
|
33 | 42 | RUN cp keys/snapshot/*.private datafiles/TUF/snapshot.private
|
34 | 43 | RUN hackage-repo-tool create-root --keys keys -o datafiles/TUF/root.json
|
35 | 44 | RUN hackage-repo-tool create-mirrors --keys keys -o datafiles/TUF/mirrors.json
|
36 |
| -RUN cabal v2-build |
37 | 45 | # tests currently don't pass: the hackage-security work introduced some
|
38 | 46 | # backup/restore errors (though they look harmless)
|
39 | 47 | # see https://github.com/haskell/hackage-server/issues/425
|
40 | 48 | #RUN cabal v2-test
|
41 |
| -RUN cabal v2-install -j . |
| 49 | +RUN cabal v2-install --installdir=/root/.cabal/bin all |
42 | 50 |
|
43 | 51 | # setup server runtime environment
|
44 | 52 | RUN mkdir /runtime
|
|
0 commit comments