academia/deploy/docker-mssql/Dockerfile

51 lines
2.1 KiB
Docker
Raw Normal View History

# =============================================================================
# SQL Server 2017 Express - Low RAM Edition
# =============================================================================
# Imagen optimizada para ejecutar SQL Server con bajo consumo de memoria
#
# Autor: andresgarcia0313
# Repositorio: https://hub.docker.com/r/andresgarcia0313/mssql-express-lowram
# GitHub: https://github.com/andresgarcia0313
#
# USO RAPIDO:
# docker run -d --name mssql --memory=384m \
# -e MSSQL_SA_PASSWORD=TuPassword123! \
# -p 1433:1433 andresgarcia0313/mssql-express-lowram
#
# VARIABLES DE ENTORNO:
# MSSQL_SA_PASSWORD (REQUERIDO) - Password del usuario SA
# MSSQL_PID (opcional) - Edición: Express, Developer, Standard
# MSSQL_MEMORY_LIMIT_MB (opcional) - Límite de memoria en MB (default: 340)
#
# RAM RECOMENDADA: 384MB - 512MB (mínimo viable para desarrollo)
# =============================================================================
FROM mcr.microsoft.com/mssql/server:2017-latest
LABEL maintainer="andresgarcia0313 <andresgarcia0313@gmail.com>"
LABEL org.opencontainers.image.title="SQL Server 2017 Express - Low RAM"
LABEL org.opencontainers.image.description="SQL Server 2017 Express optimizado para bajo consumo de RAM (384MB-512MB). Ideal para desarrollo local y CI/CD."
LABEL org.opencontainers.image.version="1.0"
LABEL org.opencontainers.image.vendor="andresgarcia0313"
LABEL org.opencontainers.image.licenses="MIT"
LABEL org.opencontainers.image.source="https://github.com/andresgarcia0313"
# Variables de entorno por defecto (MSSQL_SA_PASSWORD debe ser proporcionada)
ENV ACCEPT_EULA=Y \
MSSQL_PID=Express \
MSSQL_MEMORY_LIMIT_MB=340
# Copiar scripts de optimización
COPY --chmod=755 entrypoint.sh /opt/mssql/bin/entrypoint.sh
COPY --chmod=644 optimize.sql /opt/mssql/bin/optimize.sql
# Puerto SQL Server
EXPOSE 1433
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
CMD /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P "$MSSQL_SA_PASSWORD" -Q "SELECT 1" || exit 1
# Entrypoint personalizado que aplica optimizaciones al iniciar
ENTRYPOINT ["/opt/mssql/bin/entrypoint.sh"]