leplusorg/xml

Sponsored OSS

By Leplus.org

Updated about 21 hours ago

Multi-platform Docker container with utilities to process XML data.

Image
Languages & frameworks
Integration & delivery
1

100K+

Dockerfile
FROM alpine:3.24.1@sha256:28bd5fe8b56d1bd048e5babf5b10710ebe0bae67db86916198a6eec434943f8b

HEALTHCHECK NONE

ARG USER_NAME=default
ARG USER_HOME=/home/default
ARG USER_ID=1000
ARG USER_GECOS=Default

SHELL ["/bin/ash", "-euo", "pipefail", "-c"]

# @TL FIXME: xml2rfc currently only in edge stream
RUN apk upgrade --no-cache \
    && apk add --no-cache \
    aspell=0.60.8.2-r0 \
    aspell-de=20161207.7.0-r0 \
    aspell-en=2026.02.25-r0 \
    aspell-fr=0.50.3-r0 \
    aspell-ru=0.99_p7-r2 \
    aspell-uk=1.4.0-r3 \
    coreutils=9.11-r0 \
    curl=8.21.0-r0 \
    dasel=2.8.1-r15 \
    gawk=5.3.2-r2 \
    git=2.54.0-r0 \
    grep=3.12-r0 \
    html-xml-utils=8.7-r0 \
    jq=1.8.1-r0 \
    libxml2-utils=2.13.9-r2 \
    libxslt=1.1.43-r3 \
    maven=3.9.16-r0 \
    npm=11.12.1-r0 \
    openjdk21-jre-headless=21.0.11_p10-r0 \
    pandoc-cli=3.10-r0 \
    pipx=1.14.0-r0 \
    py3-pip=26.1.2-r0 \
    python3=3.14.5-r0 \
    xmlindent=0.2.17-r3 \
    xmlsec=1.3.11-r0 \
    xmlstarlet=1.6.1-r2 \
    xmlto=0.0.29-r0 \
    yq-go=4.53.3-r0 \
    && apk cache --no-cache clean \
    && rm -rf /var/cache/apk/*

COPY requirements.txt /tmp/requirements.txt

RUN pipx ensurepath --global \
    && xargs -a /tmp/requirements.txt -n 1 pipx install --global \
    && rm -f /tmp/requirements.txt

COPY package.json /tmp/package.json

RUN jq -r '.dependencies | to_entries[] | "\(.key)@\(.value)"' /tmp/package.json \
    | xargs -n 1 npm install -g \
    && rm -f /tmp/package.json

RUN mkdir -p /opt/saxon

COPY pom.xml mvnw run.sh /opt/saxon/

COPY .mvn/ /opt/saxon/.mvn/

WORKDIR /opt/saxon

RUN ./mvnw dependency:copy-dependencies && chmod -R o+rX /opt/saxon

RUN adduser \
  --home "${USER_HOME}" \
  --uid "${USER_ID}" \
  --gecos "${USER_GECOS}" \
  --disabled-password \
  "${USER_NAME}"

USER "${USER_NAME}"

ENV HOME="${USER_HOME}"

WORKDIR "${HOME}"