Files
git.stella-ops.org/devops/docker/schema-versions/Dockerfile
StellaOps Bot 37e11918e0 save progress
2026-01-06 09:42:20 +02:00

50 lines
1.5 KiB
Docker

# devops/docker/schema-versions/Dockerfile
# Versioned PostgreSQL container for schema evolution testing
# Sprint: SPRINT_20260105_002_005_TEST_cross_cutting
# Task: CCUT-008
#
# USAGE:
# ======
# Build for specific module and version:
# docker build --build-arg MODULE=scanner --build-arg SCHEMA_VERSION=v1.2.0 \
# -t stellaops/schema-test:scanner-v1.2.0 .
#
# Run for testing:
# docker run -d -p 5432:5432 stellaops/schema-test:scanner-v1.2.0
ARG POSTGRES_VERSION=16
FROM postgres:${POSTGRES_VERSION}-alpine
# Build arguments
ARG MODULE=scanner
ARG SCHEMA_VERSION=latest
ARG SCHEMA_DATE=""
# Labels for identification
LABEL org.opencontainers.image.title="StellaOps Schema Test - ${MODULE}"
LABEL org.opencontainers.image.description="PostgreSQL with ${MODULE} schema version ${SCHEMA_VERSION}"
LABEL org.opencontainers.image.version="${SCHEMA_VERSION}"
LABEL org.stellaops.module="${MODULE}"
LABEL org.stellaops.schema.version="${SCHEMA_VERSION}"
LABEL org.stellaops.schema.date="${SCHEMA_DATE}"
# Environment variables
ENV POSTGRES_USER=stellaops_test
ENV POSTGRES_PASSWORD=test_password
ENV POSTGRES_DB=stellaops_schema_test
ENV STELLAOPS_MODULE=${MODULE}
ENV STELLAOPS_SCHEMA_VERSION=${SCHEMA_VERSION}
# Copy initialization scripts
COPY docker-entrypoint-initdb.d/ /docker-entrypoint-initdb.d/
# Copy module-specific schema
COPY schemas/${MODULE}/ /schemas/${MODULE}/
# Health check
HEALTHCHECK --interval=10s --timeout=5s --start-period=30s --retries=3 \
CMD pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB} || exit 1
# Expose PostgreSQL port
EXPOSE 5432