mirror of
https://github.com/manualdousuario/marreta.git
synced 2025-09-02 02:30:20 +00:00
reescrita logica de inicio de serviços do dockerfile
This commit is contained in:
parent
7cc0d1f537
commit
d48862f3cb
5 changed files with 128 additions and 91 deletions
17
Dockerfile
17
Dockerfile
|
@ -12,21 +12,16 @@ COPY app/ /app/
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
RUN composer install --no-interaction --optimize-autoloader
|
RUN composer install --no-interaction --optimize-autoloader
|
||||||
|
|
||||||
COPY env.sh /usr/local/bin/env.sh
|
# Copy and set permissions for entrypoint script
|
||||||
RUN chmod +x /usr/local/bin/env.sh
|
COPY docker-entrypoint.sh /usr/local/bin/
|
||||||
|
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
||||||
|
|
||||||
COPY start.sh /usr/local/bin/start.sh
|
RUN mkdir -p /app/cache /app/logs
|
||||||
RUN chmod +x /usr/local/bin/start.sh
|
|
||||||
|
|
||||||
RUN mkdir -p /app/cache /app/logs \
|
|
||||||
&& chown -R www-data:www-data /app/cache /app/logs \
|
|
||||||
&& chmod -R 775 /app/cache /app/logs
|
|
||||||
|
|
||||||
|
# Set base permissions for /app
|
||||||
RUN chown -R www-data:www-data /app \
|
RUN chown -R www-data:www-data /app \
|
||||||
&& chmod -R 755 /app
|
&& chmod -R 755 /app
|
||||||
|
|
||||||
VOLUME ["/app/cache", "/app/logs"]
|
|
||||||
|
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
|
||||||
CMD ["/bin/bash", "-c", "/usr/local/bin/env.sh && /usr/local/bin/start.sh"]
|
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
|
||||||
|
|
|
@ -5,15 +5,13 @@ services:
|
||||||
ports:
|
ports:
|
||||||
- "80:80"
|
- "80:80"
|
||||||
volumes:
|
volumes:
|
||||||
- marreta_cache:/app/cache
|
- ./app/cache:/app/cache
|
||||||
- marreta_logs:/app/logs
|
- ./app/logs:/app/logs
|
||||||
environment:
|
environment:
|
||||||
- SITE_NAME=${SITE_NAME:-}
|
- SITE_NAME=${SITE_NAME:-}
|
||||||
- SITE_DESCRIPTION=${SITE_DESCRIPTION:-}
|
- SITE_DESCRIPTION=${SITE_DESCRIPTION:-}
|
||||||
- SITE_URL=${SITE_URL:-}
|
- SITE_URL=${SITE_URL:-}
|
||||||
- DNS_SERVERS=${DNS_SERVERS:-}
|
- DNS_SERVERS=${DNS_SERVERS:-}
|
||||||
|
# Add user mapping to help with permissions
|
||||||
|
user: "${UID:-1000}:${GID:-1000}"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
volumes:
|
|
||||||
marreta_cache:
|
|
||||||
marreta_logs:
|
|
||||||
|
|
118
docker-entrypoint.sh
Normal file
118
docker-entrypoint.sh
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
###########################################
|
||||||
|
# Marreta Docker Entrypoint
|
||||||
|
#
|
||||||
|
# Este script inicializa o container do Marreta:
|
||||||
|
# - Configura variáveis de ambiente
|
||||||
|
# - Ajusta permissões dos diretórios
|
||||||
|
# - Inicia e verifica serviços (PHP-FPM e Nginx)
|
||||||
|
###########################################
|
||||||
|
|
||||||
|
# Cores para output
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[0;32m'
|
||||||
|
YELLOW='\033[1;33m'
|
||||||
|
NC='\033[0m' # No Color
|
||||||
|
|
||||||
|
# Função para logs de sucesso
|
||||||
|
log_success() {
|
||||||
|
echo -e "${GREEN}[✓] $1${NC}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Função para logs de erro
|
||||||
|
log_error() {
|
||||||
|
echo -e "${RED}[✗] $1${NC}"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Função para logs de informação
|
||||||
|
log_info() {
|
||||||
|
echo -e "${YELLOW}[i] $1${NC}"
|
||||||
|
}
|
||||||
|
|
||||||
|
echo -e "\n${YELLOW}=== Iniciando Container Marreta ===${NC}\n"
|
||||||
|
|
||||||
|
# === Configuração de Variáveis de Ambiente ===
|
||||||
|
log_info "Configurando variáveis de ambiente..."
|
||||||
|
|
||||||
|
if [ -n "${SITE_NAME}" ]; then
|
||||||
|
echo "SITE_NAME=${SITE_NAME}" >> /app/.env
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "${SITE_DESCRIPTION}" ]; then
|
||||||
|
echo "SITE_DESCRIPTION=${SITE_DESCRIPTION}" >> /app/.env
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "${SITE_URL}" ]; then
|
||||||
|
echo "SITE_URL=${SITE_URL}" >> /app/.env
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "${DNS_SERVERS}" ]; then
|
||||||
|
echo "DNS_SERVERS=${DNS_SERVERS}" >> /app/.env
|
||||||
|
fi
|
||||||
|
|
||||||
|
log_success "Variáveis de ambiente configuradas"
|
||||||
|
|
||||||
|
# === Ajuste de Permissões ===
|
||||||
|
log_info "Ajustando permissões dos diretórios..."
|
||||||
|
|
||||||
|
chown -R www-data:www-data /app/cache /app/logs
|
||||||
|
chmod -R 775 /app/cache /app/logs
|
||||||
|
|
||||||
|
log_success "Permissões ajustadas"
|
||||||
|
|
||||||
|
# === Funções de Verificação de Serviços ===
|
||||||
|
check_nginx() {
|
||||||
|
if ! pgrep nginx > /dev/null; then
|
||||||
|
log_error "Falha ao iniciar Nginx"
|
||||||
|
else
|
||||||
|
log_success "Nginx iniciado com sucesso"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
check_php_fpm() {
|
||||||
|
if ! pgrep php-fpm > /dev/null; then
|
||||||
|
log_error "Falha ao iniciar PHP-FPM"
|
||||||
|
else
|
||||||
|
log_success "PHP-FPM iniciado com sucesso"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# === Inicialização dos Serviços ===
|
||||||
|
echo -e "\n${YELLOW}=== Iniciando serviços ===${NC}\n"
|
||||||
|
|
||||||
|
# Diretório PHP-FPM
|
||||||
|
if [ ! -d /var/run/php ]; then
|
||||||
|
log_info "Criando diretório PHP-FPM..."
|
||||||
|
mkdir -p /var/run/php
|
||||||
|
chown -R www-data:www-data /var/run/php
|
||||||
|
log_success "Diretório PHP-FPM criado"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Iniciando PHP-FPM
|
||||||
|
log_info "Iniciando PHP-FPM..."
|
||||||
|
php-fpm &
|
||||||
|
sleep 3
|
||||||
|
check_php_fpm
|
||||||
|
|
||||||
|
# Verificando configuração Nginx
|
||||||
|
log_info "Verificando configuração do Nginx..."
|
||||||
|
nginx -t
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
log_error "Configuração do Nginx inválida"
|
||||||
|
else
|
||||||
|
log_success "Configuração do Nginx válida"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Iniciando Nginx
|
||||||
|
log_info "Iniciando Nginx..."
|
||||||
|
nginx -g "daemon off;" &
|
||||||
|
sleep 3
|
||||||
|
check_nginx
|
||||||
|
|
||||||
|
echo -e "\n${GREEN}=== Container Marreta inicializado ===${NC}\n"
|
||||||
|
|
||||||
|
wait -n
|
||||||
|
|
||||||
|
exit $?
|
19
env.sh
19
env.sh
|
@ -1,19 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [ -n "${SITE_NAME}" ]; then
|
|
||||||
echo "SITE_NAME=${SITE_NAME}" >> /app/.env
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "${SITE_DESCRIPTION}" ]; then
|
|
||||||
echo "SITE_DESCRIPTION=${SITE_DESCRIPTION}" >> /app/.env
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "${SITE_URL}" ]; then
|
|
||||||
echo "SITE_URL=${SITE_URL}" >> /app/.env
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "${DNS_SERVERS}" ]; then
|
|
||||||
echo "DNS_SERVERS=${DNS_SERVERS}" >> /app/.env
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Variáveis de ambiente salvas com sucesso."
|
|
55
start.sh
55
start.sh
|
@ -1,55 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
echo "Iniciando rotinas."
|
|
||||||
|
|
||||||
check_nginx() {
|
|
||||||
if ! pgrep nginx > /dev/null; then
|
|
||||||
echo "Falha ao iniciar webservice."
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
echo "Webservice iniciou."
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
check_php_fpm() {
|
|
||||||
if ! pgrep php-fpm > /dev/null; then
|
|
||||||
echo "Falha ao iniciar o PHP."
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
echo "PHP iniciou."
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ ! -d /var/run/php ]; then
|
|
||||||
mkdir -p /var/run/php
|
|
||||||
chown -R www-data:www-data /var/run/php
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Iniciando PHP..."
|
|
||||||
php-fpm &
|
|
||||||
|
|
||||||
sleep 3
|
|
||||||
|
|
||||||
check_php_fpm
|
|
||||||
|
|
||||||
sleep 3
|
|
||||||
|
|
||||||
echo "Testando configuração do webservice..."
|
|
||||||
nginx -t
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "Configuração do webservice invalida."
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
echo "Configuração valida do webservice."
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Iniciando webservice..."
|
|
||||||
nginx -g "daemon off;" &
|
|
||||||
|
|
||||||
sleep 3
|
|
||||||
|
|
||||||
check_nginx
|
|
||||||
|
|
||||||
wait -n
|
|
||||||
|
|
||||||
exit $?
|
|
Loading…
Add table
Reference in a new issue