DRY build.Dockerfile (#748)

In addition to Don't Repeat Yourself, using ENV shows the versions used in the image history.
This commit is contained in:
tcely
2023-05-09 15:06:12 -04:00
committed by GitHub
parent 8954f39425
commit 019db0ab91
+10 -5
View File
@@ -1,19 +1,24 @@
FROM ubuntu:22.04 AS final
FROM ubuntu:22.04 AS build
ARG TAG=22.04
FROM ubuntu:${TAG} AS build
### Build stage
# Install curl and git and smp-related dependencies
RUN apt-get update && apt-get install -y curl git build-essential libgmp3-dev zlib1g-dev llvm-12 llvm-12-dev libnuma-dev
# Specify bootstrap Haskell versions
ENV BOOTSTRAP_HASKELL_GHC_VERSION=8.10.7
ENV BOOTSTRAP_HASKELL_CABAL_VERSION=3.6.2.0
# Install ghcup
RUN curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_NONINTERACTIVE=1 BOOTSTRAP_HASKELL_GHC_VERSION=8.10.7 BOOTSTRAP_HASKELL_CABAL_VERSION=3.6.2.0 sh
RUN curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_NONINTERACTIVE=1 sh
# Adjust PATH
ENV PATH="/root/.cabal/bin:/root/.ghcup/bin:$PATH"
# Set both as default
RUN ghcup set ghc 8.10.7 && \
RUN ghcup set ghc "${BOOTSTRAP_HASKELL_GHC_VERSION}" && \
ghcup set cabal
COPY . /project
@@ -30,7 +35,7 @@ RUN smp=$(find ./dist-newstyle -name "smp-server" -type f -executable) && \
### Final stage
FROM final
FROM ubuntu:${TAG}
# Install OpenSSL dependency
RUN apt-get update && apt-get install -y openssl libnuma-dev