mirror of
				https://github.com/nextcloud/docker.git
				synced 2025-10-31 16:31:16 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| set -eo pipefail
 | |
| 
 | |
| declare -A cmd=(
 | |
| 	[apache]='apache2-foreground'
 | |
| 	[fpm]='php-fpm'
 | |
| )
 | |
| 
 | |
| # version_greater_or_equal A B returns whether A >= B
 | |
| function version_greater_or_equal() {
 | |
| 	[[ "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1" || "$1" == "$2" ]];
 | |
| }
 | |
| 
 | |
| latests=( $(curl -sSL 'https://nextcloud.com/changelog/' |tac|tac| \
 | |
| 	grep -o "\(Version\|Release\)\s\+[[:digit:]]\+\(\.[[:digit:]]\+\)\+" | \
 | |
| 	awk '{ print $2 }' | sort -V ) )
 | |
| 
 | |
| for latest in "${latests[@]}"; do
 | |
| 	version=$(echo "$latest" | cut -d. -f1-2)
 | |
| 
 | |
| 	for variant in apache fpm; do
 | |
| 		# Create the version+variant directory with a Dockerfile.
 | |
| 		mkdir -p "$version/$variant"
 | |
| 
 | |
| 		template="Dockerfile.template"
 | |
| 		if version_greater_or_equal "$version" "11.0"; then
 | |
| 			template="Dockerfile-php7.template"
 | |
| 		fi
 | |
| 		cp "$template" "$version/$variant/Dockerfile"
 | |
| 
 | |
| 		echo "updating $latest [$version] $variant"
 | |
| 
 | |
| 		# Replace the variables.
 | |
| 		sed -ri -e '
 | |
| 			s/%%VARIANT%%/'"$variant"'/g;
 | |
| 			s/%%VERSION%%/'"$latest"'/g;
 | |
| 			s/%%CMD%%/'"${cmd[$variant]}"'/g;
 | |
| 		' "$version/$variant/Dockerfile"
 | |
| 
 | |
| 		# Remove Apache commands if we're not an Apache variant.
 | |
| 		if [ "$variant" != "apache" ]; then
 | |
| 			sed -ri -e '/a2enmod/d' "$version/$variant/Dockerfile"
 | |
| 		fi
 | |
| 
 | |
| 		# Copy the docker-entrypoint.
 | |
| 		cp docker-entrypoint.sh "$version/$variant/docker-entrypoint.sh"
 | |
| 	done
 | |
| done
 |