Skip to content

Commit f416962

Browse files
committed
Dockerfile: build with the HEAD version of cabal-install
This is necessary to avoid haskell/cabal#6125. Fixes haskell/cabal#6125 at last.
1 parent 86caeb2 commit f416962

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

Dockerfile

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,35 +10,43 @@
1010
# Docker> # hackage-server run --static-dir=datafiles
1111
#
1212

13+
# Set up the system environment.
1314
FROM ubuntu
14-
1515
RUN apt-get update
1616
RUN apt-get install -y software-properties-common
1717
RUN apt-add-repository ppa:hvr/ghc
1818
RUN apt-get update
19-
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y unzip libicu-dev postfix
2019
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y ghc-8.2.2 cabal-install-2.4
2120
ENV PATH /opt/ghc/bin:$PATH
2221
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
2433
RUN mkdir /build
2534
WORKDIR /build
2635
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
3039
ADD . ./
3140
RUN hackage-repo-tool create-keys --keys keys
3241
RUN cp keys/timestamp/*.private datafiles/TUF/timestamp.private
3342
RUN cp keys/snapshot/*.private datafiles/TUF/snapshot.private
3443
RUN hackage-repo-tool create-root --keys keys -o datafiles/TUF/root.json
3544
RUN hackage-repo-tool create-mirrors --keys keys -o datafiles/TUF/mirrors.json
36-
RUN cabal v2-build
3745
# tests currently don't pass: the hackage-security work introduced some
3846
# backup/restore errors (though they look harmless)
3947
# see https://github.com/haskell/hackage-server/issues/425
4048
#RUN cabal v2-test
41-
RUN cabal v2-install -j .
49+
RUN cabal v2-install --installdir=/root/.cabal/bin all
4250

4351
# setup server runtime environment
4452
RUN mkdir /runtime

0 commit comments

Comments
 (0)