Skip to main content

Como baixar repositórios de imagens do Bitnami

Informação extraída do ChatGPT

O endereço que você passou:

https://github.com/bitnami/containers/tree/main/bitnami/suitecrm/8/debian-12

...é uma página de diretório no GitHub, não um servidor de arquivos direto. Portanto, você não pode usar wget ou curl para baixar o diretório diretamente.

Mas há duas formas corretas de baixar esse conteúdo:


✅ Opção 1: Clonar apenas esse diretório com git sparse-checkout (recomendado)

Se você não quiser baixar o repositório todo, mas apenas esse diretório, use git sparse-checkout.

Passos:

# 1. Clone o repositório, mas sem o conteúdo
git clone --depth 1 --filter=blob:none --sparse https://github.com/bitnami/containers.git

# 2. Vá para a pasta clonada
cd containers

# 3. Ative sparse-checkout para baixar só o diretório desejado
git sparse-checkout set bitnami/suitecrm/8/debian-12


Resultado:

Você terá somente a pasta bitnami/suitecrm/8/debian-12 localmente, sem baixar o repositório completo (~centenas de MB normalmente).


✅ Opção 2: Baixar o repositório inteiro (caso aceite o tamanho maior)

Se preferir baixar tudo (incluindo outras imagens), use:

git clone https://github.com/bitnami/containers.git

Depois navegue até:

cd containers/bitnami/suitecrm/8/debian-12

❌ Por que wget ou curl não funciona?

  • GitHub não oferece diretórios como arquivos ZIP automaticamente via URL de pasta.

  • wget baixaria o HTML da página, não os arquivos reais do diretório.

Shell Script para baixar aplicativos pelo caminho no Bitnami

#!/bin/bash

echo "🔧 Exemplo de caminho: bitnami/suitecrm/8/debian-12"
read -p "Digite o caminho completo do diretório no repositório Bitnami Containers: " TARGET_DIR

# Repositório Bitnami Containers
REPO_URL="https://github.com/bitnami/containers.git"
REPO_DIR="bitnami-containers"

# Limpar se pasta já existir
if [ -d "$REPO_DIR" ]; then
  echo "Removendo pasta existente: $REPO_DIR"
  rm -rf "$REPO_DIR"
fi

echo -e "\n📦 Iniciando download do diretório '$TARGET_DIR'...\n"

# Clonar com sparse-checkout
git clone --depth 1 --filter=blob:none --sparse "$REPO_URL" "$REPO_DIR" || {
  echo "❌ Falha ao clonar repositório."
  exit 1
}

cd "$REPO_DIR" || {
  echo "❌ Erro ao acessar diretório $REPO_DIR"
  exit 1
}

# Baixar apenas o diretório informado
if git sparse-checkout set "$TARGET_DIR"; then
  echo -e "\n✅ Diretório '$TARGET_DIR' baixado com sucesso!"
  echo "📁 Caminho local: $REPO_DIR/$TARGET_DIR"
else
  echo -e "\n❌ Diretório '$TARGET_DIR' não encontrado no repositório."
  exit 1
fi