This commit is contained in:
Jeffrey Paul 2016-04-09 15:22:33 +02:00
parent fbc36819ef
commit cabc1dbeb9
3 changed files with 58 additions and 0 deletions

View File

@ -2,3 +2,6 @@ default: build
build:
docker build -t sneak/ubuntumirror .
deploy:
docker-compose --project-name local up mirror

42
README.markdown Normal file
View File

@ -0,0 +1,42 @@
# sneak/ubuntumirror
Docker container for syncing trusty and xenial ubuntu LTS mirrors
to reduce network traffic and speed up build times.
I recommend deploying this with a `--dns 172.17.0.1` in your
`/etc/default/docker` and dnsmasq bound to 172.17.0.1:53 to rewrite
`archive.ubuntu.com` to `172.17.0.1` (which this image will be listening and
serving on).
Then even your builds (where you can't specify links) will go fast.
# Levers
* `MIRROR_ARCHITECTURES`
* default `amd64`.
* You may want `i386,amd64`.
* `MIRROR_CATEGORIES`
* default `main,universe`.
* You may want `main,universe,restricted,multiverse`. Will use lots of
disk.
* `UBUNTU_MIRROR_SOURCE`
* default `archive.ubuntu.com`.
* You may want `xx.archive.ubuntu.com` (where `xx` is your country
code).
# Example dnsmasq setup
```
apt-get update && apt-get -y install dnsmasq
cat > /etc/dnsmasq.d/docker <<EOF
no-resolv
server=8.8.8.8
server=8.8.4.4
EOF
echo "172.17.0.1 archive.ubuntu.com" >> /etc/hosts
service dnsmasq restart
```
Then, just add `--dns 172.17.0.1` to your /etc/default/docker opts
and bounce the docker daemon. Future containers will talk to your local
mirror.

13
docker-compose.yml Normal file
View File

@ -0,0 +1,13 @@
version: '2.0'
services:
mirror:
hostname: mirror
image: sneak/ubuntumirror
network_mode: bridge
volumes:
- "/storage/nobackup/mirrors:/var/mirror"
ports:
- "172.17.0.1:80:80"
environment:
- UBUNTU_MIRROR_SOURCE=de.archive.ubuntu.com