5 Commits

Author SHA1 Message Date
5fbe1f088a Merge branch 'sneak/prepfocal' of git.eeqj.de:sneak/docker-ubuntumirror into sneak/prepfocal
All checks were successful
continuous-integration/drone/push Build is passing
2020-02-15 10:37:32 -08:00
ca7375fab1 update sources.list 2020-02-15 10:37:17 -08:00
d261e0763b Update '.drone.yml'
Some checks failed
continuous-integration/drone/push Build was killed
2020-02-15 18:33:53 +00:00
d90e22b44f update readme, fix some bugs
All checks were successful
continuous-integration/drone/push Build is passing
2020-02-15 10:29:22 -08:00
4ff75ed861 update readme, fix bugs
Some checks failed
continuous-integration/drone/push Build is failing
2020-02-15 10:21:00 -08:00
7 changed files with 61 additions and 48 deletions

View File

@@ -4,6 +4,7 @@ name: default
steps: steps:
- name: docker - name: docker
image: plugins/docker image: plugins/docker
network_mode: bridge
settings: settings:
repo: sneak/ubuntumirror repo: sneak/ubuntumirror
username: username:

View File

@@ -2,10 +2,12 @@ FROM phusion/baseimage:0.11
VOLUME /var/mirror VOLUME /var/mirror
ENV MIRROR_ARCHITECTURES amd64 ENV MIRROR_UPDATE_INTERVAL_SECONDS 43200
ENV UBUNTU_SOURCE_MIRROR ENV UBUNTU_MIRROR_ARCHITECTURES amd64
ENV MIRROR_CATEGORIES main,universe,restricted,multiverse # set to anything but 'false' to mirror source code as well
ENV UBUNTU_MIRROR_SOURCE archive.ubuntu.com ENV UBUNTU_ENABLE_SOURCE_MIRRORING false
ENV UBUNTU_MIRROR_CATEGORIES main,universe,restricted,multiverse
ENV UBUNTU_MIRROR_UPSTREAM archive.ubuntu.com
ENV UBUNTU_MIRROR_PROJECTS bionic,bionic-updates,bionic-security,bionic-backports,focal,focal-updates,focal-security,focal-backports 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:// # The following is the URL populated in /mirrors.txt as used by mirror://

View File

@@ -1,36 +1,61 @@
# sneak/ubuntumirror # sneak/ubuntumirror
Docker container for syncing bionic ubuntu LTS mirrors Docker image for syncing ubuntu LTS mirrors to reduce network traffic and
to reduce network traffic and speed up build times. speed up build times.
Then even your builds (where you can't specify links) will go fast. Then even your builds (where you can't specify links to other containers by
hostname) will go fast.
# Levers # Levers
* `MIRROR_ARCHITECTURES` ## Paths
* default `amd64`.
The mirror stores all the data in a docker volume at path
`/var/mirror/ubuntu`. Map that somewhere else if you like.
## Environment Variables
* `UBUNTU_MIRROR_ARCHITECTURES`
* default `amd64`.
* You may want `i386,amd64`. * You may want `i386,amd64`.
* `MIRROR_CATEGORIES` * `UBUNTU_MIRROR_CATEGORIES`
* default `main,universe`. * Default `main,universe,restricted,multiverse`. Will use lots of disk.
* You may want `main,universe,restricted,multiverse`. Will use lots of * You may want `main,universe`.
disk.
* `UBUNTU_MIRROR_PROJECTS` * `UBUNTU_MIRROR_PROJECTS`
* default `xenial,xenial-updates,xenial-security,xenial-backports,bionic,bionic-updates,bionic-security,bionic-backports`. * Default
* `UBUNTU_MIRROR_SOURCE` `bionic,bionic-updates,bionic-security,bionic-backports,focal,focal-updates,focal-security,focal-backports`.
* You may want only `focal,focal-updates,focal-security,focal-backports`.
* `UBUNTU_MIRROR_UPSTREAM` - upstream server to mirror from
* default `archive.ubuntu.com`. * default `archive.ubuntu.com`.
* You may want `xx.archive.ubuntu.com` (where `xx` is your country * You may want `xx.archive.ubuntu.com` (where `xx` is your country
code). code).
* `MIRROR_INTERVAL_SECONDS` - mirror sync interval * `UBUNTU_ENABLE_SOURCE_MIRRORING` - do we want to mirror all the source code too?
* Default ``
* You may want `1` if you want to use up even more disk for your mirror
* `MIRROR_UPDATE_INTERVAL_SECONDS` - mirror update interval
* default `43200` (12h) * default `43200` (12h)
* You may want `10800` (3h) * You may want `10800` (3h)
# Example dnsmasq setup # Example Startup
``` ```
apt update && apt -y install dnsmasq docker rm -f local-ubuntu-mirror
echo address=/mirrors.ubuntu.com/172.17.0.1 > /etc/dnsmasq.d/ubuntu-mirror-local docker run -d --name local-ubuntu-mirror \
-v /storage/mirrors/ubuntu:/var/mirror/ubuntu \
--env MIRROR_UPDATE_INTERVAL_SECONDS=3600 \
--env UBUNTU_MIRROR_ARCHITECTURES=amd64 \
--env UBUNTU_MIRROR_UPSTREAM=us.archive.ubuntu.com \
--env UBUNTU_MIRROR_PROJECTS=focal,focal-updates,focal-security,focal-backports \
-p 8080:80 \
--restart unless-stopped \
sneak/ubuntumirror:latest
``` ```
Then, just add `--dns 172.17.0.1` to your /etc/default/docker opts # Example CapRover Definition File
and bounce the docker daemon. Future containers will talk to your local
mirror. ```
{
"schemaVersion": 2,
"imageName": "sneak/ubuntumirror:latest"
}
```

View File

@@ -1,12 +0,0 @@
#!/bin/bash
docker rm -f local-ubuntu-mirror
docker run -d --name local-ubuntu-mirror \
-v /storage/mirrors/ubuntu:/var/mirror/ubuntu \
--env MIRROR_INTERVAL_SECONDS=10800 \
--env MIRROR_ARCHITECTURES=amd64 \
--dns 8.8.8.8 \
--dns 8.8.4.4 \
-p 8080:80 \
--restart unless-stopped \
sneak/ubuntumirror:latest

View File

@@ -6,8 +6,8 @@ export HOME=/root
# cleanup previous runs # cleanup previous runs
rm -rf /var/mirror/ubuntu/.temp rm -rf /var/mirror/ubuntu/.temp
while true ; do while sleep 1 ; do
cd /opt/mirror && make cd /opt/mirror && make
sleep ${MIRROR_INTERVAL_SECONDS:-43200} sleep ${MIRROR_INTERVAL_SECONDS}
done done

View File

@@ -12,16 +12,16 @@ mkdir -p "$DST/ubuntu"
export GNUPGHOME="/etc/debmirror/ubuntu" export GNUPGHOME="/etc/debmirror/ubuntu"
SOURCEOPT="--nosource" SOURCEOPT="--nosource"
if [[ ! -z "$UBUNTU_SOURCE_MIRROR" ]]; then if [[ "$UBUNTU_ENABLE_SOURCE_MIRRORING" != "false" ]]; then
SOURCEOPT="--source" SOURCEOPT="--source"
fi fi
debmirror \ debmirror \
-a ${MIRROR_ARCHITECTURES} \ -a ${UBUNTU_MIRROR_ARCHITECTURES} \
$SOURCEOPT \ -s ${UBUNTU_MIRROR_CATEGORIES} \
-s ${MIRROR_CATEGORIES} \ -h ${UBUNTU_MIRROR_UPSTREAM} \
-h ${UBUNTU_MIRROR_SOURCE} \
-d ${UBUNTU_MIRROR_PROJECTS} \ -d ${UBUNTU_MIRROR_PROJECTS} \
$SOURCEOPT \
--ignore-small-errors \ --ignore-small-errors \
-r /ubuntu \ -r /ubuntu \
--getcontents \ --getcontents \

View File

@@ -1,7 +1,4 @@
# this can't be {us.,}archive.ubuntu.org because on the box deb mirror://mirrors.ubuntu.com/mirrors.txt bionic main universe restricted multiverse
# with dnsmasq changing that host to itself, rebuilding this fails deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-updates main universe restricted multiverse
# unless the container is running already deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-security main universe restricted multiverse
deb http://mirrors.sonic.net/ubuntu bionic main universe deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-backports main universe restricted multiverse
deb http://mirrors.sonic.net/ubuntu bionic-updates main universe
deb http://mirrors.sonic.net/ubuntu bionic-backports main universe
deb http://mirrors.sonic.net/ubuntu bionic-security main universe