dockerfile: add ARG IMAGE, use three stages
author1138-4EB <1138-4EB@users.noreply.github.com>
Mon, 1 Jul 2019 12:50:15 +0000 (14:50 +0200)
committer1138-4EB <1138-4EB@users.noreply.github.com>
Wed, 7 Aug 2019 03:38:09 +0000 (05:38 +0200)
Dockerfile

index 2e0eba98cff96d74fa49517f3334ec3eacaafb6d..d21f6dc5bfb4ba216a0348ffb6f8a12d2c68b09d 100644 (file)
@@ -1,8 +1,24 @@
-FROM ubuntu:18.04 as builder
-LABEL author="Abdelrahman Hosny <abdelrahman.hosny@hotmail.com>"
+ARG IMAGE="ubuntu:18.04"
+
+#---
+
+FROM $IMAGE AS base
+
 RUN apt-get update -qq \
  && DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends \
     ca-certificates \
+    libreadline-dev \
+    tcl-dev \
+ && apt-get autoclean && apt-get clean && apt-get -y autoremove \
+ && update-ca-certificates \
+ && rm -rf /var/lib/apt/lists
+
+#---
+
+FROM base AS build
+
+RUN apt-get update -qq \
+ && DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends \
     clang \
     bison \
     build-essential \
@@ -10,28 +26,26 @@ RUN apt-get update -qq \
     gawk \
     git \
     libffi-dev \
-    libreadline-dev \
     pkg-config \
     python3 \
-    tcl-dev \
  && apt-get autoclean && apt-get clean && apt-get -y autoremove \
- && update-ca-certificates \
  && rm -rf /var/lib/apt/lists
 
 COPY . /
+
 RUN make \
  && make install \
  && mkdir dist && cp yosys yosys-abc yosys-config yosys-filterlib yosys-smtbmc dist/
 
-FROM ubuntu:18.04
-RUN apt-get update -qq \
- && DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends \
-    libreadline-dev \
-    tcl-dev
+#---
+
+FROM base
 
-COPY --from=builder /dist /build
+COPY --from=build /dist /opt/yosys
+
+ENV PATH /opt/yosys:$PATH
 
-ENV PATH /build:$PATH
 RUN useradd -m yosys
 USER yosys
-ENTRYPOINT ["yosys"]
+
+CMD ["yosys"]