Changes since v1:
- Don't create redundant /osv directory in builder dockerfiles.
- Remove dependency on wget in runner dockerfiles.

Signed-off-by: Fotis Xenakis <fo...@windowslive.com>
---
 docker/Dockerfile.builder             | 10 +++++-----
 docker/Dockerfile.builder-fedora-base | 20 ++++++++++----------
 docker/Dockerfile.builder-ubuntu-base | 20 ++++++++++----------
 docker/Dockerfile.runner-fedora       |  5 ++---
 docker/Dockerfile.runner-ubuntu       |  9 ++++-----
 docker/README.md                      |  9 +++++----
 6 files changed, 36 insertions(+), 37 deletions(-)

diff --git a/docker/Dockerfile.builder b/docker/Dockerfile.builder
index d8561ca9..b53cdf2b 100644
--- a/docker/Dockerfile.builder
+++ b/docker/Dockerfile.builder
@@ -8,7 +8,7 @@
 # This Docker file defines a container intended to build, test and publish
 # OSv kernel as well as many applications ...
 #
-ARG DIST="fedora-29"
+ARG DIST="fedora-31"
 FROM osvunikernel/osv-${DIST}-builder-base

 #
@@ -33,8 +33,8 @@ CMD /bin/bash
 #
 # NOTES
 #
-# Build the container based on default Fedora 29 base image:
-# docker build -t osv/builder-fedora-29 -f Dockerfile.builder .
+# Build the container based on default Fedora 31 base image:
+# docker build -t osv/builder-fedora-31 -f Dockerfile.builder .
 #
 # Build the container based of specific Ubuntu version
 # docker build -t osv/builder-ubuntu-19.10 -f Dockerfile.builder --build-arg 
DIST="ubuntu-19.10" .
@@ -43,8 +43,8 @@ CMD /bin/bash
 # docker build -t osv/builder-fedora-31 -f Dockerfile.builder --build-arg 
DIST="fedora-31" --build-arg GIT_ORG_OR_USER=a_user .
 #
 # Run the container FIRST time example:
-# docker run -it --privileged osv/builder-fedora-29
-#
+# docker run -it --privileged osv/builder-fedora-31
+#
 # To restart:
 # docker restart ID (from docker ps -a) && docker attach ID
 #
diff --git a/docker/Dockerfile.builder-fedora-base 
b/docker/Dockerfile.builder-fedora-base
index bb537047..e656ecb0 100644
--- a/docker/Dockerfile.builder-fedora-base
+++ b/docker/Dockerfile.builder-fedora-base
@@ -7,7 +7,7 @@
 # This Docker file defines an image based on Ubuntu distribution and provides
 # all packages necessary to build and run kernel and applications.
 #
-ARG DIST_VERSION=29
+ARG DIST_VERSION=31
 FROM fedora:${DIST_VERSION}

 RUN yum install -y git python3 file which
@@ -17,20 +17,20 @@ RUN yum install -y git python3 file which
 #

 # - prepare directories
-RUN mkdir /git-repos
+RUN mkdir -p /git-repos/osv/scripts

-# - clone OSv just to get setup.py
-WORKDIR /git-repos
+# - get setup.py
 ARG GIT_ORG_OR_USER=cloudius-systems
-RUN git clone --depth 1 -b master --single-branch 
https://github.com/${GIT_ORG_OR_USER}/osv.git
-WORKDIR /git-repos/osv
+ARG GIT_BRANCH=master
+ADD 
https://raw.githubusercontent.com/${GIT_ORG_OR_USER}/osv/${GIT_BRANCH}/scripts/linux_distro.py
 /git-repos/osv/scripts/
+ADD 
https://raw.githubusercontent.com/${GIT_ORG_OR_USER}/osv/${GIT_BRANCH}/scripts/setup.py
 /git-repos/osv/scripts/

-# - install all required packages and remove OSv git repo
-RUN scripts/setup.py
-RUN rm -rf /git-repos
+# - install all required packages and remove scripts
+RUN python3 /git-repos/osv/scripts/setup.py && rm -rf /git-repos/osv/scripts

 # - install Capstan
-RUN wget 
https://github.com/cloudius-systems/capstan/releases/latest/download/capstan -O 
/usr/local/bin/capstan
+ADD 
https://github.com/cloudius-systems/capstan/releases/latest/download/capstan 
/usr/local/bin/capstan
 RUN chmod u+x /usr/local/bin/capstan

+WORKDIR /git-repos/osv
 CMD /bin/bash
diff --git a/docker/Dockerfile.builder-ubuntu-base 
b/docker/Dockerfile.builder-ubuntu-base
index 9c9bf551..acf0b2a3 100644
--- a/docker/Dockerfile.builder-ubuntu-base
+++ b/docker/Dockerfile.builder-ubuntu-base
@@ -7,7 +7,7 @@
 # This Docker file defines an image based on Ubuntu distribution and provides
 # all packages necessary to build and run kernel and applications.
 #
-ARG DIST_VERSION=19.04
+ARG DIST_VERSION=19.10
 FROM ubuntu:${DIST_VERSION}

 ENV DEBIAN_FRONTEND noninteractive
@@ -23,22 +23,22 @@ RUN apt-get update -y && apt-get install -y git python3
 #

 # - prepare directories
-RUN mkdir /git-repos
+RUN mkdir -p /git-repos/osv/scripts

-# - clone OSv
-WORKDIR /git-repos
+# - get setup.py
 ARG GIT_ORG_OR_USER=cloudius-systems
-RUN git clone --depth 1 -b master --single-branch 
https://github.com/${GIT_ORG_OR_USER}/osv.git
-WORKDIR /git-repos/osv
+ARG GIT_BRANCH=master
+ADD 
https://raw.githubusercontent.com/${GIT_ORG_OR_USER}/osv/${GIT_BRANCH}/scripts/linux_distro.py
 /git-repos/osv/scripts/
+ADD 
https://raw.githubusercontent.com/${GIT_ORG_OR_USER}/osv/${GIT_BRANCH}/scripts/setup.py
 /git-repos/osv/scripts/

-# - install all required packages and delete OSv repo
-RUN scripts/setup.py
-RUN rm -rf /git-repos
+# - install all required packages and remove scripts
+RUN python3 /git-repos/osv/scripts/setup.py && rm -rf /git-repos/osv/scripts

 RUN update-alternatives --set java 
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

 # - install Capstan
-RUN wget 
https://github.com/cloudius-systems/capstan/releases/latest/download/capstan -O 
/usr/local/bin/capstan
+ADD 
https://github.com/cloudius-systems/capstan/releases/latest/download/capstan 
/usr/local/bin/
 RUN chmod u+x /usr/local/bin/capstan

+WORKDIR /git-repos/osv
 CMD /bin/bash
diff --git a/docker/Dockerfile.runner-fedora b/docker/Dockerfile.runner-fedora
index bebcb8d4..3155ace0 100644
--- a/docker/Dockerfile.runner-fedora
+++ b/docker/Dockerfile.runner-fedora
@@ -8,7 +8,7 @@
 # This Docker file defines a container intended to run and test OSv
 # It comes with capstan that can pull kernel and pre-built MPM packages
 #
-ARG DIST_VERSION=29
+ARG DIST_VERSION=31
 FROM fedora:${DIST_VERSION}

 RUN yum install -y \
@@ -17,7 +17,6 @@ python3 \
 file \
 which \
 curl \
-wget \
 qemu-system-x86 \
 qemu-img

@@ -31,7 +30,7 @@ ARG GIT_BRANCH=master
 RUN git clone --depth 1 -b ${GIT_BRANCH} --single-branch 
https://github.com/${GIT_ORG_OR_USER}/osv.git

 # - install Capstan
-RUN wget 
https://github.com/cloudius-systems/capstan/releases/latest/download/capstan -O 
/usr/local/bin/capstan
+ADD 
https://github.com/cloudius-systems/capstan/releases/latest/download/capstan 
/usr/local/bin/capstan
 RUN chmod u+x /usr/local/bin/capstan

 CMD /bin/bash
diff --git a/docker/Dockerfile.runner-ubuntu b/docker/Dockerfile.runner-ubuntu
index 247612a2..14641655 100644
--- a/docker/Dockerfile.runner-ubuntu
+++ b/docker/Dockerfile.runner-ubuntu
@@ -8,7 +8,7 @@
 # This Docker file defines a container intended to run and test OSv
 # It comes with capstan that can pull kernel and pre-built MPM packages
 #
-ARG DIST_VERSION=19.04
+ARG DIST_VERSION=19.10
 FROM ubuntu:${DIST_VERSION}

 ENV DEBIAN_FRONTEND noninteractive
@@ -21,12 +21,11 @@ RUN apt-get update -y && apt-get install -y \
 git \
 python3 \
 curl \
-wget \
 qemu-system-x86 \
 qemu-utils

 # - prepare directories
-RUN mkdir /git-repos /result
+RUN mkdir /git-repos

 # - clone OSv
 WORKDIR /git-repos
@@ -35,7 +34,7 @@ ARG GIT_BRANCH=master
 RUN git clone --depth 1 -b ${GIT_BRANCH} --single-branch 
https://github.com/${GIT_ORG_OR_USER}/osv.git

 # - install Capstan
-RUN wget 
https://github.com/cloudius-systems/capstan/releases/latest/download/capstan -O 
/usr/local/bin/capstan
+ADD 
https://github.com/cloudius-systems/capstan/releases/latest/download/capstan 
/usr/local/bin/capstan
 RUN chmod u+x /usr/local/bin/capstan

 CMD /bin/bash
@@ -51,7 +50,7 @@ CMD /bin/bash
 #
 # Run the container FIRST time example:
 # docker run -it --privileged osv/runner-ubuntu
-#
+#
 # To restart:
 # docker restart ID (from docker ps -a) && docker attach ID
 #
diff --git a/docker/README.md b/docker/README.md
index 9fee9f17..1761da45 100644
--- a/docker/README.md
+++ b/docker/README.md
@@ -2,14 +2,14 @@
 Docker files intended to help setup OSv build environment.
 There are two versions of it - one based on Ubuntu and another on Fedora.

-Build container image
+Build container image (default, based on Fedora)
 ```
-docker build -t osv/builder-ubuntu -f Dockerfile.builder-ubuntu . # Use 
specific docker file
+docker build -t osv/builder -f Dockerfile.builder .
 ```

 Build container image for specific version of linux distribution and git repo 
owner (if forker)
 ```
-docker build -t osv/builder-fedora-31 -f Dockerfile.builder-fedora --build-arg 
DIST_VERSION=31 --build-arg GIT_ORG_OR_USER=a_user .
+docker build -t osv/builder-ubuntu-19.10 -f Dockerfile.builder --build-arg 
DIST="ubuntu-19.10" --build-arg GIT_ORG_OR_USER=a_user .
 ```

 Run container
@@ -41,8 +41,9 @@ git pull

 To update Fedora/Ubuntu packages run this in /git-repos/osv directory:
 ```bash
-./script/setup.py
+./scripts/setup.py
 ```
+
 # Docker OSv runner
 Docker files intended to help setup OSv environment to run and test OSv.
 There are two versions of it - one based on Ubuntu and another on Fedora.
--
2.26.1

-- 
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to osv-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/osv-dev/VI1PR03MB4383FB4A92D5ED68540ACA4DA6D90%40VI1PR03MB4383.eurprd03.prod.outlook.com.

Reply via email to