From 7083e9c0f1c2d8d59e5d2c549ce9975268c41b66 Mon Sep 17 00:00:00 2001 From: sneak Date: Sat, 15 Feb 2020 09:55:25 -0800 Subject: [PATCH] update for focal, also to support source mirror --- Dockerfile | 18 +++++++++++++++++- mirror/syncubuntu.sh | 17 +++++++++++------ 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index e98b537..0d07ffd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,11 +3,27 @@ FROM phusion/baseimage:0.11 VOLUME /var/mirror ENV MIRROR_ARCHITECTURES amd64 -ENV SOURCE_MIRROR +ENV UBUNTU_SOURCE_MIRROR ENV MIRROR_CATEGORIES main,universe,restricted,multiverse ENV UBUNTU_MIRROR_SOURCE archive.ubuntu.com ENV UBUNTU_MIRROR_PROJECTS bionic,bionic-updates,bionic-security,bionic-backports,focal,focal-updates,focal-security,focal-backports +# The following is the URL populated in /mirrors.txt as used by mirror:// +# protocol scheme in sources.list +# the idea is that you can DNS rewrite 'mirrors.ubuntu.com' to this mirror +# and it will return a "list" of mirrors that includes only itself. +# then you can safely use something like the following in your sources.list +# and it will work with max speed on your own dns-rewritten lan and in the +# unmodified datacenter talking to the real mirrors.ubuntu.com: +# +# MURM="main universe restricted multiverse" +# C="$(lsb_release -cs)" +# M="mirror://mirrors.ubuntu.com/mirrors.txt" +# echo "deb $M $C $MURM" > /etc/apt/sources.list.new +# echo "deb $M $C-updates $MURM" >> /etc/apt/sources.list.new +# echo "deb $M $C-backports $MURM" >> /etc/apt/sources.list.new +# echo "deb $M $C-security $MURM" >> /etc/apt/sources.list.new +# mv /etc/apt/sources.list.new /etc/apt/sources.list ENV THIS_MIRROR_URL http://172.17.0.1/ubuntu/ ADD ./sources.list /etc/apt/sources.list diff --git a/mirror/syncubuntu.sh b/mirror/syncubuntu.sh index 6364c4f..b677849 100755 --- a/mirror/syncubuntu.sh +++ b/mirror/syncubuntu.sh @@ -4,19 +4,24 @@ set -x THISDIR="$(cd $(dirname "$BASH_SOURCE") && pwd -P)" DST="/var/mirror" -echo "http://172.17.0.1/ubuntu/" > $DST/mirrors.txt +echo "$THIS_MIRROR_URL" > $DST/mirrors.txt chmod a+r $DST/mirrors.txt mkdir -p "$DST/ubuntu" export GNUPGHOME="/etc/debmirror/ubuntu" +SOURCEOPT="--nosource" +if [[ ! -z "$UBUNTU_SOURCE_MIRROR" ]]; then + SOURCEOPT="--source" +fi + debmirror \ - -a ${MIRROR_ARCHITECTURES:-amd64} \ - --no-source \ - -s ${MIRROR_CATEGORIES:-main,universe,multiverse,restricted} \ - -h ${UBUNTU_MIRROR_SOURCE:-archive.ubuntu.com} \ - -d ${UBUNTU_MIRROR_PROJECTS:-focal,focal-updates,focal-security,focal-backports} \ + -a ${MIRROR_ARCHITECTURES} \ + $SOURCEOPT \ + -s ${MIRROR_CATEGORIES} \ + -h ${UBUNTU_MIRROR_SOURCE} \ + -d ${UBUNTU_MIRROR_PROJECTS} \ --ignore-small-errors \ -r /ubuntu \ --getcontents \