Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f03fecaa5e | |||
| 18828fdc8e | |||
| d607b6ddc4 | |||
| 449d0f31a2 | |||
| 38a1da6c68 | |||
|
d84229454c
|
|||
| b1e8729290 | |||
| 79a90753c7 |
@@ -1,4 +1,4 @@
|
|||||||
FROM phusion/baseimage:0.9.18
|
FROM phusion/baseimage:0.11
|
||||||
|
|
||||||
VOLUME /var/mirror
|
VOLUME /var/mirror
|
||||||
|
|
||||||
@@ -7,7 +7,7 @@ RUN echo "#!/bin/sh\nexit 101" > /usr/sbin/policy-rc.d
|
|||||||
# phusion baseimage says i'm not supposed to do this
|
# phusion baseimage says i'm not supposed to do this
|
||||||
# and i don't care:
|
# and i don't care:
|
||||||
RUN apt-get update && apt-get upgrade -y
|
RUN apt-get update && apt-get upgrade -y
|
||||||
RUN apt-get install -y run-one nginx make debmirror
|
RUN apt-get install -y run-one nginx make debmirror xz-utils
|
||||||
|
|
||||||
ADD ./mirror /opt/mirror
|
ADD ./mirror /opt/mirror
|
||||||
ADD ./mirror.run /etc/service/mirror/run
|
ADD ./mirror.run /etc/service/mirror/run
|
||||||
@@ -22,6 +22,6 @@ RUN \
|
|||||||
mkdir -p $GNUPGHOME && \
|
mkdir -p $GNUPGHOME && \
|
||||||
chmod go-rwx $GNUPGHOME && \
|
chmod go-rwx $GNUPGHOME && \
|
||||||
gpg --import /usr/share/keyrings/ubuntu-archive-keyring.gpg && \
|
gpg --import /usr/share/keyrings/ubuntu-archive-keyring.gpg && \
|
||||||
cp $GNUPGHOME/pubring.gpg $GNUPGHOME/trustedkeys.gpg
|
cp $GNUPGHOME/pubring.kbx $GNUPGHOME/trustedkeys.kbx
|
||||||
|
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
|||||||
@@ -1,13 +1,8 @@
|
|||||||
# sneak/ubuntumirror
|
# sneak/ubuntumirror
|
||||||
|
|
||||||
Docker container for syncing trusty and xenial ubuntu LTS mirrors
|
Docker container for syncing bionic ubuntu LTS mirrors
|
||||||
to reduce network traffic and speed up build times.
|
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.
|
Then even your builds (where you can't specify links) will go fast.
|
||||||
|
|
||||||
# Levers
|
# Levers
|
||||||
@@ -19,6 +14,8 @@ Then even your builds (where you can't specify links) will go fast.
|
|||||||
* default `main,universe`.
|
* default `main,universe`.
|
||||||
* You may want `main,universe,restricted,multiverse`. Will use lots of
|
* You may want `main,universe,restricted,multiverse`. Will use lots of
|
||||||
disk.
|
disk.
|
||||||
|
* `UBUNTU_MIRROR_PROJECTS`
|
||||||
|
* default `xenial,xenial-updates,xenial-security,xenial-backports,bionic,bionic-updates,bionic-security,bionic-backports`.
|
||||||
* `UBUNTU_MIRROR_SOURCE`
|
* `UBUNTU_MIRROR_SOURCE`
|
||||||
* 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
|
||||||
@@ -30,14 +27,8 @@ Then even your builds (where you can't specify links) will go fast.
|
|||||||
# Example dnsmasq setup
|
# Example dnsmasq setup
|
||||||
|
|
||||||
```
|
```
|
||||||
apt-get update && apt-get -y install dnsmasq
|
apt update && apt -y install dnsmasq
|
||||||
cat > /etc/dnsmasq.d/docker <<EOF
|
echo address=/mirrors.ubuntu.com/172.17.0.1 > /etc/dnsmasq.d/ubuntu-mirror-local
|
||||||
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
|
Then, just add `--dns 172.17.0.1` to your /etc/default/docker opts
|
||||||
|
|||||||
@@ -16,13 +16,12 @@ debmirror \
|
|||||||
--no-source \
|
--no-source \
|
||||||
-s ${MIRROR_CATEGORIES:-main,universe} \
|
-s ${MIRROR_CATEGORIES:-main,universe} \
|
||||||
-h ${UBUNTU_MIRROR_SOURCE:-archive.ubuntu.com} \
|
-h ${UBUNTU_MIRROR_SOURCE:-archive.ubuntu.com} \
|
||||||
-d trusty,trusty-updates,trusty-security,trusty-backports \
|
-d ${UBUNTU_MIRROR_PROJECTS:-bionic,bionic-updates,bionic-security,bionic-backports} \
|
||||||
-d xenial,xenial-updates,xenial-security,xenial-backports \
|
|
||||||
--ignore-small-errors \
|
--ignore-small-errors \
|
||||||
-r /ubuntu \
|
-r /ubuntu \
|
||||||
|
--getcontents \
|
||||||
--progress \
|
--progress \
|
||||||
--method=http \
|
--method=http \
|
||||||
$DST/ubuntu
|
$DST/ubuntu
|
||||||
|
|
||||||
|
|
||||||
chmod -R a+rX $DST
|
chmod -R a+rX $DST
|
||||||
|
|||||||
11
sources.list
11
sources.list
@@ -1,4 +1,7 @@
|
|||||||
deb mirror://mirrors.ubuntu.com/mirrors.txt trusty main universe
|
# this can't be {us.,}archive.ubuntu.org because on the box
|
||||||
deb mirror://mirrors.ubuntu.com/mirrors.txt trusty-updates main universe
|
# with dnsmasq changing that host to itself, rebuilding this fails
|
||||||
deb mirror://mirrors.ubuntu.com/mirrors.txt trusty-backports main universe
|
# unless the container is running already
|
||||||
deb mirror://mirrors.ubuntu.com/mirrors.txt trusty-security main universe
|
deb http://mirrors.sonic.net/ubuntu bionic main universe
|
||||||
|
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
|
||||||
|
|||||||
15
start-local-mirror.sh
Normal file
15
start-local-mirror.sh
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
docker rm -f local-ubuntu-mirror
|
||||||
|
docker run -d --name local-ubuntu-mirror \
|
||||||
|
-v /storage/mirrors/ubuntu/ubuntu:/var/mirror/ubuntu \
|
||||||
|
--env UBUNTU_MIRROR_SOURCE=us.archive.ubuntu.com \
|
||||||
|
--env MIRROR_INTERVAL_SECONDS=10800 \
|
||||||
|
--env MIRROR_CATEGORIES=main,universe,restricted,multiverse \
|
||||||
|
--env MIRROR_ARCHITECTURES=amd64 \
|
||||||
|
--env UBUNTU_MIRROR_PROJECTS=bionic,bionic-updates,bionic-security,bionic-backports \
|
||||||
|
--dns 8.8.8.8 \
|
||||||
|
--dns 8.8.4.4 \
|
||||||
|
-p 172.17.0.1:80:80 \
|
||||||
|
--restart unless-stopped \
|
||||||
|
sneak/ubuntumirror:latest
|
||||||
Reference in New Issue
Block a user