Skip to content

Commit

Permalink
Speed up 'docker load images' in harbor job start
Browse files Browse the repository at this point in the history
Unzip the harbor images tgz file into a tar file in packaging phase,
then docker loading this tar file will be faster than loading the tgz
file. This is to reduce the possibility of canary timeout issue #3735.

Issue: goharbor/harbor#3735
  • Loading branch information
jessehu committed Dec 7, 2017
1 parent bd9318e commit 7de3894
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 10 deletions.
2 changes: 1 addition & 1 deletion jobs/harbor/templates/bin/ctl.erb
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ DOCKER_PACKAGE_DIR=${PACKAGE_DIR}/docker
HARBOR_YAML=${HARBOR_PACKAGE_DIR}/docker-compose.yml
HARBOR_CLAIR_YAML=${HARBOR_PACKAGE_DIR}/docker-compose.clair.yml
HARBOR_NOTARY_YAML=${HARBOR_PACKAGE_DIR}/docker-compose.notary.yml
IMAGES_TAR_PATH=${HARBOR_PACKAGE_DIR}/harbor*.tar.gz
IMAGES_TAR_PATH=${HARBOR_PACKAGE_DIR}/harbor*.tar

CTL_CMD=/sbin/start-stop-daemon
COMPOSE_CMD=${COMPOSE_PACKAGE_DIR}/bin/docker-compose
Expand Down
6 changes: 2 additions & 4 deletions packages/docker/packaging
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,12 @@ DOCKER_VERSION=`ls -r docker/docker-*.tgz | sed 's/docker\/docker-\(.*\)\.tgz/\1

# Extract docker package
echo "Extracting docker ${DOCKER_VERSION}..."
tar xzvf ${BOSH_COMPILE_TARGET}/docker/docker-${DOCKER_VERSION}.tgz
if [[ $? != 0 ]] ; then
echo "Failed extracting docker ${DOCKER_VERSION}"
if ! tar -xzvf ${BOSH_COMPILE_TARGET}/docker/docker-${DOCKER_VERSION}.tgz ; then
echo "Failed to extract docker ${DOCKER_VERSION} tarball"
exit 1
fi

echo "Copying docker ${DOCKER_VERSION} binaries..."
mkdir -p ${BOSH_INSTALL_TARGET}/bin
cp docker/* ${BOSH_INSTALL_TARGET}/bin
chmod +x ${BOSH_INSTALL_TARGET}/bin/*

11 changes: 6 additions & 5 deletions packages/harbor-app/packaging
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,15 @@ source /var/vcap/packages/harbor-common/common.sh

#Extract harbor package to the destination folder
echo "Extracting Harbor ${HARBOR_FULL_VERSION}..."
tar xzvf ${BOSH_COMPILE_TARGET}/harbor/harbor-offline-installer-*.tgz
if [[ $? != 0 ]] ; then
echo "Failed to extract Harbor ${HARBOR_FULL_VERSION}"
file=`ls ${BOSH_COMPILE_TARGET}/harbor/harbor-offline-installer-*.tgz`
if ! tar -xzvf $file --strip 1 -C ${BOSH_INSTALL_TARGET} ; then
echo "Failed to extract Harbor ${HARBOR_FULL_VERSION} tarball"
exit 1
fi

#Copy the Harbor files to destination folder
cp -a ${BOSH_COMPILE_TARGET}/harbor/* ${BOSH_INSTALL_TARGET}/
chmod +x ${BOSH_INSTALL_TARGET}/*.sh
chmod +x ${BOSH_INSTALL_TARGET}/prepare

#Unzip the harbor images tgz file to a tar file,
#then docker loading images in 'ctl start' could be faster.
gunzip ${BOSH_INSTALL_TARGET}/harbor*.tar.gz

0 comments on commit 7de3894

Please sign in to comment.