Fix env vars and remove nginx volume
This commit is contained in:
+8
-10
@@ -7,18 +7,16 @@ services:
|
|||||||
- "8077:80"
|
- "8077:80"
|
||||||
- "4000:4000"
|
- "4000:4000"
|
||||||
environment:
|
environment:
|
||||||
- DB_HOST=localhost
|
DB_HOST: localhost
|
||||||
- DB_PORT=3306
|
DB_PORT: "3306"
|
||||||
- DB_USER=hospital
|
DB_USER: hospital
|
||||||
- DB_PASSWORD=hospital123
|
DB_PASSWORD: hospital123
|
||||||
- DB_NAME=hospital
|
DB_NAME: hospital
|
||||||
- ADMIN_DNI=00000000
|
ADMIN_DNI: "00000000"
|
||||||
- ADMIN_PASSWORD=Admin123!
|
ADMIN_PASSWORD: Admin123!
|
||||||
volumes:
|
volumes:
|
||||||
- mariadb-data:/var/lib/mysql
|
- mariadb-data:/var/lib/mysql
|
||||||
- nginx-data:/usr/share/nginx/html
|
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
mariadb-data:
|
mariadb-data:
|
||||||
nginx-data:
|
|
||||||
+25
-18
@@ -9,31 +9,38 @@ for i in $(seq 1 60); do
|
|||||||
mysqladmin ping -h localhost --silent 2>/dev/null && break || sleep 1
|
mysqladmin ping -h localhost --silent 2>/dev/null && break || sleep 1
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Get environment variables
|
||||||
DB_NAME="${DB_NAME:-hospital}"
|
DB_NAME="${DB_NAME:-hospital}"
|
||||||
|
DB_USER="${DB_USER:-hospital}"
|
||||||
|
DB_PASSWORD="${DB_PASSWORD:-hospital123}"
|
||||||
|
|
||||||
|
echo "Creating database: $DB_NAME"
|
||||||
mysql -h localhost -u root -e "CREATE DATABASE IF NOT EXISTS \`$DB_NAME\`;"
|
mysql -h localhost -u root -e "CREATE DATABASE IF NOT EXISTS \`$DB_NAME\`;"
|
||||||
|
|
||||||
if [ -n "$DB_PASSWORD" ]; then
|
echo "Creating user: $DB_USER"
|
||||||
DB_USER="${DB_USER:-hospital}"
|
# Create user for both localhost and %
|
||||||
mysql -h localhost -u root -e "CREATE USER IF NOT EXISTS '$DB_USER'@'%' IDENTIFIED BY '$DB_PASSWORD'; GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'%'; FLUSH PRIVILEGES;"
|
mysql -h localhost -u root -e "CREATE USER IF NOT EXISTS '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASSWORD';"
|
||||||
fi
|
mysql -h localhost -u root -e "CREATE USER IF NOT EXISTS '$DB_USER'@'%' IDENTIFIED BY '$DB_PASSWORD';"
|
||||||
|
mysql -h localhost -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost';"
|
||||||
|
mysql -h localhost -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'%';"
|
||||||
|
mysql -h localhost -u root -e "FLUSH PRIVILEGES;"
|
||||||
|
|
||||||
|
# Create admin user
|
||||||
ADMIN_DNI="${ADMIN_DNI:-00000000}"
|
ADMIN_DNI="${ADMIN_DNI:-00000000}"
|
||||||
ADMIN_PASSWORD="${ADMIN_PASSWORD:-Admin123!}"
|
ADMIN_PASSWORD="${ADMIN_PASSWORD:-Admin123!}"
|
||||||
|
|
||||||
TABLE_EXISTS=$(mysql -h localhost -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" -N -e "SHOW TABLES LIKE 'usuarios';" 2>/dev/null || true)
|
echo "Checking admin user..."
|
||||||
if [ -n "$TABLE_EXISTS" ]; then
|
USER_COUNT=$(mysql -h localhost -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" -N -e "SELECT COUNT(*) FROM usuarios WHERE dni='$ADMIN_DNI';" 2>/dev/null || echo "0")
|
||||||
USER_COUNT=$(mysql -h localhost -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" -N -e "SELECT COUNT(*) FROM usuarios WHERE dni='$ADMIN_DNI';" 2>/dev/null || echo "0")
|
if [ "$USER_COUNT" = "0" ]; then
|
||||||
if [ "$USER_COUNT" = "0" ]; then
|
ADMIN_ID=$(uuidgen)
|
||||||
ADMIN_ID=$(uuidgen)
|
TODAY=$(date +%Y-%m-%d)
|
||||||
TODAY=$(date +%Y-%m-%d)
|
HASH=$(node -e "const bcrypt=require('bcryptjs'); console.log(bcrypt.hashSync('$ADMIN_PASSWORD',10));")
|
||||||
HASH=$(node -e "const bcrypt=require('bcryptjs'); console.log(bcrypt.hashSync('$ADMIN_PASSWORD',10));")
|
mysql -h localhost -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" -e "INSERT INTO usuarios (id,apellido,nombre,dni,fechaNacimiento,email,rol,passwordHash,fechaCreacion) VALUES ('$ADMIN_ID','Administrador','Sistema','$ADMIN_DNI','$TODAY','admin@hospital.local','admin','$HASH','$TODAY');"
|
||||||
mysql -h localhost -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" -e "INSERT INTO usuarios (id,apellido,nombre,dni,fechaNacimiento,email,rol,passwordHash,fechaCreacion) VALUES ('$ADMIN_ID','Administrador','Sistema','$ADMIN_DNI','$TODAY','admin@hospital.local','admin','$HASH','$TODAY');"
|
echo "=========================================="
|
||||||
echo "=========================================="
|
echo "ADMIN CREDENTIALS:"
|
||||||
echo "ADMIN CREDENTIALS:"
|
echo "DNI: $ADMIN_DNI"
|
||||||
echo "DNI: $ADMIN_DNI"
|
echo "Password: $ADMIN_PASSWORD"
|
||||||
echo "Password: $ADMIN_PASSWORD"
|
echo "=========================================="
|
||||||
echo "=========================================="
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Starting nginx..."
|
echo "Starting nginx..."
|
||||||
|
|||||||
Reference in New Issue
Block a user