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.