Host your private PyPI server by running devpi as a Docker container.
docker run -d --name=devpi -p 80:80 tonyseek/devpi:2.1.5-1
For example, to upgrade devpi from 2.1.3-1 to 2.1.5-1, we need to:
-
Update the docker image:
docker pull tonyseek/devpi:2.1.5-1 -
Stop the running container:
docker stop devpi -
Export data to a new container:
BACKUP_DIR=/var/lib/devpi-upgrade docker run --name=devpi-upgrade --volume=$BACKUP_DIR --volumes-from=devpi tonyseek/devpi:2.1.3-1 --export=$BACKUP_DIR -
Import data from that container using new image:
docker run --rm --volumes-from=devpi-upgrade --volumes-from=devpi tonyseek/devpi:2.1.5-1 --import=$BACKUP_DIR -
Remove the old container and create the new one:
docker run --name=devpi-data --volumes-from=devpi busybox true docker rm devpi docker run -d --name=devpi -p 80:80 tonyseek/devpi:2.1.5-1 -
Check the new devpi on its website and remove useless containers:
docker rm devpi-data devpi-upgrade