|
3 | 3 | # Build the container |
4 | 4 | # $ docker build . -t siddhu/hackage-server |
5 | 5 | # |
6 | | -# Shell into the container |
7 | | -# $ docker run -it -p 8080:8080 siddhu/hackage-server /bin/bash |
8 | | -# |
9 | 6 | # Run the server |
10 | | -# Docker> # hackage-server run --static-dir=datafiles |
| 7 | +# $ docker run -it -p 8080:8080 siddhu/hackage-server |
11 | 8 | # |
12 | 9 |
|
13 | | -FROM ubuntu:18.04 |
| 10 | +FROM haskell:9.10.1-slim-bullseye |
| 11 | + |
| 12 | +RUN apt-get update && cabal update |
14 | 13 |
|
15 | | -RUN apt-get update |
16 | | -RUN apt-get install -y software-properties-common |
17 | | -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y unzip libicu-dev postfix zlib1g-dev libssl-dev |
| 14 | +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y \ |
| 15 | + libbrotli-dev \ |
| 16 | + libgd-dev \ |
| 17 | + libicu-dev \ |
| 18 | + libssl-dev \ |
| 19 | + pkg-config \ |
| 20 | + postfix \ |
| 21 | + unzip \ |
| 22 | + zlib1g-dev |
18 | 23 |
|
19 | | -RUN apt-add-repository ppa:hvr/ghc |
20 | | -RUN apt-get update |
21 | | -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y ghc-8.2.2 cabal-install-3.0 |
22 | | -ENV PATH /opt/ghc/bin:$PATH |
23 | | -RUN cabal v2-update |
24 | | -RUN mkdir /build |
25 | 24 | WORKDIR /build |
26 | 25 | ADD hackage-server.cabal cabal.project ./ |
27 | | -RUN cabal v2-build --only-dependencies --enable-tests -j |
28 | | -RUN cabal v2-install hackage-repo-tool |
| 26 | +RUN cabal build --only-dependencies --enable-tests -j |
| 27 | +RUN cabal install hackage-repo-tool |
29 | 28 | ENV PATH /root/.cabal/bin:$PATH |
30 | 29 | ADD . ./ |
31 | 30 | RUN hackage-repo-tool create-keys --keys keys |
32 | 31 | RUN cp keys/timestamp/*.private datafiles/TUF/timestamp.private |
33 | 32 | RUN cp keys/snapshot/*.private datafiles/TUF/snapshot.private |
34 | 33 | RUN hackage-repo-tool create-root --keys keys -o datafiles/TUF/root.json |
35 | 34 | RUN hackage-repo-tool create-mirrors --keys keys -o datafiles/TUF/mirrors.json |
36 | | -RUN cabal v2-build |
37 | | -# tests currently don't pass: the hackage-security work introduced some |
38 | | -# backup/restore errors (though they look harmless) |
39 | | -# see https://github.com/haskell/hackage-server/issues/425 |
40 | | -#RUN cabal v2-test |
41 | | -RUN cabal v2-install all |
| 35 | +RUN cabal build |
| 36 | +#RUN cabal test |
| 37 | +RUN cabal install all |
42 | 38 |
|
43 | 39 | # setup server runtime environment |
44 | | -RUN mkdir /runtime |
45 | | -RUN cp -r /build/datafiles /runtime/datafiles |
46 | 40 | WORKDIR /runtime |
| 41 | +RUN cp -r /build/datafiles /runtime/datafiles |
47 | 42 | RUN hackage-server init --static-dir=datafiles |
48 | | -CMD hackage-server run --static-dir=datafiles |
| 43 | +CMD hackage-server run --static-dir=datafiles --ip=0.0.0.0 --base-uri=http://localhost:8080 |
49 | 44 | EXPOSE 8080 |
0 commit comments