Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c64b125047 | ||
| 85c7c97dc3 | |||
|
|
1705a3688b | ||
|
|
34b36f5d14 | ||
|
|
d6b74f01f9 | ||
|
|
5efedfabf8 |
@@ -1,2 +1,2 @@
|
|||||||
parameters:
|
parameters:
|
||||||
app.version: '1.9.12'
|
app.version: '1.9.15'
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ FROM php:8.4-fpm AS production
|
|||||||
|
|
||||||
RUN apt-get update && apt-get install -y \
|
RUN apt-get update && apt-get install -y \
|
||||||
libicu-dev libpq-dev libpng-dev libzip-dev libxml2-dev \
|
libicu-dev libpq-dev libpng-dev libzip-dev libxml2-dev \
|
||||||
nginx supervisor \
|
nginx supervisor qpdf \
|
||||||
&& docker-php-ext-install -j$(nproc) intl pdo_pgsql zip gd opcache \
|
&& docker-php-ext-install -j$(nproc) intl pdo_pgsql zip gd opcache \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
@@ -75,7 +75,7 @@ COPY --from=frontend-build /app/frontend/.output/public /var/www/html/frontend/.
|
|||||||
RUN echo "APP_ENV=prod" > /var/www/html/.env
|
RUN echo "APP_ENV=prod" > /var/www/html/.env
|
||||||
|
|
||||||
# Permissions
|
# Permissions
|
||||||
RUN mkdir -p /var/www/html/var /var/www/html/var/uploads \
|
RUN mkdir -p /var/www/html/var /var/www/html/var/uploads /var/www/html/var/storage/documents \
|
||||||
&& chown -R www-data:www-data /var/www/html/var
|
&& chown -R www-data:www-data /var/www/html/var
|
||||||
|
|
||||||
WORKDIR /var/www/html
|
WORKDIR /var/www/html
|
||||||
|
|||||||
@@ -8,6 +8,19 @@ export INVENTORY_IMAGE_TAG="$TAG"
|
|||||||
|
|
||||||
echo "==> Deploying inventory:${TAG}..."
|
echo "==> Deploying inventory:${TAG}..."
|
||||||
|
|
||||||
|
# Fix storage directory structure (one-time migration fix)
|
||||||
|
# Files were nested under storage/storage/documents/ instead of storage/ directly
|
||||||
|
if [ -d "storage/storage/documents" ]; then
|
||||||
|
echo "==> Fixing storage directory structure..."
|
||||||
|
cp -a storage/storage/documents/* storage/ 2>/dev/null || true
|
||||||
|
rm -rf storage/storage
|
||||||
|
echo "==> Storage structure fixed."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Ensure storage directory exists with correct ownership
|
||||||
|
mkdir -p storage
|
||||||
|
sudo chown -R www-data:www-data storage
|
||||||
|
|
||||||
echo "==> Enabling maintenance mode..."
|
echo "==> Enabling maintenance mode..."
|
||||||
touch maintenance.on
|
touch maintenance.on
|
||||||
|
|
||||||
|
|||||||
4
makefile
4
makefile
@@ -157,6 +157,10 @@ fixtures-load:
|
|||||||
$(DOCKER_COMPOSE) exec -T db psql -U $(POSTGRES_USER) -d $(POSTGRES_DB) -c "SET session_replication_role = DEFAULT;"
|
$(DOCKER_COMPOSE) exec -T db psql -U $(POSTGRES_USER) -d $(POSTGRES_DB) -c "SET session_replication_role = DEFAULT;"
|
||||||
@echo "Fixtures loaded!"
|
@echo "Fixtures loaded!"
|
||||||
|
|
||||||
|
pull-prod-db:
|
||||||
|
@echo "Pulling production database..."
|
||||||
|
./scripts/pull-prod-db.sh
|
||||||
|
|
||||||
fixtures-reset:
|
fixtures-reset:
|
||||||
@echo "Resetting database and loading fixtures..."
|
@echo "Resetting database and loading fixtures..."
|
||||||
$(DOCKER_COMPOSE) exec -T db psql -U $(POSTGRES_USER) -d $(POSTGRES_DB) -c "DO \$$\$$ DECLARE r RECORD; BEGIN FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = 'public' AND tablename != 'doctrine_migration_versions') LOOP EXECUTE 'TRUNCATE TABLE ' || quote_ident(r.tablename) || ' CASCADE'; END LOOP; END \$$\$$;"
|
$(DOCKER_COMPOSE) exec -T db psql -U $(POSTGRES_USER) -d $(POSTGRES_DB) -c "DO \$$\$$ DECLARE r RECORD; BEGIN FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = 'public' AND tablename != 'doctrine_migration_versions') LOOP EXECUTE 'TRUNCATE TABLE ' || quote_ident(r.tablename) || ' CASCADE'; END LOOP; END \$$\$$;"
|
||||||
|
|||||||
51
scripts/pull-prod-db.sh
Executable file
51
scripts/pull-prod-db.sh
Executable file
@@ -0,0 +1,51 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
# pull-prod-db.sh — Importe la BDD inventory_prod de prod en local
|
||||||
|
# ============================================================
|
||||||
|
#
|
||||||
|
# Usage : ./scripts/pull-prod-db.sh [SSH_HOST]
|
||||||
|
#
|
||||||
|
# SSH_HOST : alias ou adresse du serveur prod (default: prod)
|
||||||
|
#
|
||||||
|
# Prérequis :
|
||||||
|
# - Accès SSH au serveur de prod
|
||||||
|
# - Docker en cours sur la prod (conteneur "postgres", user "admin")
|
||||||
|
# - Docker compose Inventory en cours en local (make start)
|
||||||
|
|
||||||
|
SSH_HOST="${1:-matt@prod.malio-dev.fr}"
|
||||||
|
PROD_CONTAINER="postgres"
|
||||||
|
PROD_DB="inventory_prod"
|
||||||
|
PROD_USER="admin"
|
||||||
|
|
||||||
|
LOCAL_COMPOSE="docker compose --env-file infra/dev/.env.docker"
|
||||||
|
LOCAL_DB_SERVICE="db"
|
||||||
|
LOCAL_DB="inventory"
|
||||||
|
LOCAL_USER="root"
|
||||||
|
|
||||||
|
DUMP_FILE="/tmp/inventory_prod_dump.sql"
|
||||||
|
|
||||||
|
echo "==> Dump de ${PROD_DB} depuis ${SSH_HOST}..."
|
||||||
|
ssh "${SSH_HOST}" "docker exec ${PROD_CONTAINER} pg_dump -U ${PROD_USER} -d ${PROD_DB} \
|
||||||
|
--no-owner --no-privileges --clean --if-exists" > "${DUMP_FILE}"
|
||||||
|
|
||||||
|
DUMP_SIZE=$(du -h "${DUMP_FILE}" | cut -f1)
|
||||||
|
echo "==> Dump recu : ${DUMP_FILE} (${DUMP_SIZE})"
|
||||||
|
|
||||||
|
echo "==> Reset de la BDD locale (${LOCAL_DB})..."
|
||||||
|
${LOCAL_COMPOSE} exec -T ${LOCAL_DB_SERVICE} psql -U ${LOCAL_USER} -d postgres -c \
|
||||||
|
"SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='${LOCAL_DB}' AND pid <> pg_backend_pid();" > /dev/null 2>&1 || true
|
||||||
|
${LOCAL_COMPOSE} exec -T ${LOCAL_DB_SERVICE} psql -U ${LOCAL_USER} -d postgres -c \
|
||||||
|
"DROP DATABASE IF EXISTS ${LOCAL_DB};"
|
||||||
|
${LOCAL_COMPOSE} exec -T ${LOCAL_DB_SERVICE} psql -U ${LOCAL_USER} -d postgres -c \
|
||||||
|
"CREATE DATABASE ${LOCAL_DB};"
|
||||||
|
|
||||||
|
echo "==> Import du dump dans la BDD locale..."
|
||||||
|
${LOCAL_COMPOSE} exec -T ${LOCAL_DB_SERVICE} psql -U ${LOCAL_USER} -d ${LOCAL_DB} < "${DUMP_FILE}"
|
||||||
|
|
||||||
|
echo "==> Nettoyage..."
|
||||||
|
rm -f "${DUMP_FILE}"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Done! BDD locale '${LOCAL_DB}' synchronisee avec '${PROD_DB}' de prod."
|
||||||
Reference in New Issue
Block a user