mirror of
https://github.com/cytopia/devilbox.git
synced 2024-12-18 20:37:55 +00:00
91 lines
2.2 KiB
Bash
Executable File
91 lines
2.2 KiB
Bash
Executable File
#!/bin/sh -eu
|
|
#
|
|
# This script will pull all Docker images that are currently
|
|
# bound to your devilbox git state.
|
|
#
|
|
# When updating the devilbox via git, do run this script once
|
|
# in order to download all images locally.
|
|
#
|
|
|
|
WHICH="all"
|
|
if [ "${#}" -eq "1" ]; then
|
|
if [ "${1}" = "bind" ]; then
|
|
WHICH="bind"
|
|
elif [ "${1}" = "php" ]; then
|
|
WHICH="php"
|
|
elif [ "${1}" = "httpd" ]; then
|
|
WHICH="httpd"
|
|
elif [ "${1}" = "mysql" ]; then
|
|
WHICH="mysql"
|
|
elif [ "${1}" = "rest" ]; then
|
|
WHICH="rest"
|
|
else
|
|
echo "Error: Unknown option"
|
|
echo "Supported: php, httpd, mysql, rest"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
|
|
###
|
|
### Path of devilbox repository
|
|
###
|
|
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
|
|
|
|
|
###
|
|
### BIND
|
|
###
|
|
if [ "${WHICH}" = "all" ] || [ "${WHICH}" = "bind" ]; then
|
|
TAG="$( grep '^[[:space:]]*image:[[:space:]]*cytopia/bind' "${CWD}/docker-compose.yml" | sed 's/^.*://g' )"
|
|
docker pull cytopia/bind:${TAG}
|
|
fi
|
|
|
|
|
|
###
|
|
### PHP
|
|
###
|
|
if [ "${WHICH}" = "all" ] || [ "${WHICH}" = "php" ]; then
|
|
SUFFIX="$( grep -E '^\s+image:\s+devilbox/php-fpm' "${CWD}/docker-compose.yml" | sed 's/.*}//g' )"
|
|
IMAGES="$( grep -Eo '^#*PHP_SERVER=[.0-9]+' "${CWD}/env-example" | sed 's/.*=//g' )"
|
|
echo "${IMAGES}" | while read version ; do
|
|
docker pull devilbox/php-fpm:${version}${SUFFIX}
|
|
done
|
|
fi
|
|
|
|
|
|
###
|
|
### HTTPD
|
|
###
|
|
if [ "${WHICH}" = "all" ] || [ "${WHICH}" = "httpd" ]; then
|
|
SUFFIX="$( grep -E '^\s+image:\s+devilbox/\${HTTPD_SERVER' "${CWD}/docker-compose.yml" | sed 's/.*://g' )"
|
|
IMAGES="$( grep -Eo '^#*HTTPD_SERVER=[-a-z]+[.0-9]*' "${CWD}/env-example" | sed 's/.*=//g' )"
|
|
echo "${IMAGES}" | while read version ; do
|
|
docker pull devilbox/${version}:${SUFFIX}
|
|
done
|
|
fi
|
|
|
|
|
|
###
|
|
### MYSQL
|
|
###
|
|
if [ "${WHICH}" = "all" ] || [ "${WHICH}" = "mysql" ]; then
|
|
IMAGES="$( grep -Eo '^#*MYSQL_SERVER=[-a-z]+[.0-9]*' "${CWD}/env-example" | sed 's/.*=//g' )"
|
|
echo "${IMAGES}" | while read version ; do
|
|
docker pull devilbox/mysql:${version}
|
|
done
|
|
fi
|
|
|
|
|
|
###
|
|
### Rest of the fucking owl
|
|
###
|
|
### For all other non-base service, only download the currently enabled one
|
|
###
|
|
if [ "${WHICH}" = "all" ] || [ "${WHICH}" = "rest" ]; then
|
|
if [ ! -f "${CWD}/.env" ]; then
|
|
cp "${CWD}/env-example" "${CWD}/.env"
|
|
fi
|
|
docker-compose --project-directory "${CWD}" --file "${CWD}/docker-compose.yml" pull
|
|
fi
|