|
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