Browse Source

Minimise bespoke scripting, use docker for docker operations

master
Adam Hunter 10 years ago
parent
commit
537102f8b2
  1. 13
      Dockerfile
  2. 34
      build.sh
  3. 9
      docker-compose-build.yml
  4. 2
      vars.env

13
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"

34
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}

9
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

2
vars.env

@ -0,0 +1,2 @@
DEVPI_VERSION=4.0.0
IMAGE=muccg/devpi
Loading…
Cancel
Save