Merge branch 'master' of github.com:bryanhong/docker-aptly

This commit is contained in:
Bryan 2016-02-07 22:39:23 -08:00
commit 526b418ae2
2 changed files with 56 additions and 32 deletions

View File

@ -28,32 +28,39 @@ RUN echo "deb-src http://nginx.org/packages/ubuntu/ trusty nginx" >> /etc/apt/so
RUN apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
# Update APT repository and install packages
RUN apt-get -q update \
&& apt-get -y install aptly \
bzip2 \
xz-utils \
graphviz \
gnupg \
gpgv \
supervisor \
nginx
# Install GPG Generator
COPY assets/gpg_batch.sh /opt/gpg_batch.sh
RUN apt-get -q update \
&& apt-get -y install aptly \
bash-completion \
bzip2 \
gnupg \
gpgv \
graphviz \
supervisor \
nginx \
wget \
xz-utils
# Install Aptly Configuration
COPY assets/aptly.conf /etc/aptly.conf
# Install Mirror Update Script
COPY assets/update_mirror.sh /opt/update_mirror.sh
# Enable Aptly Bash completions
RUN wget https://github.com/aptly-dev/aptly-bash-completion/raw/master/aptly \
-O /etc/bash_completion.d/aptly \
&& echo "if ! shopt -oq posix; then\n\
if [ -f /usr/share/bash-completion/bash_completion ]; then\n\
. /usr/share/bash-completion/bash_completion\n\
elif [ -f /etc/bash_completion ]; then\n\
. /etc/bash_completion\n\
fi\n\
fi" >> /etc/bash.bashrc
# Install Nginx Config
COPY assets/nginx.conf.sh /opt/nginx.conf.sh
COPY assets/supervisord.nginx.conf /etc/supervisor/conf.d/nginx.conf
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
# Install Startup script
COPY assets/startup.sh /opt/startup.sh
# Install scripts
COPY assets/*.sh /opt/
# Bind mount location
VOLUME [ "/opt/aptly" ]

View File

@ -3,41 +3,58 @@ set -e
# Automate the initial creation and update of an Ubuntu package mirror in aptly
# The variables (as set below) will create a mirror of the Ubuntu Trusty repo
# with just the main component, you can add other components like restricted
# universe etc by adding to the array (separated by spaces).
# For more detail about each of the variables below refer to:
# https://help.ubuntu.com/community/Repositories/CommandLine
UBUNTU_RELEASE=trusty
UPSTREAM_URL="http://archive.ubuntu.com/ubuntu/"
COMPONENTS=( main )
REPOS=( ${UBUNTU_RELEASE} ${UBUNTU_RELEASE}-updates ${UBUNTU_RELEASE}-security )
# Create repository mirrors if they don't exist
set +e
for repo in ${REPOS[@]}; do
aptly mirror list -raw | grep "^${repo}$"
if [[ $? -ne 0 ]]; then
echo "Creating mirror of ${repo} repository."
aptly mirror create \
-architectures=amd64 ${repo} ${UPSTREAM_URL} ${repo} main
fi
for component in ${COMPONENTS[@]}; do
for repo in ${REPOS[@]}; do
aptly mirror list -raw | grep "^${repo}-${component}$"
if [[ $? -ne 0 ]]; then
echo "Creating mirror of ${repo}-${component} repository."
aptly mirror create \
-architectures=amd64 ${repo}-${component} ${UPSTREAM_URL} ${repo} ${component}
fi
done
done
set -e
# Update all repository mirrors
for repo in ${REPOS[@]}; do
echo "Updating ${repo} repository mirror.."
aptly mirror update ${repo}
for component in ${COMPONENTS[@]}; do
for repo in ${REPOS[@]}; do
echo "Updating ${repo}-${component} repository mirror.."
aptly mirror update ${repo}-${component}
done
done
# Create snapshots of updated repositories
for repo in ${REPOS[@]}; do
echo "Creating snapshot of ${repo} repository mirror.."
aptly snapshot create ${repo}-`date +%Y%m%d%H` from mirror ${repo}
for component in ${COMPONENTS[@]}; do
for repo in ${REPOS[@]}; do
echo "Creating snapshot of ${repo}-${component} repository mirror.."
SNAPSHOTARRAY+="${repo}-${component}-`date +%Y%m%d%H` "
aptly snapshot create ${repo}-${component}-`date +%Y%m%d%H` from mirror ${repo}-${component}
done
done
echo ${SNAPSHOTARRAY[@]}
#### I STOPPED HERE
# Merge snapshots into a single snapshot with updates applied
echo "Merging snapshots into one.."
aptly snapshot merge -latest \
${UBUNTU_RELEASE}-merged-`date +%Y%m%d%H` \
${UBUNTU_RELEASE}-`date +%Y%m%d%H` \
${UBUNTU_RELEASE}-updates-`date +%Y%m%d%H` \
${UBUNTU_RELEASE}-security-`date +%Y%m%d%H`
${SNAPSHOTARRAY[@]}
# Publish the latest merged snapshot
set +e