So many changes sorry.
A. Two new environment vars: 1. WEB_ROOT the web server will serve from / (/var/www/html) or a deeper directory 2. ARCH if you only want to mirror amd64 you can use deb-amd64 instead of deb B. Setup clean.sh to work from postmirror.sh. If postmirror.sh already exists it is not touched. postmirror.sh can also be edited to add other commands. It's in /var/www/html/var << this is the way that apt-mirror works C. Other little changes.
This commit is contained in:
parent
b3e76fe756
commit
b5b3be4200
10
Dockerfile
10
Dockerfile
|
|
@ -2,25 +2,27 @@ FROM ubuntu:18.04
|
||||||
|
|
||||||
RUN \
|
RUN \
|
||||||
apt update && \
|
apt update && \
|
||||||
apt install -y apt-mirror apache2 && \
|
apt install -y apt-mirror apache2 rsync && \
|
||||||
apt autoremove -y && apt clean
|
apt autoremove -y && apt clean
|
||||||
|
|
||||||
ENV DEBIAN_FRONTEND noninteractive
|
ENV DEBIAN_FRONTEND noninteractive
|
||||||
ENV TIMEOUT 12h
|
ENV TIMEOUT 12h
|
||||||
|
ENV WEB_ROOT /
|
||||||
ENV MIRROR_URL http://archive.ubuntu.com/ubuntu
|
ENV MIRROR_URL http://archive.ubuntu.com/ubuntu
|
||||||
ENV DIST1 bionic
|
ENV DIST1 bionic
|
||||||
ENV DIST2 focal
|
ENV DIST2 ""
|
||||||
ENV DIST3 ""
|
ENV DIST3 ""
|
||||||
ENV NTHREADS 10
|
ENV NTHREADS 10
|
||||||
|
ENV ARCH deb
|
||||||
ENV PUID 1000
|
ENV PUID 1000
|
||||||
ENV PGID 1000
|
ENV PGID 1000
|
||||||
|
|
||||||
RUN mkdir -p /var/www/html/ubuntu
|
|
||||||
|
|
||||||
RUN rm -f /var/run/apache2/apache2.pid
|
RUN rm -f /var/run/apache2/apache2.pid
|
||||||
|
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
|
||||||
COPY setup.sh /setup.sh
|
COPY setup.sh /setup.sh
|
||||||
|
|
||||||
VOLUME ["/var/www/html/"]
|
VOLUME ["/var/www/html/"]
|
||||||
|
|
||||||
CMD ["/bin/bash", "setup.sh"]
|
CMD ["/bin/bash", "setup.sh"]
|
||||||
|
|
|
||||||
90
setup.sh
90
setup.sh
|
|
@ -3,39 +3,39 @@
|
||||||
TARGETFILE="/etc/apt/mirror.list"
|
TARGETFILE="/etc/apt/mirror.list"
|
||||||
|
|
||||||
echo "configuring [$TARGETFILE] MIRROR_URL=[$MIRROR_URL]"
|
echo "configuring [$TARGETFILE] MIRROR_URL=[$MIRROR_URL]"
|
||||||
echo " DIST1=[$DIST1] DIST2=[$DIST2]"
|
echo " DIST1=[$DIST1] DIST2=[$DIST2] DIST3=[$DIST3]"
|
||||||
|
|
||||||
echo "#### config ####
|
echo "#### config ####
|
||||||
set base_path /var/www/html/ubuntu
|
set base_path /var/www/html/
|
||||||
set nthreads $NTHREADS
|
set nthreads $NTHREADS
|
||||||
set _tilde 0" \
|
set _tilde 0" \
|
||||||
> "$TARGETFILE"
|
> "$TARGETFILE"
|
||||||
|
|
||||||
if [[ ! -z "$DIST1" ]]; then
|
if [[ ! -z "$DIST1" ]]; then
|
||||||
echo "# for release $DIST1
|
echo "# for release $DIST1
|
||||||
deb $MIRROR_URL $DIST1 main restricted universe multiverse
|
$ARCH $MIRROR_URL $DIST1 main restricted universe multiverse
|
||||||
deb $MIRROR_URL $DIST1-updates main restricted universe multiverse
|
$ARCH $MIRROR_URL $DIST1-updates main restricted universe multiverse
|
||||||
deb $MIRROR_URL $DIST1-backports main restricted universe multiverse
|
$ARCH $MIRROR_URL $DIST1-backports main restricted universe multiverse
|
||||||
deb $MIRROR_URL $DIST1-security main restricted universe multiverse
|
$ARCH $MIRROR_URL $DIST1-security main restricted universe multiverse
|
||||||
deb $MIRROR_URL $DIST1-proposed main restricted universe multiverse" >> "$TARGETFILE"
|
$ARCH $MIRROR_URL $DIST1-proposed main restricted universe multiverse" >> "$TARGETFILE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ! -z "$DIST2" ]]; then
|
if [[ ! -z "$DIST2" ]]; then
|
||||||
echo "# for release $DIST2
|
echo "# for release $DIST2
|
||||||
deb $MIRROR_URL $DIST2 main restricted universe multiverse
|
$ARCH $MIRROR_URL $DIST2 main restricted universe multiverse
|
||||||
deb $MIRROR_URL $DIST2-updates main restricted universe multiverse
|
$ARCH $MIRROR_URL $DIST2-updates main restricted universe multiverse
|
||||||
deb $MIRROR_URL $DIST2-backports main restricted universe multiverse
|
$ARCH $MIRROR_URL $DIST2-backports main restricted universe multiverse
|
||||||
deb $MIRROR_URL $DIST2-security main restricted universe multiverse
|
$ARCH $MIRROR_URL $DIST2-security main restricted universe multiverse
|
||||||
deb $MIRROR_URL $DIST2-proposed main restricted universe multiverse" >> "$TARGETFILE"
|
$ARCH $MIRROR_URL $DIST2-proposed main restricted universe multiverse" >> "$TARGETFILE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ! -z "$DIST3" ]]; then
|
if [[ ! -z "$DIST3" ]]; then
|
||||||
echo "# for release $DIST3
|
echo "# for release $DIST3
|
||||||
deb $MIRROR_URL $DIST3 main restricted universe multiverse
|
$ARCH $MIRROR_URL $DIST3 main restricted universe multiverse
|
||||||
deb $MIRROR_URL $DIST3-updates main restricted universe multiverse
|
$ARCH $MIRROR_URL $DIST3-updates main restricted universe multiverse
|
||||||
deb $MIRROR_URL $DIST3-backports main restricted universe multiverse
|
$ARCH $MIRROR_URL $DIST3-backports main restricted universe multiverse
|
||||||
deb $MIRROR_URL $DIST3-security main restricted universe multiverse
|
$ARCH $MIRROR_URL $DIST3-security main restricted universe multiverse
|
||||||
deb $MIRROR_URL $DIST3-proposed main restricted universe multiverse" >> "$TARGETFILE"
|
$ARCH $MIRROR_URL $DIST3-proposed main restricted universe multiverse" >> "$TARGETFILE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "# for EXTRAS
|
echo "# for EXTRAS
|
||||||
|
|
@ -45,22 +45,59 @@ $EXTRA3
|
||||||
$EXTRA4
|
$EXTRA4
|
||||||
$EXTRA5
|
$EXTRA5
|
||||||
|
|
||||||
#clean http://archive.ubuntu.com/ubuntu" >> "$TARGETFILE"
|
clean $MIRROR_URL" >> "$TARGETFILE"
|
||||||
|
|
||||||
echo "content of [$TARGETFILE] is..."
|
echo "content of [$TARGETFILE] is..."
|
||||||
echo "-------------------------------------"
|
echo "-------------------------------------"
|
||||||
cat "$TARGETFILE"
|
cat "$TARGETFILE" |sed -E "s~^(.*)$~>>> \1~g"
|
||||||
echo "-------------------------------------"
|
echo "-------------------------------------"
|
||||||
|
|
||||||
|
echo
|
||||||
|
|
||||||
rm -f /var/run/apache2/apache2.pid
|
rm -f /var/run/apache2/apache2.pid
|
||||||
|
|
||||||
echo "hacking www-data to become PUID=$PUID PGID=$PGID"
|
echo "hacking www-data and apt-mirror to become PUID=$PUID PGID=$PGID"
|
||||||
SEDEX="s/www-data:x:[0-9]+:[0-9]+:/www-data:x:${PUID}:${PGID}:/g"
|
SEDEX="s~(www-data|apt-mirror):x:[0-9]+:[0-9]+:~\1:x:${PUID}:${PGID}:~g"
|
||||||
echo "sed /etc/passwd with [$SEDEX]"
|
sed -ri "$SEDEX" /etc/passwd
|
||||||
cat /etc/passwd | \
|
echo "regex: $SEDEX"
|
||||||
sed -E $SEDEX > /tmp/passy
|
echo "-------------------------------------"
|
||||||
cp /tmp/passy /etc/passwd
|
grep -E '(www-data|apt-mirror)' /etc/passwd |sed -E "s~^(.*)$~>>> \1~g"
|
||||||
rm /tmp/passy
|
echo "-------------------------------------"
|
||||||
|
|
||||||
|
echo
|
||||||
|
|
||||||
|
echo "adding server name"
|
||||||
|
echo $'\nServerName apt-mirror' >> /etc/apache2/apache2.conf
|
||||||
|
echo "-------------------------------------"
|
||||||
|
grep -E 'ServerName' /etc/apache2/apache2.conf |sed -E "s~^(.*)$~>>> \1~g"
|
||||||
|
echo "-------------------------------------"
|
||||||
|
|
||||||
|
echo
|
||||||
|
|
||||||
|
echo "changing default site document root to $WEB_ROOT"
|
||||||
|
SEDEX="s~DocumentRoot\s+\/var\/www\/html\s*$~DocumentRoot \/var\/www\/html${WEB_ROOT}~"
|
||||||
|
sed -Ei "$SEDEX" /etc/apache2/sites-available/000-default.conf
|
||||||
|
echo "regex: $SEDEX"
|
||||||
|
echo "-------------------------------------"
|
||||||
|
grep -E 'DocumentRoot' /etc/apache2/sites-available/000-default.conf |sed -E "s~^(.*)$~>>> \1~g"
|
||||||
|
echo "-------------------------------------"
|
||||||
|
|
||||||
|
echo
|
||||||
|
|
||||||
|
echo "if no postmirror.sh then create and set to call clean.sh"
|
||||||
|
mkdir -p /var/www/html/var;
|
||||||
|
if [[ ! -f /var/www/html/var/postmirror.sh ]]; then
|
||||||
|
echo $'#!/bin/bash\ncd "${0%/*}"\necho "$(pwd)/clean.sh"\nsleep 5\n$(pwd)/clean.sh\n' > /var/www/html/var/postmirror.sh; fi
|
||||||
|
echo "-------------------------------------"
|
||||||
|
cat /var/www/html/var/postmirror.sh |sed -E "s~^(.*)$~>>> \1~g"
|
||||||
|
echo "-------------------------------------"
|
||||||
|
|
||||||
|
echo
|
||||||
|
|
||||||
|
echo "Changing ownership of all files on /var/www/html to apt-mirror"
|
||||||
|
chown -R apt-mirror:apt-mirror /var/www/html
|
||||||
|
|
||||||
|
echo
|
||||||
|
|
||||||
echo "starting apache server"
|
echo "starting apache server"
|
||||||
service apache2 start
|
service apache2 start
|
||||||
|
|
@ -70,6 +107,7 @@ echo "TIMEOUT is ${TIMEOUT}"
|
||||||
while true; do
|
while true; do
|
||||||
echo "[$(date)] Starting apt-mirror"
|
echo "[$(date)] Starting apt-mirror"
|
||||||
apt-mirror
|
apt-mirror
|
||||||
|
#sleep 60
|
||||||
echo "[$(date)] Completed"
|
echo "[$(date)] Completed"
|
||||||
echo "[$(date)] Sleeping $TIMEOUT to execute apt-mirror again ======"
|
echo "[$(date)] Sleeping $TIMEOUT to execute apt-mirror again ======"
|
||||||
sleep "$TIMEOUT"
|
sleep "$TIMEOUT"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue