From d0cb7e599ed63fb6a29080d929ff7e7620a1fc1f Mon Sep 17 00:00:00 2001 From: Jessica Frazelle Date: Tue, 26 Jan 2016 15:49:32 -0800 Subject: [PATCH] add docs for package repo maintenance Signed-off-by: Jessica Frazelle --- project/PACKAGE-REPO-MAINTENANCE.md | 78 +++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 project/PACKAGE-REPO-MAINTENANCE.md diff --git a/project/PACKAGE-REPO-MAINTENANCE.md b/project/PACKAGE-REPO-MAINTENANCE.md new file mode 100644 index 0000000000..4419721dcf --- /dev/null +++ b/project/PACKAGE-REPO-MAINTENANCE.md @@ -0,0 +1,78 @@ +# Apt & Yum Repository Maintenance +## A maintainer's guide to managing Docker's package repos + +### How to clean up old experimental debs and rpms + +We release debs and rpms for experimental nightly, so these can build up. +To remove old experimental debs and rpms, and _ONLY_ keep the latest, follow the +steps below. + +1. Checkout docker master + +2. Run clean scripts + +```bash +docker build --rm --force-rm -t docker-dev:master . +docker run --rm -it --privileged \ + -v /path/to/your/repos/dir:/volumes/repos \ + -v $HOME/.gnupg:/root/.gnupg \ + -e DOCKER_RELEASE_DIR=/volumes/repos \ + docker-dev:master hack/make.sh clean-apt-repo clean-yum-repo +``` + +3. Re-sign the repo with your gpg key + +```bash +./hack/make/sign-repos +``` + +4. Upload the changed repos to `s3` (if you host on s3) + +5. Purge the cache, PURGE the cache, PURGE THE CACHE! + +### How to get out of a sticky situation + +Sh\*t happens. We know. Below are steps to get out of any "hash-sum mismatch" or +"gpg sig error" or the likes error that might happen to the apt repo. + +**NOTE:** These are apt repo specific, have had no experimence with anything similar +happening to the yum repo in the past so you can rest easy. + +For each step listed below, move on to the next if the previous didn't work. +Otherwise CELEBRATE! + +1. Purge the cache. + +2. Did you remember to sign the debs after releasing? + +Re-sign the repo with your gpg key: + +```bash +./hack/make/sign-repos +``` + +Upload the changed repo to `s3` (if that is where you host) + +PURGE THE CACHE. + +3. Run Jess' magical, save all, only in case of extreme emergencies, "you are +going to have to break this glass to get it" script. + +```bash +docker build --rm --force-rm -t docker-dev:master . +docker run --rm -it --privileged \ + -v /path/to/your/repos/dir:/volumes/repos \ + -v $HOME/.gnupg:/root/.gnupg \ + -e DOCKER_RELEASE_DIR=/volumes/repos \ + docker-dev:master hack/make.sh update-apt-repo +``` + +Re-sign the repo with your gpg key: + +```bash +./hack/make/sign-repos +``` + +Upload the changed repo to `s3` (if that is where you host) + +PURGE THE CACHE.