Sign inSign up

i2incommon/comanage-base

By i2incommon

Updated 3 months ago

COmanage Registry PE container image

Image
0

6.9K

i2incommon/comanage-base repository overview

comanage-base-image

Multi-arch Docker base image for COmanage deployments (Rocky Linux 10), with:

  • PHP (from Remi) selected via build arg
  • Apache HTTPD + SSL
  • Shibboleth SP 3.5.x rebuilt from source
  • CI/CD via Jenkins with security scanning and Docker Hub publishing

Use this as a foundation for COmanage-related images that require PHP, Apache, and Shibboleth SP.

Overview

This base image:

  • Installs PHP from the Remi repository, configured by the PHP_VERSION build argument.
  • Installs Apache HTTPD and supporting build/runtime dependencies.
  • Rebuilds Shibboleth SP 3.5.x from source RPMs for Rocky Linux 10.
  • Supports multi-architecture builds (amd64 and arm64) using docker buildx.

The container entrypoint is /bin/bash to allow downstream images or orchestration to define the final runtime command.

Shibboleth SP Version

This image rebuilds and installs:

  • Shibboleth SP 3.5.x (Rocky Linux 10 artifacts)

The build script lives under slashRoot/opt (e.g., build-sp-3.5.sh) and is invoked by the Docker build with a target architecture parameter (amd64 or arm64).

Build-time Arguments

  • PHP_VERSION (required): PHP stream from Remi, e.g., 8.1, 8.2, 8.3.
  • TARGETARCH (normally auto-set by buildx): amd64 or arm64. Used to select the correct RPM architecture during the Shibboleth rebuild.

Examples:

  • --build-arg PHP_VERSION=8.3
  • --build-arg TARGETARCH=amd64 (only needed when not using buildx --platform)

Usage Examples

Example 1: Run an interactive COmanage base container for debugging

Assume you have built or pulled an image like:

  • i2incommon/comanage-base:latest

Start a container with an interactive shell, mounting local Apache/Shibboleth config:

# run container
 docker run --rm -it \
    --name comanage-base-dev \
    -v "(pwd)/apache/conf.d:/etc/httpd/conf.d:ro" \ -v "(pwd)/shibboleth:/etc/shibboleth:ro" \
    -p 8443:8443 \
    i2incommon/comanage-base:latest

Inside the container you can then start services manually, for example:

# inside the container
httpd -DFOREGROUND & shibd php -v

This is useful for verifying PHP extensions, Apache modules, and Shibboleth configuration before building higher-level COmanage images.

Example 2: Build a COmanage application image FROM this base

Use the base image as the foundation for a COmanage app (e.g., Registry or Directory):

# Example
dockerfile FROM i2incommon/comanage-base:latest
# Install COmanage app code (example: copy from build context)
COPY app/ /var/www/html/
# Optional: add site-specific Apache and Shibboleth configuration
COPY apache/comanage.conf /etc/httpd/conf.d/comanage.conf COPY shibboleth/shibboleth2.xml /etc/shibboleth/shibboleth2.xml
# Adjust file ownership/permissions if needed
RUN chown -R apache:apache /var/www/html
# Default command: start Apache in the foreground
CMD ["/usr/sbin/httpd", "-DFOREGROUND"]

Build and run:

# Example
docker build -t yourorg/comanage-registry:latest . docker run --rm -p 8443:8443 yourorg/comanage-registry:latest

This pattern lets you keep all OS/PHP/Shibboleth concerns in the base image while application-specific logic lives in derived images.

License

See LICENSE for the complete license terms.

Tag summary

Content type

Image

Digest

sha256:a8fd8c355

Size

562.3 MB

Last updated

3 months ago

docker pull i2incommon/comanage-base