{ ... }: {
	text = ''
		# Show container's volumes.
		# Usage: docker_volumes <CONTAINER>
		function docker_volumes() {
			docker inspect -f '{{ .Mounts }}' "''${@}"
		}

		# Check if any container exited.
		function docker_health() {
			docker ps -a | grep Exited
		}

		# Find out container's IP address.
		# Usage: docker_ip <CONTAINER>
		function docker_ip() {
			docker inspect -f '\'''{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'\' "''${1}" | sed "s/^.//" | sed "s/.$//"
		}

		# Update all docker images.
		function docker_update() {
			docker images --format "{{.Repository}}:{{.Tag}}" | xargs -L1 docker pull
		}

		# Docker compose shortcut.
		function dc() {
			docker compose "''${@}"
		}

		# Docker compose up.
		# Usage: dcu [SERVICES]
		function dcu() {
			docker compose up -d "''${@}"
		}

		# Docker compose down.
		# Usage: dcd [SERVICES]
		function dcd() {
			docker compose down "''${@}"
		}

		# Docker compose pull.
		# Usage: dcp [SERVICES]
		function dcp() {
			docker compose pull "''${@}"
		}

		# Docker compose logs.
		# Usage: dcl [SERVICES]
		function dcl() {
			docker compose logs -f "''${@}"
		}

		# Docker compose restart.
		# Usage: dcr [SERVICES]
		function dcr() {
			docker compose restart "''${@}"
		}

		# Docker compose stop.
		# Usage: dcs [SERVICES]
		function dcs() {
			docker compose stop "''${@}"
		}

		# Docker compose down & up specified services.
		# Usage: dcdu [SERVICES]
		function dcdu() {
			dcd "''${@}"
			dcu "''${@}"
		}

		# Docker compose pull & up specified services.
		# Usage: dcpu [SERVICES]
		function dcpu() {
			dcp "''${@}"
			dcu "''${@}"
		}

		# Docker compose up & attach to logs for specified services.
		# Usage: dcul [SERVICES]
		function dcul() {
			dcu "''${@}" && dcl "''${@}"
		}

		# Autocomplete with available services.
		function _dc_services() {
			_autocomplete "$(docker compose config --services 2> /dev/null)"
		}

		# Autocomplete with available container names.
		function _dc_containers() {
			_autocomplete "$(docker ps --format "\""{{.Names}}"\"")"
		}

		complete -F _dc_services dcu dcd dcp dcl dcul dcdu dcr dcs dcpu
		complete -F _dc_containers docker_volumes docker_ip
	'';
}