174 lines
4.2 KiB
Bash
Executable File
174 lines
4.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# Script completo para criar a imagem Docker do Krayin
|
|
|
|
# ========================================
|
|
# 1. CRIAR ESTRUTURA DE PASTAS
|
|
# ========================================
|
|
mkdir -p docker
|
|
|
|
# ========================================
|
|
# 2. CRIAR docker/nginx.conf
|
|
# ========================================
|
|
cat > docker/nginx.conf << 'EOF'
|
|
server {
|
|
listen 80;
|
|
server_name _;
|
|
root /var/www/html/public;
|
|
|
|
add_header X-Frame-Options "SAMEORIGIN";
|
|
add_header X-Content-Type-Options "nosniff";
|
|
|
|
index index.php;
|
|
|
|
charset utf-8;
|
|
|
|
location / {
|
|
try_files $uri $uri/ /index.php?$query_string;
|
|
}
|
|
|
|
location = /favicon.ico { access_log off; log_not_found off; }
|
|
location = /robots.txt { access_log off; log_not_found off; }
|
|
|
|
error_page 404 /index.php;
|
|
|
|
location ~ \.php$ {
|
|
fastcgi_pass 127.0.0.1:9000;
|
|
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
|
|
include fastcgi_params;
|
|
}
|
|
|
|
location ~ /\.(?!well-known).* {
|
|
deny all;
|
|
}
|
|
}
|
|
EOF
|
|
|
|
# ========================================
|
|
# 3. CRIAR docker/supervisord.conf
|
|
# ========================================
|
|
cat > docker/supervisord.conf << 'EOF'
|
|
[supervisord]
|
|
nodaemon=true
|
|
user=root
|
|
|
|
[program:php-fpm]
|
|
command=/usr/local/sbin/php-fpm
|
|
autostart=true
|
|
autorestart=true
|
|
priority=5
|
|
stdout_logfile=/dev/stdout
|
|
stdout_logfile_maxbytes=0
|
|
stderr_logfile=/dev/stderr
|
|
stderr_logfile_maxbytes=0
|
|
|
|
[program:nginx]
|
|
command=/usr/sbin/nginx -g "daemon off;"
|
|
autostart=true
|
|
autorestart=true
|
|
priority=10
|
|
stdout_logfile=/dev/stdout
|
|
stdout_logfile_maxbytes=0
|
|
stderr_logfile=/dev/stderr
|
|
stderr_logfile_maxbytes=0
|
|
EOF
|
|
|
|
# ========================================
|
|
# 4. CRIAR .dockerignore
|
|
# ========================================
|
|
cat > .dockerignore << 'EOF'
|
|
.git
|
|
.gitignore
|
|
.env
|
|
node_modules
|
|
vendor
|
|
storage/logs/*
|
|
storage/framework/cache/*
|
|
storage/framework/sessions/*
|
|
storage/framework/views/*
|
|
bootstrap/cache/*
|
|
.DS_Store
|
|
Thumbs.db
|
|
EOF
|
|
|
|
# ========================================
|
|
# 5. CRIAR Dockerfile
|
|
# ========================================
|
|
cat > Dockerfile << 'EOF'
|
|
FROM php:8.1-fpm
|
|
|
|
# Instalar dependências do sistema
|
|
RUN apt-get update && apt-get install -y \
|
|
git \
|
|
curl \
|
|
libpng-dev \
|
|
libonig-dev \
|
|
libxml2-dev \
|
|
zip \
|
|
unzip \
|
|
libzip-dev \
|
|
nginx \
|
|
supervisor \
|
|
&& docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd zip \
|
|
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
|
|
# Instalar Composer
|
|
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
|
|
|
|
# Criar diretório da aplicação
|
|
WORKDIR /var/www/html
|
|
|
|
# Copiar arquivos do projeto
|
|
COPY . .
|
|
|
|
# Instalar dependências do Composer
|
|
RUN composer install --no-dev --optimize-autoloader --no-interaction
|
|
|
|
# Ajustar permissões
|
|
RUN chown -R www-data:www-data /var/www/html \
|
|
&& chmod -R 755 /var/www/html/storage \
|
|
&& chmod -R 755 /var/www/html/bootstrap/cache
|
|
|
|
# Copiar configurações
|
|
COPY docker/nginx.conf /etc/nginx/sites-available/default
|
|
COPY docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
|
|
|
# Criar script de entrada
|
|
RUN echo '#!/bin/bash\n\
|
|
php artisan config:cache\n\
|
|
php artisan route:cache\n\
|
|
php artisan view:cache\n\
|
|
exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf' > /entrypoint.sh \
|
|
&& chmod +x /entrypoint.sh
|
|
|
|
EXPOSE 80
|
|
|
|
ENTRYPOINT ["/entrypoint.sh"]
|
|
EOF
|
|
|
|
# ========================================
|
|
# 6. CONSTRUIR A IMAGEM
|
|
# ========================================
|
|
echo "Construindo a imagem Docker..."
|
|
docker build -t growup:latest .
|
|
|
|
# ========================================
|
|
# 7. SALVAR A IMAGEM (opcional)
|
|
# ========================================
|
|
echo "Salvando a imagem em arquivo tar..."
|
|
docker save growup:latest -o growup-latest.tar
|
|
|
|
echo ""
|
|
echo "========================================"
|
|
echo "IMAGEM CRIADA COM SUCESSO!"
|
|
echo "========================================"
|
|
echo ""
|
|
echo "Para usar no outro servidor:"
|
|
echo "1. Copie o arquivo growup-latest.tar para o servidor"
|
|
echo "2. Carregue a imagem: docker load -i growup-latest.tar"
|
|
echo "3. Use 'image: growup:latest' no seu docker-compose.yml"
|
|
echo ""
|
|
echo "Ou envie para um registry:"
|
|
echo "docker tag growup:latest seu-registry.com/growup:latest"
|
|
echo "docker push seu-registry.com/growup:latest"
|
|
echo ""
|