gagalkoding/lsc-project

By gagalkoding

Updated about 2 months ago

Modern Docker image for LDAP Synchronization Connector (LSC) 2.2.x

Image
Integration & delivery
0

10K+

gagalkoding/lsc-project repository overview

lsc-project

Modern, lightweight, and production-ready Docker image for LDAP Synchronization Connector (LSC) 2.2.x.

Features

  • Based on Eclipse Temurin Java 21
  • Lightweight Alpine Linux runtime
  • Multi-architecture compatible (amd64 / arm64)
  • Non-root container execution
  • Official LSC binary distribution
  • Optimized for Docker and Kubernetes
  • Minimal and clean container image
  • Compatible with LSC 2.2.x
  • Production-ready logging and runtime defaults

Running Passing LSC Configuration

docker run --rm -it \
-v "$(pwd)/lsc":/etc/lsc \
gagalkoding/lsc-project \
<PARAMS>

Examples

Validate Configuration
docker run --rm -it \
-v "$(pwd)/lsc":/etc/lsc \
gagalkoding/lsc-project \
-f /etc/lsc -v

Run Dry-run
docker run --rm -it \
-v "$(pwd)/lsc":/etc/lsc \
gagalkoding/lsc-project \
-f /etc/lsc -c all -s all -n

Run All Synchronization Tasks
docker run --rm -it \
-v "$(pwd)/lsc":/etc/lsc \
gagalkoding/lsc-project \
-f /etc/lsc -c all -s all

Run As Daemon
docker run --rm -it \
-v "$(pwd)/lsc":/etc/lsc \
gagalkoding/lsc-project \
-f /etc/lsc -a all

Run Bash As Entrypoint
docker run --rm -it \
-v "$(pwd)/lsc":/etc/lsc \
--entrypoint /bin/bash \
gagalkoding/lsc-project

Docker Compose Example

services:
  lsc:
    image: gagalkoding/lsc-project:latest
    container_name: lsc
    restart: unless-stopped
    volumes:
      - ./lsc:/etc/lsc
      - ./lsc-state:/var/lib/lsc
    command:
      - -f
      - /etc/lsc
      - -s
      - all

Example Directory Structure

.
├── docker-compose.yml
├── lsc
│   ├── lsc.xml
│   └── logback.xml
└── lsc-state

Modern logback.xml Example

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <statusListener class="ch.qos.logback.core.status.NopStatusListener" />
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>
                %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
            </pattern>
        </encoder>
    </appender>
    <root level="INFO">
        <appender-ref ref="STDOUT" />
    </root>
    <logger name="org.lsc" level="INFO" />
    <logger name="com.sun.jndi.ldap" level="WARN" />
</configuration>

Minimal LSC 2.2.x Configuration Example

<?xml version="1.0" encoding="UTF-8"?>
<lsc xmlns="http://lsc-project.org/XSD/lsc-core-2.2.xsd" revision="0">
    <connections>
        <ldapConnection>
            <name>source-ldap</name>
            <url>
                ldap://ldap.example.com:389/dc=example,dc=com
            </url>
            <username>
                cn=admin,dc=example,dc=com
            </username>
            <password>secret</password>
            <authentication>SIMPLE</authentication>
            <version>VERSION_3</version>
            <pageSize>500</pageSize>
            <tlsActivated>false</tlsActivated>
        </ldapConnection>
    </connections>
    <tasks>
        <task>
            <name>sample</name>
            <bean>org.lsc.beans.SimpleBean</bean>
            <ldapSourceService>
                <name>source-service</name>
                <connection reference="source-ldap" />
                <baseDn>dc=example,dc=com</baseDn>
                <pivotAttributes>
                    <string>uid</string>
                </pivotAttributes>
                <fetchedAttributes>
                    <string>uid</string>
                    <string>cn</string>
                    <string>mail</string>
                </fetchedAttributes>
                <getAllFilter>
                    <![CDATA[(objectClass=inetOrgPerson)]]>
                </getAllFilter>
            </ldapSourceService>
        </task>
    </tasks>
</lsc>

Security

This image follows modern container security practices:

  • Runs as non-root user
  • Minimal runtime dependencies
  • No deprecated package repositories
  • No unnecessary build tooling
  • Optimized runtime filesystem
  • Container-native logging

Included Runtime Components

  • LSC 2.2.x
  • Java 21 LTS
  • tini init process
  • Bash shell
  • TLS truststore support
  • CA certificates

Supported Platforms

  • linux/amd64
  • linux/arm64

GitHub Repository

https://github.com/gagalkoding/lsc-project


Docker Hub

https://hub.docker.com/r/gagalkoding/lsc-project


License

MIT License

Tag summary

Content type

Image

Digest

sha256:17761e83d

Size

348.7 MB

Last updated

about 2 months ago

docker pull gagalkoding/lsc-project:2.2.2-alpine