diff --git a/Dockerfile b/Dockerfile index f9daed8..8f917f7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,11 +2,10 @@ FROM python:2.7-alpine MAINTAINER https://github.com/muccg -ARG DEVPI_VERSION -ARG PIP_INDEX_URL=https://pypi.python.org/simple/ -ARG PIP_TRUSTED_HOST=127.0.0.1 +ARG ARG_DEVPI_VERSION +ARG ARG_PIP_OPTS="--upgrade --no-cache-dir" -ENV DEVPI_VERSION $DEVPI_VERSION +ENV DEVPI_VERSION $ARG_DEVPI_VERSION ENV VIRTUAL_ENV /env # devpi user @@ -17,12 +16,12 @@ RUN addgroup -S -g 1000 devpi \ RUN apk add --no-cache bash # create a virtual env in $VIRTUAL_ENV, ensure it respects pip version -RUN pip install $PIP_OPTS virtualenv \ +RUN pip install $ARG_PIP_OPTS virtualenv \ && virtualenv $VIRTUAL_ENV \ - && $VIRTUAL_ENV/bin/pip install --upgrade --no-cache-dir pip==$PYTHON_PIP_VERSION + && $VIRTUAL_ENV/bin/pip install $ARG_PIP_OPTS pip==$PYTHON_PIP_VERSION ENV PATH $VIRTUAL_ENV/bin:$PATH -RUN NO_PROXY=$PIP_TRUSTED_HOST pip --trusted-host $PIP_TRUSTED_HOST install -i $PIP_INDEX_URL --upgrade \ +RUN pip install $ARG_PIP_OPTS \ "devpi-client==2.6.3" \ "devpi-server==$DEVPI_VERSION" diff --git a/build.sh b/build.sh index 9163f79..68f8323 100755 --- a/build.sh +++ b/build.sh @@ -5,31 +5,23 @@ # break on error set -e +set -x +set -a -REPO="muccg" DATE=`date +%Y.%m.%d` +COMPOSE='docker-compose -f docker-compose-build.yml run docker19' -DEVPI_VERSION="4.0.0" +. ./vars.env -# ALternative config to use local proxy -#DOCKER_HOST=$(ip -4 addr show docker0 | grep -Po 'inet \K[\d.]+') -#HTTP_PROXY="http://${DOCKER_HOST}:3128" -#PIP_INDEX_URL="http://${DOCKER_HOST}:3141/root/pypi/+simple/" -#PIP_TRUSTED_HOST=${DOCKER_HOST} -#: ${DOCKER_BUILD_OPTIONS:="--no-cache --pull=true --build-arg PIP_TRUSTED_HOST=${PIP_TRUSTED_HOST} --build-arg PIP_INDEX_URL=${PIP_INDEX_URL} --build-arg DEVPI_VERSION=${DEVPI_VERSION}"} +## warm up cache for CI +docker pull ${IMAGE} || true -: ${DOCKER_BUILD_OPTIONS:="--pull=true --build-arg DEVPI_VERSION=${DEVPI_VERSION}"} +${COMPOSE} build --pull=true --build-arg ARG_DEVPI_VERSION=${DEVPI_VERSION} -t ${IMAGE}:latest /data +${COMPOSE} inspect ${IMAGE}:latest -image="${REPO}/devpi" -echo "################################################################### ${image}" -## warm up cache for CI -docker pull ${image} || true +${COMPOSE} tag -f ${IMAGE}:latest ${IMAGE}:latest-${DATE} +${COMPOSE} tag -f ${IMAGE}:latest ${IMAGE}:${DEVPI_VERSION} -for tag in "${image}:latest" "${image}:latest-${DATE}" "${image}:${DEVPI_VERSION}"; do - echo "############################################################# ${tag}" - set -x - docker build ${DOCKER_BUILD_OPTIONS} -t ${tag} . - docker inspect ${tag} - docker push ${tag} - set +x -done +${COMPOSE} push ${IMAGE}:latest +${COMPOSE} push ${IMAGE}:latest-${DATE} +${COMPOSE} push ${IMAGE}:${DEVPI_VERSION} diff --git a/docker-compose-build.yml b/docker-compose-build.yml new file mode 100644 index 0000000..5f15bad --- /dev/null +++ b/docker-compose-build.yml @@ -0,0 +1,9 @@ +# docker socket shared with the host +# docker creds shared with the host +docker19: + image: docker:1.9.1 + env_file: vars.env + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ~/.docker/config.json:/root/.docker/config.json + - ./:/data diff --git a/vars.env b/vars.env new file mode 100644 index 0000000..653ee52 --- /dev/null +++ b/vars.env @@ -0,0 +1,2 @@ +DEVPI_VERSION=4.0.0 +IMAGE=muccg/devpi