From 94366fd00ec1e71b4f67ef8595b31162c6945c28 Mon Sep 17 00:00:00 2001 From: Thiago da Silva Date: Mon, 19 Aug 2019 22:31:41 +0200 Subject: [PATCH] Add Dockerfile to build a py3 swift docker image This patch contains only a new Dockerfile and few changes to be able to build both py2 and py3 images. Next patch should contain changes to add the gate jobs to build a py3 docker image Change-Id: Ifdebde9597a787abcd553756e22261e2faaeedfc --- Dockerfile | 5 ++ Dockerfile-py3 | 76 +++++++++++++++++++ .../install_scripts/10_apk_install_prereqs.sh | 3 - .../15_install_python_and_pip_src.sh | 57 -------------- docker/install_scripts/20_apk_install_py2.sh | 7 ++ .../install_scripts/20_pip_install_prereqs.sh | 32 -------- docker/install_scripts/21_apk_install_py3.sh | 10 +++ 7 files changed, 98 insertions(+), 92 deletions(-) create mode 100644 Dockerfile-py3 delete mode 100755 docker/install_scripts/15_install_python_and_pip_src.sh create mode 100755 docker/install_scripts/20_apk_install_py2.sh delete mode 100755 docker/install_scripts/20_pip_install_prereqs.sh create mode 100755 docker/install_scripts/21_apk_install_py3.sh diff --git a/Dockerfile b/Dockerfile index 39cbc92df7..5fb5cddfb2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,6 +35,11 @@ RUN mkdir /etc/swift && \ echo && \ echo && \ echo && \ + echo "================ starting apk_install_py2 ===================" && \ + /opt/swift/docker/install_scripts/20_apk_install_py2.sh && \ + echo && \ + echo && \ + echo && \ echo "================ starting swift_install ===================" && \ /opt/swift/docker/install_scripts/50_swift_install.sh && \ echo && \ diff --git a/Dockerfile-py3 b/Dockerfile-py3 new file mode 100644 index 0000000000..89ee92d2a5 --- /dev/null +++ b/Dockerfile-py3 @@ -0,0 +1,76 @@ +################################################ +# +# Alpine 3.10.1 Swift-All-In-One +# +################################################ + +FROM alpine:3.10.1 +MAINTAINER Openstack Swift + +ENV S6_LOGGING 1 +ENV S6_VERSION 1.21.4.0 +ENV SOCKLOG_VERSION 3.0.1-1 +ENV ARCH amd64 +ENV BUILD_DIR "/tmp" +ENV ENV="/etc/profile" + +#COPY docker/install_scripts /install_scripts +COPY . /opt/swift + +ADD https://github.com/just-containers/s6-overlay/releases/download/v$S6_VERSION/s6-overlay-$ARCH.tar.gz /tmp/ +ADD https://github.com/just-containers/s6-overlay/releases/download/v$S6_VERSION/s6-overlay-$ARCH.tar.gz.sig /tmp/ +ADD https://github.com/just-containers/socklog-overlay/releases/download/v$SOCKLOG_VERSION/socklog-overlay-$ARCH.tar.gz /tmp/ + +RUN mkdir /etc/swift && \ + echo && \ + echo && \ + echo && \ + echo "================ starting swift_needs ===================" && \ + /opt/swift/docker/install_scripts/00_swift_needs.sh && \ + echo && \ + echo && \ + echo && \ + echo "================ starting apk_install_prereqs ===================" && \ + /opt/swift/docker/install_scripts/10_apk_install_prereqs.sh && \ + echo && \ + echo && \ + echo && \ + echo "================ starting apk_install_py3 ===================" && \ + /opt/swift/docker/install_scripts/21_apk_install_py3.sh && \ + echo && \ + echo && \ + echo && \ + echo "================ starting swift_install ===================" && \ + /opt/swift/docker/install_scripts/50_swift_install.sh && \ + echo && \ + echo && \ + echo && \ + echo "================ installing s6-overlay ===================" && \ + curl https://keybase.io/justcontainers/key.asc | gpg --import && \ + gpg --verify /tmp/s6-overlay-$ARCH.tar.gz.sig /tmp/s6-overlay-$ARCH.tar.gz && \ + gunzip -c /tmp/s6-overlay-$ARCH.tar.gz | tar -xf - -C / && \ + gunzip -c /tmp/socklog-overlay-amd64.tar.gz | tar -xf - -C / && \ + rm -rf /tmp/s6-overlay* && \ + rm -rf /tmp/socklog-overlay* && \ + echo && \ + echo && \ + echo && \ + echo "================ starting pip_uninstall_dev ===================" && \ + /opt/swift/docker/install_scripts/60_pip_uninstall_dev.sh && \ + echo && \ + echo && \ + echo && \ + echo "================ starting apk_uninstall_dev ===================" && \ + /opt/swift/docker/install_scripts/99_apk_uninstall_dev.sh && \ + echo && \ + echo && \ + echo && \ + echo "================ clean up ===================" && \ + echo "TODO: cleanup" + #rm -rf /opt/swift + + +# Add Swift required configuration files +COPY docker/rootfs / + +ENTRYPOINT ["/init"] diff --git a/docker/install_scripts/10_apk_install_prereqs.sh b/docker/install_scripts/10_apk_install_prereqs.sh index eedff185a0..f021b4c113 100755 --- a/docker/install_scripts/10_apk_install_prereqs.sh +++ b/docker/install_scripts/10_apk_install_prereqs.sh @@ -25,6 +25,3 @@ apk add --update \ libxslt-dev \ libxml2 \ libxml2-dev \ - python \ - python-dev \ - py-pip diff --git a/docker/install_scripts/15_install_python_and_pip_src.sh b/docker/install_scripts/15_install_python_and_pip_src.sh deleted file mode 100755 index 294ec92f17..0000000000 --- a/docker/install_scripts/15_install_python_and_pip_src.sh +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/sh -set -e - -echo -echo -echo -echo "building python and pip" - -# export PATH=$PATH:/usr/include - -mkdir $BUILD_DIR/python27 -mkdir $BUILD_DIR/python36 - -echo -echo -echo -echo "building python 2.7.15" - -cd $BUILD_DIR/python27 -wget https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz -tar -zxvf Python-2.7.15.tgz -cd Python-2.7.15 -./configure --enable-optimizations -make -make DESTDIR=/opt/python27 install - -echo -echo -echo -echo "building python 3.6.5" - -cd $BUILD_DIR/python36 -wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz -tar -zxvf Python-3.6.5.tgz -cd Python-3.6.5 -./configure --enable-optimizations -make -make DESTDIR=/opt/python36 install - -export PATH=$PATH:/opt/python27/usr/local/bin:/opt/python36/usr/local/bin -echo "export PATH=$PATH:/opt/python27/usr/local/bin:/opt/python36/usr/local/bin" >> /etc/profile - -echo -echo -echo -echo "building pip" -wget https://bootstrap.pypa.io/get-pip.py -python ./get-pip.py - -echo -echo -echo -echo "deleting python internal test dirs" -for f in `cat /opt/swift/docker/install_scripts/python_test_dirs` ; do rm -rf $f; done - -rm -rf $BUILD_DIR/python27 -rm -rf $BUILD_DIR/python36 diff --git a/docker/install_scripts/20_apk_install_py2.sh b/docker/install_scripts/20_apk_install_py2.sh new file mode 100755 index 0000000000..7f4790d975 --- /dev/null +++ b/docker/install_scripts/20_apk_install_py2.sh @@ -0,0 +1,7 @@ +#!/bin/sh +set -e + +apk add --update \ + python \ + python-dev \ + py-pip diff --git a/docker/install_scripts/20_pip_install_prereqs.sh b/docker/install_scripts/20_pip_install_prereqs.sh deleted file mode 100755 index d9cc9e6b44..0000000000 --- a/docker/install_scripts/20_pip_install_prereqs.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh -set -e - -echo "+ + + + + + + + + + upgrading pip" && \ -pip install -U pip && \ -cd /opt/swift && \ -pip install -r requirements.txt - -#echo "+ + + + + + + + + + installing pastedeploy" && \ -#pip install pastedeploy && \ -#echo "+ + + + + + + + + + installing eventlet" && \ -#pip install eventlet && \ -#echo "+ + + + + + + + + + installing greenlet" && \ -#pip install greenlet && \ -#echo "+ + + + + + + + + + installing netifaces" && \ -#pip install netifaces && \ -#echo "+ + + + + + + + + + installing setuptools" && \ -#pip install setuptools && \ -#echo "+ + + + + + + + + + installing requests" && \ -#pip install requests && \ -#echo "+ + + + + + + + + + installing six" && \ -#pip install six && \ -#echo "+ + + + + + + + + + installing cryptography" && \ -#pip install cryptography && \ -#echo "+ + + + + + + + + + installing dnspython" && \ -#pip install dnspython -#echo "+ + + + + + + + + + installing xattr" && \ -#pip install xattr -#echo "+ + + + + + + + + + installing pyeclib" && \ -#pip install pyeclib -#echo "+ + + + + + + + + + installing lxml" && \ -#pip install lxml diff --git a/docker/install_scripts/21_apk_install_py3.sh b/docker/install_scripts/21_apk_install_py3.sh new file mode 100755 index 0000000000..a9f9b4b8c0 --- /dev/null +++ b/docker/install_scripts/21_apk_install_py3.sh @@ -0,0 +1,10 @@ +#!/bin/sh +set -e + +apk add --update \ + python3 \ + python3-dev \ + py3-pip + +if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi +