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 nome no Bitnami

#!/bin/bash

# Solicita ao usuário o nome da imagem/aplicativo
read -p "Digite o nome da aplicação Bitnami (ex: suitecrm, wordpress, nginx): " APP

# Define informações do repositório
REPO_URL="https://github.com/bitnami/containers.git"
REPO_DIR="bitnami-containers"
TARGET_DIR="bitnami/${APP}/8/debian-12"

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

echo -e "\n📦 Iniciando download da aplicação '$APP'...\n"

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

# Entra na pasta clonada
cd "$REPO_DIR" || {
  echo "❌ Erro ao acessar diretório $REPO_DIR"
  exit 1
}

# Tenta configurar o sparse-checkout
if git sparse-checkout set "$TARGET_DIR"; then
  echo -e "\n✅ Aplicação '$APP' baixada com sucesso!"
  echo "📁 Caminho local: $REPO_DIR/$TARGET_DIR"
else
  echo -e "\n❌ Aplicação '$APP' não encontrada no repositório."
  exit 1
fi