updated seterrychen/apt-mirror-http-server to ubuntu 18.04 LTS. All credits go to him.
442
Using Docker to construct your APT(Advanced Packaging Tools) mirror HTTP server.
docker run -d --restart always \
-e TIMEOUT=4h -e PUID=1000 -e PGID=100 \
-e MIRROR_URL=http://archive.ubuntu.com/ubuntu \
-e EXTRA1="deb http://ppa.launchpad.net/jonathonf/zfs/ubuntu bionic main" \
-e EXTRA2="deb http://ppa.launchpad.net/wireguard/wireguard/ubuntu bionic main" \
-v /path/data:/var/www/html/ \
--name apt-mirror \
-p 81:80 kongkrit/apt-mirror-apache2
-v /path/data: the path which you want to store data-e MIRROR_URL=url: to replace default URL (http://archive.ubuntu.com/ubuntu) - See Ubuntu Mirrors-e DIST1=bionic: the release you want to mirror.
Default for DIST1 is bionic (Ubuntu 18.04)-e DIST2=focal: additional release you want to mirror. Set to blank ("") to skip.
Default for DIST2 is focal (Ubuntu 20.04)-e DIST3="": additional release you want to mirror. Set to blank ("") to skip.-e EXTRA1=text: to add more repo to mirror - for example: -e EXTRA1="deb http://ppa.launchpad.net/jonathonf/zfs/ubuntu bionic main"
will add this extra line to the mirror.list file
-e EXTRA2, EXTRA3, EXTRA4, EXTRA5: same as EXTRA1-e TIMEOUT=timeout-value: to set the resync period, default is 12 hours. See the TIMEOUT format description-e NTHREADS=10: number of wget threads to use to pull from MIRROR_URL - default to 10-e PUID=userid: set to a userid that can access the mounted volume (see note below)-e PGID=groupid: set to a groupid that can access the mounted volume (see note below)When using volumes (-v flags), permissions issues can arise between the host OS and the container. We avoid this issue by allowing you to specify the user PUID and group PGID.
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
In this instance PUID=1000 and PGID=1000. To find yours use id user as below:
$ id username
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
You only need to set the PUID and PGID variables if you are mounting the /var/www/html folder
http://repo-server:81 (port is 81 in the docker run example above) and you'll see Index of /, click on ubuntu and click mirror, you will see mirror.math.princeton.edu and ppa.launchpad.netubuntu where the contents will be dists and pools folders. And then, follow that with release_name repo_lists So, if the current /etc/apt/sources.list read like this:deb http://mirror.math.princeton.edu/pub/ubuntu bionic main restricted universe multiverse
deb http://mirror.math.princeton.edu/pub/ubuntu bionic-updates main restricted universe multiverse
deb http://mirror.math.princeton.edu/pub/ubuntu bionic-backports main restricted universe multiverse
deb http://mirror.math.princeton.edu/pub/ubuntu bionic-security main restricted universe multiverse
/etc/apt/sources.list are:deb [arch=amd64] http://repo-server:81/ubuntu/mirror/mirror.math.princeton.edu/pub/ubuntu bionic main restricted universe multiverse
deb [arch=amd64] http://repo-server:81/ubuntu/mirror/mirror.math.princeton.edu/pub/ubuntu bionic-updates main restricted universe multiverse
deb [arch=amd64] http://repo-server:81/ubuntu/mirror/mirror.math.princeton.edu/pub/ubuntu bionic-backports main restricted universe multiverse
deb [arch=amd64] http://repo-server:81/ubuntu/mirror/mirror.math.princeton.edu/pub/ubuntu bionic-security main restricted universe multiverse
/etc/apt/sources.list.d/jonathonf-ubuntu-zfs-bionic.list isdeb http://ppa.launchpad.net/jonathonf/zfs/ubuntu bionic main
/etc/apt/sources.list.d/jonathonf-ubuntu-zfs-bionic.list is:deb [arch=amd64] http://repo-server:81/ubuntu/mirror/ppa.launchpad.net/jonathonf/zfs/ubuntu bionic main
2020-01-31
2020-01-29
2020-01-04
2020-01-01
2017-07-27: version 0.1.2
2017-04-28: version 0.1.1
2017-04-27: version 0.1
MIRROR_URLTIMEOUT environment value to RESYNC_PERIODContent type
Image
Digest
Size
76 MB
Last updated
over 6 years ago
docker pull kongkrit/apt-mirror-apache2